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