You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@poi.apache.org by gl...@apache.org on 2004/06/27 13:21:13 UTC
cvs commit: jakarta-poi/src/java/org/apache/poi/hssf/record AbstractEscherHolderRecord.java
glens 2004/06/27 04:21:13
Modified: src/java/org/apache/poi/hssf/record Tag: REL_2_BRANCH
AbstractEscherHolderRecord.java
Log:
Patch from Michael to fix bug 28203
Revision Changes Path
No revision
No revision
1.1.2.3 +58 -20 jakarta-poi/src/java/org/apache/poi/hssf/record/AbstractEscherHolderRecord.java
Index: AbstractEscherHolderRecord.java
===================================================================
RCS file: /home/cvs/jakarta-poi/src/java/org/apache/poi/hssf/record/AbstractEscherHolderRecord.java,v
retrieving revision 1.1.2.2
retrieving revision 1.1.2.3
diff -u -r1.1.2.2 -r1.1.2.3
--- AbstractEscherHolderRecord.java 22 Feb 2004 11:54:47 -0000 1.1.2.2
+++ AbstractEscherHolderRecord.java 27 Jun 2004 11:21:13 -0000 1.1.2.3
@@ -32,6 +32,7 @@
* must be subclassed for maximum benefit.
*
* @author Glen Stampoultzis (glens at apache.org)
+ * @author Michael Zalewski (zalewski at optonline.net)
*/
public abstract class AbstractEscherHolderRecord
extends Record
@@ -118,13 +119,13 @@
StringBuffer buffer = new StringBuffer();
final String nl = System.getProperty("line.separator");
- buffer.append("[" + getRecordName() + "]" + nl);
+ buffer.append('[' + getRecordName() + ']' + nl);
for ( Iterator iterator = escherRecords.iterator(); iterator.hasNext(); )
{
EscherRecord r = (EscherRecord) iterator.next();
buffer.append(r.toString());
}
- buffer.append("[/" + getRecordName() + "]" + nl);
+ buffer.append("[/" + getRecordName() + ']' + nl);
return buffer.toString();
}
@@ -133,29 +134,49 @@
public int serialize(int offset, byte[] data)
{
- if (escherRecords.size() == 0 && rawData != null)
+ LittleEndian.putShort( data, 0 + offset, getSid() );
+ LittleEndian.putShort( data, 2 + offset, (short) ( getRecordSize() - 4 ) );
+ if ( escherRecords.size() == 0 && rawData != null )
{
- System.arraycopy( rawData, 0, data, offset, rawData.length);
- return rawData.length;
+ System.arraycopy( rawData, 0, data, offset + 4, rawData.length );
}
else
{
- collapseShapeInformation();
-
- LittleEndian.putShort(data, 0 + offset, getSid());
- LittleEndian.putShort(data, 2 + offset, (short)(getRecordSize() - 4));
-
int pos = offset + 4;
for ( Iterator iterator = escherRecords.iterator(); iterator.hasNext(); )
{
EscherRecord r = (EscherRecord) iterator.next();
- pos += r.serialize(pos, data, new NullEscherSerializationListener() );
+ pos += r.serialize( pos, data, new NullEscherSerializationListener() );
}
-
- return getRecordSize();
}
+ return getRecordSize();
}
+// public int serialize(int offset, byte[] data)
+// {
+// if (escherRecords.size() == 0 && rawData != null)
+// {
+// System.arraycopy( rawData, 0, data, offset, rawData.length);
+// return rawData.length;
+// }
+// else
+// {
+// collapseShapeInformation();
+//
+// LittleEndian.putShort(data, 0 + offset, getSid());
+// LittleEndian.putShort(data, 2 + offset, (short)(getRecordSize() - 4));
+//
+// int pos = offset + 4;
+// for ( Iterator iterator = escherRecords.iterator(); iterator.hasNext(); )
+// {
+// EscherRecord r = (EscherRecord) iterator.next();
+// pos += r.serialize(pos, data, new NullEscherSerializationListener() );
+// }
+//
+// return getRecordSize();
+// }
+// }
+
/**
* Size of record (including 4 byte header)
*/
@@ -163,12 +184,10 @@
{
if (escherRecords.size() == 0 && rawData != null)
{
- return rawData.length;
+ return rawData.length + 4;
}
else
{
- collapseShapeInformation();
-
int size = 4;
for ( Iterator iterator = escherRecords.iterator(); iterator.hasNext(); )
{
@@ -179,10 +198,29 @@
}
}
- private void collapseShapeInformation()
- {
-
- }
+//
+// /**
+// * Size of record (including 4 byte header)
+// */
+// public int getRecordSize()
+// {
+// if (escherRecords.size() == 0 && rawData != null)
+// {
+// return rawData.length;
+// }
+// else
+// {
+// collapseShapeInformation();
+//
+// int size = 4;
+// for ( Iterator iterator = escherRecords.iterator(); iterator.hasNext(); )
+// {
+// EscherRecord r = (EscherRecord) iterator.next();
+// size += r.getRecordSize();
+// }
+// return size;
+// }
+// }
public abstract short getSid();
---------------------------------------------------------------------
To unsubscribe, e-mail: poi-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: poi-dev-help@jakarta.apache.org