]> source.dussan.org Git - poi.git/commitdiff
Changed CRLF to LF in poi/ddf, Minor fixes for compiler warnings, and formatting
authorJosh Micich <josh@apache.org>
Tue, 19 May 2009 19:21:12 +0000 (19:21 +0000)
committerJosh Micich <josh@apache.org>
Tue, 19 May 2009 19:21:12 +0000 (19:21 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@776424 13f79535-47bb-0310-9956-ffa450edef68

33 files changed:
src/java/org/apache/poi/ddf/DefaultEscherRecordFactory.java
src/java/org/apache/poi/ddf/EscherArrayProperty.java
src/java/org/apache/poi/ddf/EscherBSERecord.java
src/java/org/apache/poi/ddf/EscherBitmapBlip.java
src/java/org/apache/poi/ddf/EscherBlipRecord.java
src/java/org/apache/poi/ddf/EscherBlipWMFRecord.java
src/java/org/apache/poi/ddf/EscherBoolProperty.java
src/java/org/apache/poi/ddf/EscherChildAnchorRecord.java
src/java/org/apache/poi/ddf/EscherClientAnchorRecord.java
src/java/org/apache/poi/ddf/EscherClientDataRecord.java
src/java/org/apache/poi/ddf/EscherComplexProperty.java
src/java/org/apache/poi/ddf/EscherDgRecord.java
src/java/org/apache/poi/ddf/EscherDggRecord.java
src/java/org/apache/poi/ddf/EscherDump.java
src/java/org/apache/poi/ddf/EscherMetafileBlip.java
src/java/org/apache/poi/ddf/EscherOptRecord.java
src/java/org/apache/poi/ddf/EscherPictBlip.java
src/java/org/apache/poi/ddf/EscherProperties.java
src/java/org/apache/poi/ddf/EscherProperty.java
src/java/org/apache/poi/ddf/EscherPropertyFactory.java
src/java/org/apache/poi/ddf/EscherPropertyMetaData.java
src/java/org/apache/poi/ddf/EscherRGBProperty.java
src/java/org/apache/poi/ddf/EscherRecord.java
src/java/org/apache/poi/ddf/EscherRecordFactory.java
src/java/org/apache/poi/ddf/EscherSerializationListener.java
src/java/org/apache/poi/ddf/EscherShapePathProperty.java
src/java/org/apache/poi/ddf/EscherSimpleProperty.java
src/java/org/apache/poi/ddf/EscherSpRecord.java
src/java/org/apache/poi/ddf/EscherSpgrRecord.java
src/java/org/apache/poi/ddf/EscherSplitMenuColorsRecord.java
src/java/org/apache/poi/ddf/EscherTextboxRecord.java
src/java/org/apache/poi/ddf/NullEscherSerializationListener.java
src/java/org/apache/poi/ddf/UnknownEscherRecord.java

index f1d051d7be6b74bf45e576bbe0aa962db0cdc327..57e8c6d32bd79c08eda9b9969a36b0f755ec1302 100644 (file)
@@ -1,4 +1,3 @@
-
 /* ====================================================================
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
    See the License for the specific language governing permissions and
    limitations under the License.
 ==================================================================== */
-        
-package org.apache.poi.ddf;
 
-import org.apache.poi.util.RecordFormatException;
+package org.apache.poi.ddf;
 
 import java.lang.reflect.Constructor;
 import java.util.HashMap;
@@ -32,21 +29,19 @@ import java.util.Map;
  *
  * @see EscherRecordFactory
  */
-public class DefaultEscherRecordFactory
-        implements EscherRecordFactory
-{
-    private static Class[] escherRecordClasses = {
+public class DefaultEscherRecordFactory implements EscherRecordFactory {
+    private static Class<?>[] escherRecordClasses = {
         EscherBSERecord.class, EscherOptRecord.class, EscherClientAnchorRecord.class, EscherDgRecord.class,
         EscherSpgrRecord.class, EscherSpRecord.class, EscherClientDataRecord.class, EscherDggRecord.class,
         EscherSplitMenuColorsRecord.class, EscherChildAnchorRecord.class, EscherTextboxRecord.class
     };
-    private static Map recordsMap = recordsToMap( escherRecordClasses );
+    private static Map<Short, Constructor<? extends EscherRecord>> recordsMap = recordsToMap( escherRecordClasses );
 
     /**
      * Creates an instance of the escher record factory
      */
-    public DefaultEscherRecordFactory()
-    {
+    public DefaultEscherRecordFactory() {
+        // no instance initialisation
     }
 
     /**
@@ -57,14 +52,13 @@ public class DefaultEscherRecordFactory
      * @param offset The starting offset into the byte array
      * @return The generated escher record
      */
-    public EscherRecord createRecord( byte[] data, int offset )
-    {
+    public EscherRecord createRecord(byte[] data, int offset) {
         EscherRecord.EscherRecordHeader header = EscherRecord.EscherRecordHeader.readHeader( data, offset );
 
-               // Options of 0x000F means container record
-               // However, EscherTextboxRecord are containers of records for the
-               //  host application, not of other Escher records, so treat them
-               //  differently
+        // Options of 0x000F means container record
+        // However, EscherTextboxRecord are containers of records for the
+        //  host application, not of other Escher records, so treat them
+        //  differently
         if ( ( header.getOptions() & (short) 0x000F ) == (short) 0x000F
              && header.getRecordId() != EscherTextboxRecord.RECORD_ID ) {
             EscherContainerRecord r = new EscherContainerRecord();
@@ -72,8 +66,9 @@ public class DefaultEscherRecordFactory
             r.setOptions( header.getOptions() );
             return r;
         }
-        else if ( header.getRecordId() >= EscherBlipRecord.RECORD_ID_START && header.getRecordId() <= EscherBlipRecord.RECORD_ID_END )
-        {
+
+        if (header.getRecordId() >= EscherBlipRecord.RECORD_ID_START
+                && header.getRecordId() <= EscherBlipRecord.RECORD_ID_END) {
             EscherBlipRecord r;
             if (header.getRecordId() == EscherBitmapBlip.RECORD_ID_DIB ||
                     header.getRecordId() == EscherBitmapBlip.RECORD_ID_JPEG ||
@@ -86,70 +81,62 @@ public class DefaultEscherRecordFactory
                     header.getRecordId() == EscherMetafileBlip.RECORD_ID_PICT)
             {
                 r = new EscherMetafileBlip();
-            }
-            else
-            {
+            } else {
                 r = new EscherBlipRecord();
             }
             r.setRecordId( header.getRecordId() );
             r.setOptions( header.getOptions() );
             return r;
         }
-        else
-        {
-            Constructor recordConstructor = (Constructor) recordsMap.get( new Short( header.getRecordId() ) );
-            EscherRecord escherRecord = null;
-            if ( recordConstructor != null )
-            {
-                try
-                {
-                    escherRecord = (EscherRecord) recordConstructor.newInstance( new Object[]{} );
-                    escherRecord.setRecordId( header.getRecordId() );
-                    escherRecord.setOptions( header.getOptions() );
-                }
-                catch ( Exception e )
-                {
-                    escherRecord = null;
-                }
-            }
-            return escherRecord == null ? new UnknownEscherRecord() : escherRecord;
+
+        Constructor<? extends EscherRecord> recordConstructor = recordsMap.get(new Short(header.getRecordId()));
+        EscherRecord escherRecord = null;
+        if (recordConstructor == null) {
+            return new UnknownEscherRecord();
+        }
+        try {
+            escherRecord = recordConstructor.newInstance(new Object[] {});
+        } catch (Exception e) {
+            return new UnknownEscherRecord();
         }
+        escherRecord.setRecordId(header.getRecordId());
+        escherRecord.setOptions(header.getOptions());
+        return escherRecord;
     }
 
     /**
      * Converts from a list of classes into a map that contains the record id as the key and
      * the Constructor in the value part of the map.  It does this by using reflection to look up
      * the RECORD_ID field then using reflection again to find a reference to the constructor.
-     * 
-     * @param records The records to convert
+     *
+     * @param recClasses The records to convert
      * @return The map containing the id/constructor pairs.
      */
-    private static Map recordsToMap( Class[] records )
-    {
-        Map result = new HashMap();
-        Constructor constructor;
-
-        for ( int i = 0; i < records.length; i++ )
-        {
-            Class record = null;
-            short sid = 0;
+    private static Map<Short, Constructor<? extends EscherRecord>> recordsToMap(Class<?>[] recClasses) {
+        Map<Short, Constructor<? extends EscherRecord>> result = new HashMap<Short, Constructor<? extends EscherRecord>>();
+        final Class<?>[] EMPTY_CLASS_ARRAY = new Class[0];
 
-            record = records[i];
-            try
-            {
-                sid = record.getField( "RECORD_ID" ).getShort( null );
-                constructor = record.getConstructor( new Class[]
-                {
-                } );
+        for (int i = 0; i < recClasses.length; i++) {
+            @SuppressWarnings("unchecked")
+            Class<? extends EscherRecord> recCls = (Class<? extends EscherRecord>) recClasses[i];
+            short sid;
+            try {
+                sid = recCls.getField("RECORD_ID").getShort(null);
+            } catch (IllegalArgumentException e) {
+                throw new RuntimeException(e);
+            } catch (IllegalAccessException e) {
+                throw new RuntimeException(e);
+            } catch (NoSuchFieldException e) {
+                throw new RuntimeException(e);
             }
-            catch ( Exception illegalArgumentException )
-            {
-                throw new RecordFormatException(
-                        "Unable to determine record types" );
+            Constructor<? extends EscherRecord> constructor;
+            try {
+                constructor = recCls.getConstructor( EMPTY_CLASS_ARRAY );
+            } catch (NoSuchMethodException e) {
+                throw new RuntimeException(e);
             }
-            result.put( new Short( sid ), constructor );
+            result.put(new Short(sid), constructor);
         }
         return result;
     }
-
 }
index aea3262bb877eb777e2653f99d0909e45861dd2b..e3ad88a071116ed5f5b048780b1304847b789eaa 100644 (file)
@@ -1,4 +1,3 @@
-
 /* ====================================================================
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
@@ -15,7 +14,7 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 ==================================================================== */
-        
+
 package org.apache.poi.ddf;
 
 import org.apache.poi.util.LittleEndian;
@@ -27,13 +26,11 @@ import org.apache.poi.util.HexDump;
  *
  * @author Glen Stampoultzis (glens at superlinksoftware.com)
  */
-public class EscherArrayProperty
-        extends EscherComplexProperty
-{
-       /**
-        * The size of the header that goes at the
-        *  start of the array, before the data
-        */
+public final class EscherArrayProperty extends EscherComplexProperty {
+    /**
+     * The size of the header that goes at the
+     *  start of the array, before the data
+     */
     private static final int FIXED_SIZE = 3 * 2;
     /**
      * Normally, the size recorded in the simple data (for the complex
@@ -47,112 +44,95 @@ public class EscherArrayProperty
      */
     private boolean emptyComplexPart = false;
 
-    public EscherArrayProperty( short id, byte[] complexData )
-    {
-        super( id, checkComplexData(complexData) );
+    public EscherArrayProperty(short id, byte[] complexData) {
+        super(id, checkComplexData(complexData));
         emptyComplexPart = complexData.length == 0;
     }
 
-    public EscherArrayProperty( short propertyNumber, boolean isBlipId, byte[] complexData )
-    {
-        super( propertyNumber, isBlipId, checkComplexData(complexData) );
+    public EscherArrayProperty(short propertyNumber, boolean isBlipId, byte[] complexData) {
+        super(propertyNumber, isBlipId, checkComplexData(complexData));
     }
 
-    private static byte[] checkComplexData( byte[] complexData )
-    {
-        if (complexData == null || complexData.length == 0)
-            complexData = new byte[6];
+    private static byte[] checkComplexData(byte[] complexData) {
+        if (complexData == null || complexData.length == 0) {
+            return new byte[6];
+        }
 
         return complexData;
     }
 
-    public int getNumberOfElementsInArray()
-    {
-        return LittleEndian.getUShort( complexData, 0 );
+    public int getNumberOfElementsInArray() {
+        return LittleEndian.getUShort(_complexData, 0);
     }
 
-    public void setNumberOfElementsInArray( int numberOfElements )
-    {
+    public void setNumberOfElementsInArray(int numberOfElements) {
         int expectedArraySize = numberOfElements * getActualSizeOfElements(getSizeOfElements()) + FIXED_SIZE;
-        if ( expectedArraySize != complexData.length )
-        {
+        if (expectedArraySize != _complexData.length) {
             byte[] newArray = new byte[expectedArraySize];
-            System.arraycopy( complexData, 0, newArray, 0, complexData.length );
-            complexData = newArray;
+            System.arraycopy(_complexData, 0, newArray, 0, _complexData.length);
+            _complexData = newArray;
         }
-        LittleEndian.putShort( complexData, 0, (short) numberOfElements );
+        LittleEndian.putShort(_complexData, 0, (short) numberOfElements);
     }
 
-    public int getNumberOfElementsInMemory()
-    {
-        return LittleEndian.getUShort( complexData, 2 );
+    public int getNumberOfElementsInMemory() {
+        return LittleEndian.getUShort(_complexData, 2);
     }
 
-    public void setNumberOfElementsInMemory( int numberOfElements )
-    {
+    public void setNumberOfElementsInMemory(int numberOfElements) {
         int expectedArraySize = numberOfElements * getActualSizeOfElements(getSizeOfElements()) + FIXED_SIZE;
-        if ( expectedArraySize != complexData.length )
-        {
+        if (expectedArraySize != _complexData.length) {
             byte[] newArray = new byte[expectedArraySize];
-            System.arraycopy( complexData, 0, newArray, 0, expectedArraySize );
-            complexData = newArray;
+            System.arraycopy(_complexData, 0, newArray, 0, expectedArraySize);
+            _complexData = newArray;
         }
-        LittleEndian.putShort( complexData, 2, (short) numberOfElements );
+        LittleEndian.putShort(_complexData, 2, (short) numberOfElements);
     }
 
-    public short getSizeOfElements()
-    {
-        return LittleEndian.getShort( complexData, 4 );
+    public short getSizeOfElements() {
+        return LittleEndian.getShort( _complexData, 4 );
     }
 
-    public void setSizeOfElements( int sizeOfElements )
-    {
-        LittleEndian.putShort( complexData, 4, (short) sizeOfElements );
+    public void setSizeOfElements(int sizeOfElements) {
+        LittleEndian.putShort( _complexData, 4, (short) sizeOfElements );
 
         int expectedArraySize = getNumberOfElementsInArray() * getActualSizeOfElements(getSizeOfElements()) + FIXED_SIZE;
-        if ( expectedArraySize != complexData.length )
-        {
+        if (expectedArraySize != _complexData.length) {
             // Keep just the first 6 bytes.  The rest is no good to us anyway.
             byte[] newArray = new byte[expectedArraySize];
-            System.arraycopy( complexData, 0, newArray, 0, 6 );
-            complexData = newArray;
+            System.arraycopy( _complexData, 0, newArray, 0, 6 );
+            _complexData = newArray;
         }
     }
 
-    public byte[] getElement( int index )
-    {
+    public byte[] getElement(int index) {
         int actualSize = getActualSizeOfElements(getSizeOfElements());
         byte[] result = new byte[actualSize];
-        System.arraycopy(complexData, FIXED_SIZE + index * actualSize, result, 0, result.length );
+        System.arraycopy(_complexData, FIXED_SIZE + index * actualSize, result, 0, result.length );
         return result;
     }
 
-    public void setElement( int index, byte[] element )
-    {
+    public void setElement(int index, byte[] element) {
         int actualSize = getActualSizeOfElements(getSizeOfElements());
-        System.arraycopy( element, 0, complexData, FIXED_SIZE + index * actualSize, actualSize);
+        System.arraycopy( element, 0, _complexData, FIXED_SIZE + index * actualSize, actualSize);
     }
 
-    public String toString()
-    {
-        String nl = System.getProperty("line.separator");
-
+    public String toString() {
         StringBuffer results = new StringBuffer();
-        results.append("    {EscherArrayProperty:" + nl);
-        results.append("     Num Elements: " + getNumberOfElementsInArray() + nl);
-        results.append("     Num Elements In Memory: " + getNumberOfElementsInMemory() + nl);
-        results.append("     Size of elements: " + getSizeOfElements() + nl);
-        for (int i = 0; i < getNumberOfElementsInArray(); i++)
-        {
-            results.append("     Element " + i + ": " + HexDump.toHex(getElement(i)) + nl);
+        results.append("    {EscherArrayProperty:" + '\n');
+        results.append("     Num Elements: " + getNumberOfElementsInArray() + '\n');
+        results.append("     Num Elements In Memory: " + getNumberOfElementsInMemory() + '\n');
+        results.append("     Size of elements: " + getSizeOfElements() + '\n');
+        for (int i = 0; i < getNumberOfElementsInArray(); i++) {
+            results.append("     Element " + i + ": " + HexDump.toHex(getElement(i)) + '\n');
         }
-        results.append("}" + nl);
+        results.append("}" + '\n');
 
         return "propNum: " + getPropertyNumber()
                 + ", propName: " + EscherProperties.getPropertyName( getPropertyNumber() )
                 + ", complex: " + isComplex()
                 + ", blipId: " + isBlipId()
-                + ", data: " + nl + results.toString();
+                + ", data: " + '\n' + results.toString();
     }
 
     /**
@@ -165,38 +145,36 @@ public class EscherArrayProperty
      * @param offset    The offset into the array to start reading from.
      * @return  the number of bytes used by this complex property.
      */
-    public int setArrayData( byte[] data, int offset )
-    {
+    public int setArrayData(byte[] data, int offset) {
         if (emptyComplexPart){
-            complexData = new byte[0];
+            _complexData = new byte[0];
         } else {
             short numElements = LittleEndian.getShort(data, offset);
-            short numReserved = LittleEndian.getShort(data, offset + 2);
+            LittleEndian.getShort(data, offset + 2); // numReserved
             short sizeOfElements = LittleEndian.getShort(data, offset + 4);
 
             int arraySize = getActualSizeOfElements(sizeOfElements) * numElements;
-            if (arraySize == complexData.length) {
+            if (arraySize == _complexData.length) {
                 // The stored data size in the simple block excludes the header size
-                complexData = new byte[arraySize + 6];
+                _complexData = new byte[arraySize + 6];
                 sizeIncludesHeaderSize = false;
             }
-            System.arraycopy(data, offset, complexData, 0, complexData.length );
+            System.arraycopy(data, offset, _complexData, 0, _complexData.length );
         }
-        return complexData.length;
+        return _complexData.length;
     }
 
     /**
      * Serializes the simple part of this property.  ie the first 6 bytes.
-     * 
-     * Needs special code to handle the case when the size doesn't 
+     *
+     * Needs special code to handle the case when the size doesn't
      *  include the size of the header block
      */
-    public int serializeSimplePart( byte[] data, int pos )
-    {
+    public int serializeSimplePart(byte[] data, int pos) {
         LittleEndian.putShort(data, pos, getId());
-        int recordSize = complexData.length;
+        int recordSize = _complexData.length;
         if(!sizeIncludesHeaderSize) {
-               recordSize -= 6;
+            recordSize -= 6;
         }
         LittleEndian.putInt(data, pos + 2, recordSize);
         return 6;
@@ -206,12 +184,10 @@ public class EscherArrayProperty
      * Sometimes the element size is stored as a negative number.  We
      * negate it and shift it to get the real value.
      */
-    public static int getActualSizeOfElements(short sizeOfElements)
-    {
-        if (sizeOfElements < 0)
+    public static int getActualSizeOfElements(short sizeOfElements) {
+        if (sizeOfElements < 0) {
             return (short) ( ( -sizeOfElements ) >> 2 );
-        else
-            return sizeOfElements;
+        }
+        return sizeOfElements;
     }
-
 }
index a1c52b4d48d2152a28dfb8adbcc4bbd01e22e820..cfe4fe102807e5c87b4cd23ffc473f21ae36899d 100644 (file)
@@ -1,4 +1,3 @@
-
 /* ====================================================================
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
    See the License for the specific language governing permissions and
    limitations under the License.
 ==================================================================== */
-        
+
 package org.apache.poi.ddf;
 
 import org.apache.poi.util.HexDump;
 import org.apache.poi.util.LittleEndian;
 
-import java.io.ByteArrayOutputStream;
-
 /**
  * The BSE record is related closely to the <code>EscherBlipRecord</code> and stores
  * extra information about the blip.  A blip record is actually stored inside
@@ -31,9 +28,7 @@ import java.io.ByteArrayOutputStream;
  * @author Glen Stampoultzis
  * @see EscherBlipRecord
  */
-public class EscherBSERecord
-        extends EscherRecord
-{
+public final class EscherBSERecord extends EscherRecord {
     public static final short RECORD_ID = (short) 0xF007;
     public static final String RECORD_DESCRIPTION = "MsofbtBSE";
 
@@ -59,20 +54,9 @@ public class EscherBSERecord
     private byte field_11_unused3;
     private EscherBlipRecord field_12_blipRecord;
 
-    private byte[] remainingData;
+    private byte[] _remainingData;
 
-    /**
-     * This method deserializes the record from a byte array.
-     *
-     * @param data          The byte array containing the escher record information
-     * @param offset        The starting offset into <code>data</code>.
-     * @param recordFactory May be null since this is not a container record.
-     * @return The number of bytes read from the byte array.
-     */
-    public int fillFields( byte[] data, int offset,
-                              EscherRecordFactory recordFactory
-                              )
-    {
+    public int fillFields(byte[] data, int offset, EscherRecordFactory recordFactory) {
         int bytesRemaining = readHeader( data, offset );
         int pos = offset + 8;
         field_1_blipTypeWin32 = data[pos];
@@ -87,53 +71,33 @@ public class EscherBSERecord
         field_10_unused2 = data[pos + 34];
         field_11_unused3 = data[pos + 35];
         bytesRemaining -= 36;
-        
+
         int bytesRead = 0;
         if (bytesRemaining > 0) {
-               // Some older escher formats skip this last record
+            // Some older escher formats skip this last record
             field_12_blipRecord = (EscherBlipRecord) recordFactory.createRecord( data, pos + 36 );
             bytesRead = field_12_blipRecord.fillFields( data, pos + 36, recordFactory );
         }
         pos += 36 + bytesRead;
         bytesRemaining -= bytesRead;
-//        if (field_1_blipTypeWin32 == BT_PNG)
-//        {
-//            byte[] uid = new byte[16];
-//            System.arraycopy( data, pos + 36, uid, 0, 16 );
-//            byte[] puid = new byte[16];
-//            System.arraycopy( data, pos + 52, puid, 0, 16 );
-//            byte tag = data[pos+68];
-//            System.out.println( HexDump.dump( data, 0, 0 ) );
-//            byte[] pngBytes = EscherBlipRecord.decompress( data, pos+69, bytesRemaining);
-//        }
-
-        remainingData = new byte[bytesRemaining];
-        System.arraycopy( data, pos, remainingData, 0, bytesRemaining );
+
+        _remainingData = new byte[bytesRemaining];
+        System.arraycopy( data, pos, _remainingData, 0, bytesRemaining );
         return bytesRemaining + 8 + 36 + (field_12_blipRecord == null ? 0 : field_12_blipRecord.getRecordSize()) ;
 
     }
 
-    /**
-     * This method serializes this escher record into a byte array.
-     *
-     * @param offset   The offset into <code>data</code> to start writing the record data to.
-     * @param data     The byte array to serialize to.
-     * @param listener A listener to retrieve start and end callbacks.  Use a <code>NullEscherSerailizationListener</code> to ignore these events.
-     * @return The number of bytes written.
-     * @see NullEscherSerializationListener
-     */
-    public int serialize( int offset, byte[] data, EscherSerializationListener listener )
-    {
+    public int serialize(int offset, byte[] data, EscherSerializationListener listener) {
         listener.beforeRecordSerialize( offset, getRecordId(), this );
 
-        if (remainingData == null)
-            remainingData = new byte[0];
+        if (_remainingData == null)
+            _remainingData = new byte[0];
 
         LittleEndian.putShort( data, offset, getOptions() );
         LittleEndian.putShort( data, offset + 2, getRecordId() );
-        if (remainingData == null) remainingData = new byte[0];
+        if (_remainingData == null) _remainingData = new byte[0];
         int blipSize = field_12_blipRecord == null ? 0 : field_12_blipRecord.getRecordSize();
-        int remainingBytes = remainingData.length + 36 + blipSize;
+        int remainingBytes = _remainingData.length + 36 + blipSize;
         LittleEndian.putInt( data, offset + 4, remainingBytes );
 
         data[offset + 8] = field_1_blipTypeWin32;
@@ -153,39 +117,29 @@ public class EscherBSERecord
         {
             bytesWritten = field_12_blipRecord.serialize( offset + 44, data, new NullEscherSerializationListener() );
         }
-        if (remainingData == null)
-            remainingData = new byte[0];
-        System.arraycopy( remainingData, 0, data, offset + 44 + bytesWritten, remainingData.length );
-        int pos = offset + 8 + 36 + remainingData.length + bytesWritten;
+        if (_remainingData == null)
+            _remainingData = new byte[0];
+        System.arraycopy( _remainingData, 0, data, offset + 44 + bytesWritten, _remainingData.length );
+        int pos = offset + 8 + 36 + _remainingData.length + bytesWritten;
 
         listener.afterRecordSerialize(pos, getRecordId(), pos - offset, this);
         return pos - offset;
     }
 
-    /**
-     * Returns the number of bytes that are required to serialize this record.
-     *
-     * @return Number of bytes
-     */
-    public int getRecordSize()
-    {
-       int field_12_size = 0;
-       if(field_12_blipRecord != null) {
-               field_12_size = field_12_blipRecord.getRecordSize(); 
-       }
-       int remaining_size = 0;
-       if(remainingData != null) {
-               remaining_size = remainingData.length;
-       }
+    public int getRecordSize() {
+        int field_12_size = 0;
+        if(field_12_blipRecord != null) {
+            field_12_size = field_12_blipRecord.getRecordSize();
+        }
+        int remaining_size = 0;
+        if(_remainingData != null) {
+            remaining_size = _remainingData.length;
+        }
         return 8 + 1 + 1 + 16 + 2 + 4 + 4 + 4 + 1 + 1 +
             1 + 1 + field_12_size + remaining_size;
     }
 
-    /**
-     * The short name for this record
-     */
-    public String getRecordName()
-    {
+    public String getRecordName() {
         return "BSE";
     }
 
@@ -193,260 +147,205 @@ public class EscherBSERecord
      * The expected blip type under windows (failure to match this blip type will result in
      * Excel converting to this format).
      */
-    public byte getBlipTypeWin32()
-    {
+    public byte getBlipTypeWin32() {
         return field_1_blipTypeWin32;
     }
 
     /**
      * Set the expected win32 blip type
      */
-    public void setBlipTypeWin32( byte blipTypeWin32 )
-    {
-        this.field_1_blipTypeWin32 = blipTypeWin32;
+    public void setBlipTypeWin32(byte blipTypeWin32) {
+        field_1_blipTypeWin32 = blipTypeWin32;
     }
 
     /**
      * The expected blip type under MacOS (failure to match this blip type will result in
      * Excel converting to this format).
      */
-    public byte getBlipTypeMacOS()
-    {
+    public byte getBlipTypeMacOS() {
         return field_2_blipTypeMacOS;
     }
 
     /**
      * Set the expected MacOS blip type
      */
-    public void setBlipTypeMacOS( byte blipTypeMacOS )
-    {
-        this.field_2_blipTypeMacOS = blipTypeMacOS;
+    public void setBlipTypeMacOS(byte blipTypeMacOS) {
+        field_2_blipTypeMacOS = blipTypeMacOS;
     }
 
     /**
      * 16 byte MD4 checksum.
      */
-    public byte[] getUid()
-    {
+    public byte[] getUid() {
         return field_3_uid;
     }
 
     /**
      * 16 byte MD4 checksum.
      */
-    public void setUid( byte[] uid )
-    {
-        this.field_3_uid = uid;
+    public void setUid(byte[] uid) {
+        field_3_uid = uid;
     }
 
     /**
      * unused
      */
-    public short getTag()
-    {
+    public short getTag() {
         return field_4_tag;
     }
 
     /**
      * unused
      */
-    public void setTag( short tag )
-    {
-        this.field_4_tag = tag;
+    public void setTag(short tag) {
+        field_4_tag = tag;
     }
 
     /**
      * Blip size in stream.
      */
-    public int getSize()
-    {
+    public int getSize() {
         return field_5_size;
     }
 
     /**
      * Blip size in stream.
      */
-    public void setSize( int size )
-    {
-        this.field_5_size = size;
+    public void setSize(int size) {
+        field_5_size = size;
     }
 
     /**
      * The reference count of this blip.
      */
-    public int getRef()
-    {
+    public int getRef() {
         return field_6_ref;
     }
 
     /**
      * The reference count of this blip.
      */
-    public void setRef( int ref )
-    {
-        this.field_6_ref = ref;
+    public void setRef(int ref) {
+        field_6_ref = ref;
     }
 
     /**
      * File offset in the delay stream.
      */
-    public int getOffset()
-    {
+    public int getOffset() {
         return field_7_offset;
     }
 
     /**
      * File offset in the delay stream.
      */
-    public void setOffset( int offset )
-    {
-        this.field_7_offset = offset;
+    public void setOffset(int offset) {
+        field_7_offset = offset;
     }
 
     /**
      * Defines the way this blip is used.
      */
-    public byte getUsage()
-    {
+    public byte getUsage() {
         return field_8_usage;
     }
 
     /**
      * Defines the way this blip is used.
      */
-    public void setUsage( byte usage )
-    {
-        this.field_8_usage = usage;
+    public void setUsage(byte usage) {
+        field_8_usage = usage;
     }
 
     /**
      * The length in characters of the blip name.
      */
-    public byte getName()
-    {
+    public byte getName() {
         return field_9_name;
     }
 
     /**
      * The length in characters of the blip name.
      */
-    public void setName( byte name )
-    {
-        this.field_9_name = name;
+    public void setName(byte name) {
+        field_9_name = name;
     }
 
-    public byte getUnused2()
-    {
+    public byte getUnused2() {
         return field_10_unused2;
     }
 
-    public void setUnused2( byte unused2 )
-    {
-        this.field_10_unused2 = unused2;
+    public void setUnused2(byte unused2) {
+        field_10_unused2 = unused2;
     }
 
-    public byte getUnused3()
-    {
+    public byte getUnused3() {
         return field_11_unused3;
     }
 
-    public void setUnused3( byte unused3 )
-    {
-        this.field_11_unused3 = unused3;
+    public void setUnused3(byte unused3) {
+        field_11_unused3 = unused3;
     }
 
-    public EscherBlipRecord getBlipRecord()
-    {
+    public EscherBlipRecord getBlipRecord() {
         return field_12_blipRecord;
     }
 
-    public void setBlipRecord( EscherBlipRecord field_12_blipRecord )
-    {
-        this.field_12_blipRecord = field_12_blipRecord;
+    public void setBlipRecord(EscherBlipRecord blipRecord) {
+        field_12_blipRecord = blipRecord;
     }
 
     /**
      * Any remaining data in this record.
      */
-    public byte[] getRemainingData()
-    {
-        return remainingData;
+    public byte[] getRemainingData() {
+        return _remainingData;
     }
 
     /**
      * Any remaining data in this record.
      */
-    public void setRemainingData( byte[] remainingData )
-    {
-        this.remainingData = remainingData;
-    }
-
-    /**
-     * Calculate the string representation of this object
-     */
-    public String toString()
-    {
-        String nl = System.getProperty( "line.separator" );
-
-        String extraData;
-        ByteArrayOutputStream b = new ByteArrayOutputStream();
-        try
-        {
-            HexDump.dump( this.remainingData, 0, b, 0 );
-            extraData = b.toString();
-        }
-        catch ( Exception e )
-        {
-            extraData = e.toString();
-        }
-        return getClass().getName() + ":" + nl +
-                "  RecordId: 0x" + HexDump.toHex( RECORD_ID ) + nl +
-                "  Options: 0x" + HexDump.toHex( getOptions() ) + nl +
-                "  BlipTypeWin32: " + field_1_blipTypeWin32 + nl +
-                "  BlipTypeMacOS: " + field_2_blipTypeMacOS + nl +
-                "  SUID: " + HexDump.toHex(field_3_uid) + nl +
-                "  Tag: " + field_4_tag + nl +
-                "  Size: " + field_5_size + nl +
-                "  Ref: " + field_6_ref + nl +
-                "  Offset: " + field_7_offset + nl +
-                "  Usage: " + field_8_usage + nl +
-                "  Name: " + field_9_name + nl +
-                "  Unused2: " + field_10_unused2 + nl +
-                "  Unused3: " + field_11_unused3 + nl +
-                "  blipRecord: " + field_12_blipRecord + nl +
-                "  Extra Data:" + nl + extraData;
+    public void setRemainingData(byte[] remainingData) {
+        _remainingData = remainingData;
+    }
+
+    public String toString() {
+        String extraData = HexDump.toHex(_remainingData, 32);
+        return getClass().getName() + ":" + '\n' +
+                "  RecordId: 0x" + HexDump.toHex( RECORD_ID ) + '\n' +
+                "  Options: 0x" + HexDump.toHex( getOptions() ) + '\n' +
+                "  BlipTypeWin32: " + field_1_blipTypeWin32 + '\n' +
+                "  BlipTypeMacOS: " + field_2_blipTypeMacOS + '\n' +
+                "  SUID: " + HexDump.toHex(field_3_uid) + '\n' +
+                "  Tag: " + field_4_tag + '\n' +
+                "  Size: " + field_5_size + '\n' +
+                "  Ref: " + field_6_ref + '\n' +
+                "  Offset: " + field_7_offset + '\n' +
+                "  Usage: " + field_8_usage + '\n' +
+                "  Name: " + field_9_name + '\n' +
+                "  Unused2: " + field_10_unused2 + '\n' +
+                "  Unused3: " + field_11_unused3 + '\n' +
+                "  blipRecord: " + field_12_blipRecord + '\n' +
+                "  Extra Data:" + '\n' + extraData;
     }
 
     /**
      * Retrieve the string representation given a blip id.
      */
-    public String getBlipType( byte b )
-    {
-        switch ( b )
-        {
-            case BT_ERROR:
-                return " ERROR";
-            case BT_UNKNOWN:
-                return " UNKNOWN";
-            case BT_EMF:
-                return " EMF";
-            case BT_WMF:
-                return " WMF";
-            case BT_PICT:
-                return " PICT";
-            case BT_JPEG:
-                return " JPEG";
-            case BT_PNG:
-                return " PNG";
-            case BT_DIB:
-                return " DIB";
-            default:
-                if ( b < 32 )
-                    return " NotKnown";
-                else
-                    return " Client";
+    public static String getBlipType(byte b) {
+        switch (b) {
+            case BT_ERROR:   return " ERROR";
+            case BT_UNKNOWN: return " UNKNOWN";
+            case BT_EMF:     return " EMF";
+            case BT_WMF:     return " WMF";
+            case BT_PICT:    return " PICT";
+            case BT_JPEG:    return " JPEG";
+            case BT_PNG:     return " PNG";
+            case BT_DIB:     return " DIB";
         }
+        if ( b < 32 ) {
+            return " NotKnown";
+        }
+        return " Client";
     }
-
-
 }
index 6abc7b2792c4c129c467d807fba83beda02c23fb..defbc9cb3b0882d59606f9b94e39ac8644a35725 100644 (file)
@@ -25,9 +25,7 @@ import java.io.ByteArrayOutputStream;
  * @author Glen Stampoultzis
  * @version $Id$
  */
-public class EscherBitmapBlip
-        extends EscherBlipRecord
-{
+public class EscherBitmapBlip extends EscherBlipRecord {
     public static final short RECORD_ID_JPEG = (short) 0xF018 + 5;
     public static final short RECORD_ID_PNG = (short) 0xF018 + 6;
     public static final short RECORD_ID_DIB = (short) 0xF018 + 7;
@@ -37,17 +35,7 @@ public class EscherBitmapBlip
     private byte[] field_1_UID;
     private byte field_2_marker = (byte) 0xFF;
 
-
-    /**
-     * This method deserializes the record from a byte array.
-     *
-     * @param data          The byte array containing the escher record information
-     * @param offset        The starting offset into <code>data</code>.
-     * @param recordFactory May be null since this is not a container record.
-     * @return The number of bytes read from the byte array.
-     */
-    public int fillFields( byte[] data, int offset, EscherRecordFactory recordFactory )
-    {
+    public int fillFields(byte[] data, int offset, EscherRecordFactory recordFactory) {
         int bytesAfterHeader = readHeader( data, offset );
         int pos = offset + HEADER_SIZE;
 
@@ -61,17 +49,6 @@ public class EscherBitmapBlip
         return bytesAfterHeader + HEADER_SIZE;
     }
 
-    /**
-      * Serializes the record to an existing byte array.
-      *
-      * @param offset    the offset within the byte array
-      * @param data      the data array to serialize to
-      * @param listener  a listener for begin and end serialization events.  This
-      *                  is useful because the serialization is
-      *                  hierarchical/recursive and sometimes you need to be able
-      *                  break into that.
-      * @return the number of bytes written.
-      */
      public int serialize( int offset, byte[] data, EscherSerializationListener listener )
      {
          listener.beforeRecordSerialize(offset, getRecordId(), this);
@@ -89,11 +66,6 @@ public class EscherBitmapBlip
          return HEADER_SIZE + 16 + 1 + field_pictureData.length;
      }
 
-    /**
-      * Returns the number of bytes that are required to serialize this record.
-      *
-      * @return Number of bytes
-      */
      public int getRecordSize()
      {
          return 8 + 16 + 1 + field_pictureData.length;
@@ -141,5 +113,4 @@ public class EscherBitmapBlip
                 "  Marker: 0x" + HexDump.toHex( field_2_marker ) + nl +
                 "  Extra Data:" + nl + extraData;
     }
-
 }
index a7e7d84365134cd25a1e582ced7418d92fb61335..48c0c2b2925fb993a3f7f77729447a805952d147 100644 (file)
@@ -1,4 +1,3 @@
-
 /* ====================================================================
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
    See the License for the specific language governing permissions and
    limitations under the License.
 ==================================================================== */
-        
+
 package org.apache.poi.ddf;
 
 import org.apache.poi.util.LittleEndian;
 import org.apache.poi.util.HexDump;
 
-import java.io.ByteArrayOutputStream;
-
 /**
  * @author Glen Stampoultzis
- * @version $Id$
  */
-public class EscherBlipRecord
-        extends EscherRecord
-{
+public class EscherBlipRecord extends EscherRecord { // TODO - instantiable superclass
     public static final short  RECORD_ID_START    = (short) 0xF018;
     public static final short  RECORD_ID_END      = (short) 0xF117;
     public static final String RECORD_DESCRIPTION = "msofbtBlip";
@@ -38,20 +32,10 @@ public class EscherBlipRecord
 
     protected              byte[] field_pictureData;
 
-    public EscherBlipRecord()
-    {
+    public EscherBlipRecord() {
     }
 
-    /**
-     * This method deserializes the record from a byte array.
-     *
-     * @param data          The byte array containing the escher record information
-     * @param offset        The starting offset into <code>data</code>.
-     * @param recordFactory May be null since this is not a container record.
-     * @return The number of bytes read from the byte array.
-     */
-    public int fillFields( byte[] data, int offset, EscherRecordFactory recordFactory )
-    {
+    public int fillFields(byte[] data, int offset, EscherRecordFactory recordFactory) {
         int bytesAfterHeader = readHeader( data, offset );
         int pos              = offset + HEADER_SIZE;
 
@@ -61,19 +45,7 @@ public class EscherBlipRecord
         return bytesAfterHeader + 8;
     }
 
-    /**
-     * Serializes the record to an existing byte array.
-     *
-     * @param offset    the offset within the byte array
-     * @param data      the data array to serialize to
-     * @param listener  a listener for begin and end serialization events.  This
-     *                  is useful because the serialization is
-     *                  hierarchical/recursive and sometimes you need to be able
-     *                  break into that.
-     * @return the number of bytes written.
-     */
-    public int serialize( int offset, byte[] data, EscherSerializationListener listener )
-    {
+    public int serialize(int offset, byte[] data, EscherSerializationListener listener) {
         listener.beforeRecordSerialize(offset, getRecordId(), this);
 
         LittleEndian.putShort( data, offset, getOptions() );
@@ -85,53 +57,27 @@ public class EscherBlipRecord
         return field_pictureData.length + 4;
     }
 
-    /**
-     * Returns the number of bytes that are required to serialize this record.
-     *
-     * @return Number of bytes
-     */
-    public int getRecordSize()
-    {
+    public int getRecordSize() {
         return field_pictureData.length + HEADER_SIZE;
     }
 
-    /**
-     * The short name for this record
-     */
-    public String getRecordName()
-    {
+    public String getRecordName() {
         return "Blip";
     }
 
-    public byte[] getPicturedata()
-    {
+    public byte[] getPicturedata() {
         return field_pictureData;
     }
 
-    public void setPictureData(byte[] pictureData)
-    {
+    public void setPictureData(byte[] pictureData) {
         field_pictureData = pictureData;
     }
 
-    public String toString()
-    {
-        String nl = System.getProperty( "line.separator" );
-
-        String extraData;
-        ByteArrayOutputStream b = new ByteArrayOutputStream();
-        try
-        {
-            HexDump.dump( this.field_pictureData, 0, b, 0 );
-            extraData = b.toString();
-        }
-        catch ( Exception e )
-        {
-            extraData = e.toString();
-        }
-        return getClass().getName() + ":" + nl +
-                "  RecordId: 0x" + HexDump.toHex( getRecordId() ) + nl +
-                "  Options: 0x" + HexDump.toHex( getOptions() ) + nl +
-                "  Extra Data:" + nl + extraData;
-
+    public String toString() {
+        String extraData = HexDump.toHex(field_pictureData, 32);
+        return getClass().getName() + ":" + '\n' +
+                "  RecordId: 0x" + HexDump.toHex( getRecordId() ) + '\n' +
+                "  Options: 0x" + HexDump.toHex( getOptions() ) + '\n' +
+                "  Extra Data:" + '\n' + extraData;
     }
 }
index c307d2b0d5d5e686de808b492c5890044a1f601b..f544dbe90c83a85e70d259464105562287a5a235 100644 (file)
@@ -15,7 +15,7 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 ==================================================================== */
-        
+
 package org.apache.poi.ddf;
 
 import org.apache.poi.util.HexDump;
@@ -58,19 +58,7 @@ public class EscherBlipWMFRecord
     private              byte   field_11_filter;
     private              byte[] field_12_data;
 
-
-    /**
-     * This method deserializes the record from a byte array.
-     *
-     * @param data          The byte array containing the escher record information
-     * @param offset        The starting offset into <code>data</code>.
-     * @param recordFactory May be null since this is not a container record.
-     * @return The number of bytes read from the byte array.
-     */
-    public int fillFields( byte[] data, int offset,
-                              EscherRecordFactory recordFactory
-                              )
-    {
+    public int fillFields(byte[] data, int offset, EscherRecordFactory recordFactory) {
         int bytesAfterHeader = readHeader( data, offset );
         int pos              = offset + HEADER_SIZE;
 
@@ -96,17 +84,6 @@ public class EscherBlipWMFRecord
         return HEADER_SIZE + size;
     }
 
-
-    /**
-     * This method serializes this escher record into a byte array.
-     *
-     * @param offset   The offset into <code>data</code> to start writing the record data to.
-     * @param data     The byte array to serialize to.
-     * @param listener A listener to retrieve start and end callbacks.  Use a <code>NullEscherSerailizationListener</code> to ignore these events.
-     * @return The number of bytes written.
-     *
-     * @see NullEscherSerializationListener
-     */
     public int serialize( int offset, byte[] data, EscherSerializationListener listener )
     {
         listener.beforeRecordSerialize(offset, getRecordId(), this);
@@ -134,21 +111,12 @@ public class EscherBlipWMFRecord
         return pos - offset;
     }
 
-    /**
-     * Returns the number of bytes that are required to serialize this record.
-     *
-     * @return Number of bytes
-     */
     public int getRecordSize()
     {
         return 58 + field_12_data.length;
     }
 
-    /**
-     * The short name for this record
-     */
-    public String getRecordName()
-    {
+    public String getRecordName() {
         return "Blip";
     }
 
index ffd917e5cae372c6b1f6612c0e6a7c4cbf216543..cf69299f6642ef714474a48dfdfac95cf3025c06 100644 (file)
@@ -15,7 +15,7 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 ==================================================================== */
-        
+
 package org.apache.poi.ddf;
 
 /**
index f97448b65c0ce52a59d7bd3692dfcb4ad396857e..15f729298e2ba0f107453d06ea719dfc4f9f4fc5 100644 (file)
@@ -15,7 +15,7 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 ==================================================================== */
-        
+
 package org.apache.poi.ddf;
 
 import org.apache.poi.util.HexDump;
@@ -39,16 +39,7 @@ public class EscherChildAnchorRecord
     private int field_3_dx2;
     private int field_4_dy2;
 
-    /**
-     * This method deserializes the record from a byte array.
-     *
-     * @param data          The byte array containing the escher record information
-     * @param offset        The starting offset into <code>data</code>.
-     * @param recordFactory May be null since this is not a container record.
-     * @return The number of bytes read from the byte array.
-     */
-    public int fillFields( byte[] data, int offset, EscherRecordFactory recordFactory )
-    {
+    public int fillFields(byte[] data, int offset, EscherRecordFactory recordFactory) {
         int bytesRemaining = readHeader( data, offset );
         int pos            = offset + 8;
         int size           = 0;
@@ -59,17 +50,7 @@ public class EscherChildAnchorRecord
         return 8 + size;
     }
 
-    /**
-     * This method serializes this escher record into a byte array.
-     *
-     * @param offset   The offset into <code>data</code> to start writing the record data to.
-     * @param data     The byte array to serialize to.
-     * @param listener A listener to retrieve start and end callbacks.  Use a <code>NullEscherSerailizationListener</code> to ignore these events.
-     * @return The number of bytes written.
-     * @see NullEscherSerializationListener
-     */
-    public int serialize( int offset, byte[] data, EscherSerializationListener listener )
-    {
+    public int serialize(int offset, byte[] data, EscherSerializationListener listener) {
         listener.beforeRecordSerialize( offset, getRecordId(), this );
         int pos = offset;
         LittleEndian.putShort( data, pos, getOptions() );          pos += 2;
@@ -84,32 +65,20 @@ public class EscherChildAnchorRecord
         return pos - offset;
     }
 
-    /**
-     * Returns the number of bytes that are required to serialize this record.
-     *
-     * @return Number of bytes
-     */
     public int getRecordSize()
     {
         return 8 + 4 * 4;
     }
 
-    /**
-     * The record id for the EscherChildAnchorRecord.
-     */
-    public short getRecordId()
-    {
+    public short getRecordId() {
         return RECORD_ID;
     }
 
-    /**
-     * The short name for this record
-     */
-    public String getRecordName()
-    {
+    public String getRecordName() {
         return "ChildAnchor";
     }
 
+
     /**
      * The string representation of this record
      */
index ec3354c59952bac998f340f1d9fdaddd1afad284..4f96247329960841148fd38ba4421bb5018c496a 100644 (file)
@@ -15,7 +15,7 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 ==================================================================== */
-        
+
 package org.apache.poi.ddf;
 
 import org.apache.poi.util.HexDump;
@@ -50,16 +50,7 @@ public class EscherClientAnchorRecord
     private byte[] remainingData;
     private boolean shortRecord = false;
 
-    /**
-     * This method deserializes the record from a byte array.
-     *
-     * @param data          The byte array containing the escher record information
-     * @param offset        The starting offset into <code>data</code>.
-     * @param recordFactory May be null since this is not a container record.
-     * @return The number of bytes read from the byte array.
-     */
-    public int fillFields( byte[] data, int offset, EscherRecordFactory recordFactory )
-    {
+    public int fillFields(byte[] data, int offset, EscherRecordFactory recordFactory) {
         int bytesRemaining = readHeader( data, offset );
         int pos            = offset + 8;
         int size           = 0;
@@ -92,15 +83,6 @@ public class EscherClientAnchorRecord
         return 8 + size + bytesRemaining;
     }
 
-    /**
-     * This method serializes this escher record into a byte array.
-     *
-     * @param offset   The offset into <code>data</code> to start writing the record data to.
-     * @param data     The byte array to serialize to.
-     * @param listener A listener to retrieve start and end callbacks.  Use a <code>NullEscherSerailizationListener</code> to ignore these events.
-     * @return The number of bytes written.
-     * @see NullEscherSerializationListener
-     */
     public int serialize( int offset, byte[] data, EscherSerializationListener listener )
     {
         listener.beforeRecordSerialize( offset, getRecordId(), this );
@@ -128,29 +110,16 @@ public class EscherClientAnchorRecord
         return pos - offset;
     }
 
-    /**
-     * Returns the number of bytes that are required to serialize this record.
-     *
-     * @return Number of bytes
-     */
     public int getRecordSize()
     {
         return 8 + (shortRecord ? 8 : 18) + (remainingData == null ? 0 : remainingData.length);
     }
 
-    /**
-     * The record id for this record.
-     */
-    public short getRecordId()
-    {
+    public short getRecordId() {
         return RECORD_ID;
     }
 
-    /**
-     * The short name for this record
-     */
-    public String getRecordName()
-    {
+    public String getRecordName() {
         return "ClientAnchor";
     }
 
index 92056334dac3ff78afe8f02125f7dbe887aad1d2..7dc9627122396a901c7549102b0a11ddb19cb6e9 100644 (file)
@@ -15,7 +15,7 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 ==================================================================== */
-        
+
 package org.apache.poi.ddf;
 
 import org.apache.poi.util.HexDump;
@@ -37,16 +37,7 @@ public class EscherClientDataRecord
 
     private byte[] remainingData;
 
-    /**
-     * This method deserializes the record from a byte array.
-     *
-     * @param data          The byte array containing the escher record information
-     * @param offset        The starting offset into <code>data</code>.
-     * @param recordFactory May be null since this is not a container record.
-     * @return The number of bytes read from the byte array.
-     */
-    public int fillFields( byte[] data, int offset, EscherRecordFactory recordFactory )
-    {
+    public int fillFields(byte[] data, int offset, EscherRecordFactory recordFactory) {
         int bytesRemaining = readHeader( data, offset );
         int pos            = offset + 8;
         remainingData  =  new byte[bytesRemaining];
@@ -54,17 +45,7 @@ public class EscherClientDataRecord
         return 8 + bytesRemaining;
     }
 
-    /**
-     * This method serializes this escher record into a byte array.
-     *
-     * @param offset   The offset into <code>data</code> to start writing the record data to.
-     * @param data     The byte array to serialize to.
-     * @param listener A listener to retrieve start and end callbacks.  Use a <code>NullEscherSerailizationListener</code> to ignore these events.
-     * @return The number of bytes written.
-     * @see NullEscherSerializationListener
-     */
-    public int serialize( int offset, byte[] data, EscherSerializationListener listener )
-    {
+    public int serialize(int offset, byte[] data, EscherSerializationListener listener) {
         listener.beforeRecordSerialize( offset, getRecordId(), this );
 
         if (remainingData == null) remainingData = new byte[0];
@@ -78,29 +59,16 @@ public class EscherClientDataRecord
         return pos - offset;
     }
 
-    /**
-     * Returns the number of bytes that are required to serialize this record.
-     *
-     * @return Number of bytes
-     */
     public int getRecordSize()
     {
         return 8 + (remainingData == null ? 0 : remainingData.length);
     }
 
-    /**
-     * Returns the identifier of this record.
-     */
-    public short getRecordId()
-    {
+    public short getRecordId() {
         return RECORD_ID;
     }
 
-    /**
-     * The short name for this record
-     */
-    public String getRecordName()
-    {
+    public String getRecordName() {
         return "ClientData";
     }
 
index 5f0fc7241eb14533cd8b4b412bf92ac486b2ba6b..fa822f7f49f30c386cf49849c709338812e76604 100644 (file)
@@ -1,4 +1,3 @@
-
 /* ====================================================================
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
    See the License for the specific language governing permissions and
    limitations under the License.
 ==================================================================== */
-        
-package org.apache.poi.ddf;
 
-import org.apache.poi.util.LittleEndian;
-import org.apache.poi.util.HexDump;
+package org.apache.poi.ddf;
 
 import java.util.Arrays;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
+
+import org.apache.poi.util.HexDump;
+import org.apache.poi.util.LittleEndian;
 
 /**
  * A complex property differs from a simple property in that the data can not fit inside a 32 bit
@@ -32,10 +29,9 @@ import java.io.IOException;
  *
  * @author Glen Stampoultzis
  */
-public class EscherComplexProperty
-        extends EscherProperty
-{
-    byte[] complexData = new byte[0];
+public class EscherComplexProperty extends EscherProperty {
+    // TODO - make private and final
+    protected byte[] _complexData;
 
     /**
      * Create a complex property using the property id and a byte array containing the complex
@@ -45,10 +41,9 @@ public class EscherComplexProperty
      *                    indicating that this is a complex property.
      * @param complexData The value of this property.
      */
-    public EscherComplexProperty( short id, byte[] complexData )
-    {
-        super( id );
-        this.complexData = complexData;
+    public EscherComplexProperty(short id, byte[] complexData) {
+        super(id);
+        _complexData = complexData;
     }
 
     /**
@@ -59,19 +54,17 @@ public class EscherComplexProperty
      * @param isBlipId       Whether this is a blip id.  Should be false.
      * @param complexData    The value of this complex property.
      */
-    public EscherComplexProperty( short propertyNumber, boolean isBlipId, byte[] complexData )
-    {
-        super( propertyNumber, true, isBlipId );
-        this.complexData = complexData;
+    public EscherComplexProperty(short propertyNumber, boolean isBlipId, byte[] complexData) {
+        super(propertyNumber, true, isBlipId);
+        _complexData = complexData;
     }
 
     /**
-     * Serializes the simple part of this property.  ie the first 6 bytes.
+     * Serializes the simple part of this property.  i.e. the first 6 bytes.
      */
-    public int serializeSimplePart( byte[] data, int pos )
-    {
+    public int serializeSimplePart(byte[] data, int pos) {
         LittleEndian.putShort(data, pos, getId());
-        LittleEndian.putInt(data, pos + 2, complexData.length);
+        LittleEndian.putInt(data, pos + 2, _complexData.length);
         return 6;
     }
 
@@ -82,18 +75,16 @@ public class EscherComplexProperty
      * @param pos  The offset within data to start serializing to.
      * @return The number of bytes serialized.
      */
-    public int serializeComplexPart( byte[] data, int pos )
-    {
-        System.arraycopy(complexData, 0, data, pos, complexData.length);
-        return complexData.length;
+    public int serializeComplexPart(byte[] data, int pos) {
+        System.arraycopy(_complexData, 0, data, pos, _complexData.length);
+        return _complexData.length;
     }
 
     /**
      * Get the complex data value.
      */
-    public byte[] getComplexData()
-    {
-        return complexData;
+    public byte[] getComplexData() {
+        return _complexData;
     }
 
     /**
@@ -102,63 +93,39 @@ public class EscherComplexProperty
      * @param o The object to compare to.
      * @return True if the objects are equal.
      */
-    public boolean equals( Object o )
-    {
-        if ( this == o ) return true;
-        if ( !( o instanceof EscherComplexProperty ) ) return false;
+    public boolean equals(Object o) {
+        if (this == o) {
+            return true;
+        }
+        if (!(o instanceof EscherComplexProperty)) {
+            return false;
+        }
 
-        final EscherComplexProperty escherComplexProperty = (EscherComplexProperty) o;
+        EscherComplexProperty escherComplexProperty = (EscherComplexProperty) o;
 
-        if ( !Arrays.equals( complexData, escherComplexProperty.complexData ) ) return false;
+        if ( !Arrays.equals( _complexData, escherComplexProperty._complexData ) ) return false;
 
         return true;
     }
 
     /**
-     * Caclulates the number of bytes required to serialize this property.
+     * Calculates the number of bytes required to serialize this property.
      *
      * @return Number of bytes
      */
-    public int getPropertySize()
-    {
-        return 6 + complexData.length;
+    public int getPropertySize() {
+        return 6 + _complexData.length;
     }
 
-    /**
-     * Calculates a hashcode for this property.
-     */
-    public int hashCode()
-    {
+    public int hashCode() {
         return getId() * 11;
     }
 
     /**
      * Retrieves the string representation for this property.
      */
-    public String toString()
-    {
-        String dataStr;
-        ByteArrayOutputStream b = new ByteArrayOutputStream();
-        try
-        {
-            HexDump.dump( this.complexData, 0, b, 0 );
-            dataStr = b.toString();
-        }
-        catch ( Exception e )
-        {
-            dataStr = e.toString();
-        }
-        finally
-        {
-            try
-            {
-                b.close();
-            }
-            catch ( IOException e )
-            {
-                e.printStackTrace();
-            }
-        }
+    public String toString() {
+        String dataStr = HexDump.toHex( _complexData, 32);
 
         return "propNum: " + getPropertyNumber()
                 + ", propName: " + EscherProperties.getPropertyName( getPropertyNumber() )
index 3cae99b99617b6447ab2c1fb37cdaea103d035cf..a96bffa861052da982ec72a36f5b4faa095c57a8 100644 (file)
@@ -15,7 +15,7 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 ==================================================================== */
-        
+
 package org.apache.poi.ddf;
 
 import org.apache.poi.util.HexDump;
@@ -36,16 +36,7 @@ public class EscherDgRecord
     private int field_1_numShapes;
     private int field_2_lastMSOSPID;
 
-    /**
-     * This method deserializes the record from a byte array.
-     *
-     * @param data          The byte array containing the escher record information
-     * @param offset        The starting offset into <code>data</code>.
-     * @param recordFactory May be null since this is not a container record.
-     * @return The number of bytes read from the byte array.
-     */
-    public int fillFields( byte[] data, int offset, EscherRecordFactory recordFactory )
-    {
+    public int fillFields(byte[] data, int offset, EscherRecordFactory recordFactory) {
         int bytesRemaining = readHeader( data, offset );
         int pos            = offset + 8;
         int size           = 0;
@@ -57,15 +48,6 @@ public class EscherDgRecord
         return getRecordSize();
     }
 
-    /**
-     * This method serializes this escher record into a byte array.
-     *
-     * @param offset   The offset into <code>data</code> to start writing the record data to.
-     * @param data     The byte array to serialize to.
-     * @param listener A listener to retrieve start and end callbacks.  Use a <code>NullEscherSerailizationListener</code> to ignore these events.
-     * @return The number of bytes written.
-     * @see NullEscherSerializationListener
-     */
     public int serialize( int offset, byte[] data, EscherSerializationListener listener )
     {
         listener.beforeRecordSerialize( offset, getRecordId(), this );
@@ -92,42 +74,23 @@ public class EscherDgRecord
         return 8 + 8;
     }
 
-    public short getRecordId()
-    {
+    public short getRecordId() {
         return RECORD_ID;
     }
 
-    /**
-     * The short name for this record
-     */
-    public String getRecordName()
-    {
+    public String getRecordName() {
         return "Dg";
     }
 
     /**
      * Returns the string representation of this record.
      */
-    public String toString()
-    {
-        String nl = System.getProperty("line.separator");
-
-//        String extraData;
-//        ByteArrayOutputStream b = new ByteArrayOutputStream();
-//        try
-//        {
-//            HexDump.dump(this.remainingData, 0, b, 0);
-//            extraData = b.toString();
-//        }
-//        catch ( Exception e )
-//        {
-//            extraData = "error";
-//        }
-        return getClass().getName() + ":" + nl +
-                "  RecordId: 0x" + HexDump.toHex(RECORD_ID) + nl +
-                "  Options: 0x" + HexDump.toHex(getOptions()) + nl +
-                "  NumShapes: " + field_1_numShapes + nl +
-                "  LastMSOSPID: " + field_2_lastMSOSPID + nl;
+    public String toString() {
+        return getClass().getName() + ":" + '\n' +
+                "  RecordId: 0x" + HexDump.toHex(RECORD_ID) + '\n' +
+                "  Options: 0x" + HexDump.toHex(getOptions()) + '\n' +
+                "  NumShapes: " + field_1_numShapes + '\n' +
+                "  LastMSOSPID: " + field_2_lastMSOSPID + '\n';
 
     }
 
index cc0d3aef8e48542c1d5b6ca44bf70b1e05642501..2266d127ae1e7c3264bba6375155413e270a0d05 100644 (file)
@@ -1,4 +1,3 @@
-
 /* ====================================================================
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
@@ -15,7 +14,7 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 ==================================================================== */
-        
+
 package org.apache.poi.ddf;
 
 import org.apache.poi.util.HexDump;
@@ -27,9 +26,7 @@ import java.util.*;
 /**
  * This record defines the drawing groups used for a particular sheet.
  */
-public class EscherDggRecord
-    extends EscherRecord
-{
+public final class EscherDggRecord extends EscherRecord {
     public static final short RECORD_ID = (short) 0xF006;
     public static final String RECORD_DESCRIPTION = "MsofbtDgg";
 
@@ -67,21 +64,12 @@ public class EscherDggRecord
         }
     }
 
-    /**
-     * This method deserializes the record from a byte array.
-     *
-     * @param data          The byte array containing the escher record information
-     * @param offset        The starting offset into <code>data</code>.
-     * @param recordFactory May be null since this is not a container record.
-     * @return The number of bytes read from the byte array.
-     */
-    public int fillFields( byte[] data, int offset, EscherRecordFactory recordFactory )
-    {
+    public int fillFields(byte[] data, int offset, EscherRecordFactory recordFactory) {
         int bytesRemaining = readHeader( data, offset );
         int pos            = offset + 8;
         int size           = 0;
         field_1_shapeIdMax     =  LittleEndian.getInt( data, pos + size );size+=4;
-        int field_2_numIdClusters  =  LittleEndian.getInt( data, pos + size );size+=4;
+        LittleEndian.getInt( data, pos + size );size+=4; // field_2_numIdClusters
         field_3_numShapesSaved =  LittleEndian.getInt( data, pos + size );size+=4;
         field_4_drawingsSaved  =  LittleEndian.getInt( data, pos + size );size+=4;
         field_5_fileIdClusters = new FileIdCluster[(bytesRemaining-size) / 8];  // Can't rely on field_2_numIdClusters
@@ -97,18 +85,7 @@ public class EscherDggRecord
         return 8 + size + bytesRemaining;
     }
 
-    /**
-     * This method serializes this escher record into a byte array.
-     *
-     * @param offset   The offset into <code>data</code> to start writing the record data to.
-     * @param data     The byte array to serialize to.
-     * @param listener A listener to retrieve start and end callbacks.  Use a <code>NullEscherSerailizationListener</code> to ignore these events.
-     * @return The number of bytes written.
-     *
-     * @see NullEscherSerializationListener
-     */
-    public int serialize( int offset, byte[] data, EscherSerializationListener listener )
-    {
+    public int serialize(int offset, byte[] data, EscherSerializationListener listener) {
         listener.beforeRecordSerialize( offset, getRecordId(), this );
 
         int pos = offset;
@@ -121,8 +98,7 @@ public class EscherDggRecord
         LittleEndian.putInt( data, pos, getNumIdClusters() );          pos += 4;
         LittleEndian.putInt( data, pos, field_3_numShapesSaved );      pos += 4;
         LittleEndian.putInt( data, pos, field_4_drawingsSaved );       pos += 4;
-        for ( int i = 0; i < field_5_fileIdClusters.length; i++ )
-        {
+        for (int i = 0; i < field_5_fileIdClusters.length; i++) {
             LittleEndian.putInt( data, pos, field_5_fileIdClusters[i].field_1_drawingGroupId );   pos += 4;
             LittleEndian.putInt( data, pos, field_5_fileIdClusters[i].field_2_numShapeIdsUsed );  pos += 4;
         }
@@ -131,129 +107,94 @@ public class EscherDggRecord
         return getRecordSize();
     }
 
-    /**
-     * Returns the number of bytes that are required to serialize this record.
-     *
-     * @return Number of bytes
-     */
-    public int getRecordSize()
-    {
+    public int getRecordSize() {
         return 8 + 16 + (8 * field_5_fileIdClusters.length);
     }
 
-    public short getRecordId()
-    {
+    public short getRecordId() {
         return RECORD_ID;
     }
 
-    /**
-     * The short name for this record
-     */
-    public String getRecordName()
-    {
+    public String getRecordName() {
         return "Dgg";
     }
 
-    public String toString()
-    {
-        String nl = System.getProperty("line.separator");
-
-//        String extraData;
-//        ByteArrayOutputStream b = new ByteArrayOutputStream();
-//        try
-//        {
-//            HexDump.dump(this.remainingData, 0, b, 0);
-//            extraData = b.toString();
-//        }
-//        catch ( Exception e )
-//        {
-//            extraData = "error";
-//        }
+    public String toString() {
+
         StringBuffer field_5_string = new StringBuffer();
-        for ( int i = 0; i < field_5_fileIdClusters.length; i++ )
-        {
+        for (int i = 0; i < field_5_fileIdClusters.length; i++) {
             field_5_string.append("  DrawingGroupId").append(i+1).append(": ");
             field_5_string.append(field_5_fileIdClusters[i].field_1_drawingGroupId);
-            field_5_string.append(nl);
+            field_5_string.append('\n');
             field_5_string.append("  NumShapeIdsUsed").append(i+1).append(": ");
             field_5_string.append(field_5_fileIdClusters[i].field_2_numShapeIdsUsed);
-            field_5_string.append(nl);
+            field_5_string.append('\n');
         }
-        return getClass().getName() + ":" + nl +
-                "  RecordId: 0x" + HexDump.toHex(RECORD_ID) + nl +
-                "  Options: 0x" + HexDump.toHex(getOptions()) + nl +
-                "  ShapeIdMax: " + field_1_shapeIdMax + nl +
-                "  NumIdClusters: " + getNumIdClusters() + nl +
-                "  NumShapesSaved: " + field_3_numShapesSaved + nl +
-                "  DrawingsSaved: " + field_4_drawingsSaved + nl +
+        return getClass().getName() + ":" + '\n' +
+                "  RecordId: 0x" + HexDump.toHex(RECORD_ID) + '\n' +
+                "  Options: 0x" + HexDump.toHex(getOptions()) + '\n' +
+                "  ShapeIdMax: " + field_1_shapeIdMax + '\n' +
+                "  NumIdClusters: " + getNumIdClusters() + '\n' +
+                "  NumShapesSaved: " + field_3_numShapesSaved + '\n' +
+                "  DrawingsSaved: " + field_4_drawingsSaved + '\n' +
                 "" + field_5_string.toString();
 
     }
 
-    public int getShapeIdMax()
-    {
+    public int getShapeIdMax() {
         return field_1_shapeIdMax;
     }
 
     /**
      * The maximum is actually the next available. shape id.
      */
-    public void setShapeIdMax( int field_1_shapeIdMax )
-    {
-        this.field_1_shapeIdMax = field_1_shapeIdMax;
+    public void setShapeIdMax(int shapeIdMax) {
+        this.field_1_shapeIdMax = shapeIdMax;
     }
 
     /**
      * Number of id clusters + 1
-     */ 
-    public int getNumIdClusters()
-    {
+     */
+    public int getNumIdClusters() {
         return field_5_fileIdClusters.length + 1;
     }
 
-    public int getNumShapesSaved()
-    {
+    public int getNumShapesSaved() {
         return field_3_numShapesSaved;
     }
 
-    public void setNumShapesSaved( int field_3_numShapesSaved )
-    {
-        this.field_3_numShapesSaved = field_3_numShapesSaved;
+    public void setNumShapesSaved(int numShapesSaved) {
+        this.field_3_numShapesSaved = numShapesSaved;
     }
 
-    public int getDrawingsSaved()
-    {
+    public int getDrawingsSaved() {
         return field_4_drawingsSaved;
     }
 
-    public void setDrawingsSaved( int field_4_drawingsSaved )
-    {
-        this.field_4_drawingsSaved = field_4_drawingsSaved;
+    public void setDrawingsSaved(int drawingsSaved) {
+        this.field_4_drawingsSaved = drawingsSaved;
     }
 
     /**
      * @return The maximum drawing group ID
      */
-    public int getMaxDrawingGroupId(){
+    public int getMaxDrawingGroupId() {
         return maxDgId;
     }
 
-    public void setMaxDrawingGroupId(int id){
+    public void setMaxDrawingGroupId(int id) {
         maxDgId = id;
     }
 
-     public FileIdCluster[] getFileIdClusters()
-    {
+    public FileIdCluster[] getFileIdClusters() {
         return field_5_fileIdClusters;
     }
 
-    public void setFileIdClusters( FileIdCluster[] field_5_fileIdClusters )
-    {
-        this.field_5_fileIdClusters = field_5_fileIdClusters;
+    public void setFileIdClusters(FileIdCluster[] fileIdClusters) {
+        this.field_5_fileIdClusters = fileIdClusters;
     }
 
-    public void addCluster( int dgId, int numShapedUsed )
-    {
+    public void addCluster(int dgId, int numShapedUsed) {
         addCluster(dgId, numShapedUsed, true);
     }
 
@@ -265,25 +206,23 @@ public class EscherDggRecord
      * @param sort if true then sort clusters by drawing group id.(
      *  In Excel the clusters are sorted but in PPT they are not)
      */
-    public void addCluster( int dgId, int numShapedUsed, boolean sort )
-    {
-        List clusters = new ArrayList(Arrays.asList(field_5_fileIdClusters));
+    public void addCluster( int dgId, int numShapedUsed, boolean sort ) {
+        List<FileIdCluster> clusters = new ArrayList<FileIdCluster>(Arrays.asList(field_5_fileIdClusters));
         clusters.add(new FileIdCluster(dgId, numShapedUsed));
-        if(sort) Collections.sort(clusters, new Comparator()
-        {
-            public int compare( Object o1, Object o2 )
-            {
-                FileIdCluster f1 = (FileIdCluster) o1;
-                FileIdCluster f2 = (FileIdCluster) o2;
-                if (f1.getDrawingGroupId() == f2.getDrawingGroupId())
-                    return 0;
-                if (f1.getDrawingGroupId() < f2.getDrawingGroupId())
-                    return -1;
-                else
-                    return +1;
-            }
-        } );
+        if(sort) Collections.sort(clusters, MY_COMP );
         maxDgId = Math.min(maxDgId, dgId);
-        field_5_fileIdClusters = (FileIdCluster[]) clusters.toArray( new FileIdCluster[clusters.size()] );
+        field_5_fileIdClusters = clusters.toArray( new FileIdCluster[clusters.size()] );
     }
+
+    private static final Comparator<FileIdCluster> MY_COMP = new Comparator<FileIdCluster>() {
+        public int compare(FileIdCluster f1, FileIdCluster f2) {
+            if (f1.getDrawingGroupId() == f2.getDrawingGroupId()) {
+                return 0;
+            }
+            if (f1.getDrawingGroupId() < f2.getDrawingGroupId()) {
+                return -1;
+            }
+            return +1;
+        }
+    };
 }
index 3e1d630cd9cac10d439449d97c0c7d9b4a0d79e1..17ac2db36c0affe3b2d8c58f066d95a17c95793c 100644 (file)
@@ -1,4 +1,3 @@
-
 /* ====================================================================
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
@@ -15,7 +14,6 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 ==================================================================== */
-        
 
 package org.apache.poi.ddf;
 
@@ -34,11 +32,10 @@ import java.util.zip.InflaterInputStream;
  *
  * @author Glen Stampoultzis (glens at apache.org)
  */
-public class EscherDump
-{
+public final class EscherDump {
 
-    public EscherDump()
-    {
+    public EscherDump() {
+        //
     }
 
     /**
@@ -51,15 +48,14 @@ public class EscherDump
      * @param out       The output stream to write the results to.
      *
      */
-    public void dump( byte[] data, int offset, int size, PrintStream out ) throws IOException, LittleEndian.BufferUnderrunException
-    {
+    public void dump(byte[] data, int offset, int size, PrintStream out) {
         EscherRecordFactory recordFactory = new DefaultEscherRecordFactory();
         int pos = offset;
         while ( pos < offset + size )
         {
             EscherRecord r = recordFactory.createRecord(data, pos);
             int bytesRead = r.fillFields(data, pos, recordFactory );
-            System.out.println( r.toString() );
+            out.println( r.toString() );
             pos += bytesRead;
         }
     }
@@ -71,8 +67,8 @@ public class EscherDump
      * @param in        An input stream to read from.
      * @param out       An output stream to write to.
      */
-    public void dumpOld( long maxLength, InputStream in, PrintStream out ) throws IOException, LittleEndian.BufferUnderrunException
-    {
+    public void dumpOld(long maxLength, InputStream in, PrintStream out)
+            throws IOException, LittleEndian.BufferUnderrunException {
         long remainingBytes = maxLength;
         short options;      // 4 bits for the version and 12 bits for the instance
         short recordId;
@@ -83,8 +79,7 @@ public class EscherDump
 
         boolean atEOF = false;
 
-        while ( !atEOF && ( remainingBytes > 0 ) )
-        {
+        while (!atEOF && (remainingBytes > 0)) {
             stringBuf = new StringBuffer();
             options = LittleEndian.readShort( in );
             recordId = LittleEndian.readShort( in );
@@ -435,17 +430,14 @@ public class EscherDump
      * @param propertyId    The property number for the name
      * @return  A descriptive name.
      */
-    private String propName( short propertyId )
-    {
-        class PropName {
-            public PropName( int id, String name )
-            {
-                this.id = id;
-                this.name = name;
+    private String propName(short propertyId) {
+        final class PropName {
+            final int _id;
+            final String _name;
+            public PropName(int id, String name) {
+                _id = id;
+                _name = name;
             }
-
-            int id;
-            String name;
         }
 
         final PropName[] props = new PropName[] {
@@ -725,11 +717,9 @@ public class EscherDump
             new PropName(959, "groupshape.print"),
         };
 
-        for ( int i = 0; i < props.length; i++ )
-        {
-            if (props[i].id == propertyId)
-            {
-                return props[i].name;
+        for (int i = 0; i < props.length; i++) {
+            if (props[i]._id == propertyId) {
+                return props[i]._name;
             }
         }
 
@@ -742,32 +732,8 @@ public class EscherDump
      * @param   b   blip id
      * @return  A description.
      */
-    private String getBlipType( byte b )
-    {
-        switch ( b )
-        {
-            case 0:
-                return " ERROR";
-            case 1:
-                return " UNKNOWN";
-            case 2:
-                return " EMF";
-            case 3:
-                return " WMF";
-            case 4:
-                return " PICT";
-            case 5:
-                return " JPEG";
-            case 6:
-                return " PNG";
-            case 7:
-                return " DIB";
-            default:
-                if ( b < 32 )
-                    return " NotKnown";
-                else
-                    return " Client";
-        }
+    private static String getBlipType(byte b) {
+        return EscherBSERecord.getBlipType(b);
     }
 
     /**
@@ -810,8 +776,7 @@ public class EscherDump
     /**
      * A simple test stub.
      */
-    public static void main( String[] args ) throws IOException
-    {
+    public static void main( String[] args ) {
         String dump =
                 "0F 00 00 F0 89 07 00 00 00 00 06 F0 18 00 00 00 " +
                 "05 04 00 00 02 00 00 00 05 00 00 00 01 00 00 00 " +
@@ -937,7 +902,7 @@ public class EscherDump
                 "10                                              ";
 
         // Decode the stream to bytes
-        byte[] bytes = HexRead.readData( new ByteArrayInputStream( dump.getBytes() ), -1 );
+        byte[] bytes = HexRead.readFromString(dump);
         // Create a new instance of the escher dumper
         EscherDump dumper = new EscherDump();
         // Dump the contents of scher to screen.
@@ -946,10 +911,7 @@ public class EscherDump
 
     }
 
-    public void dump( int recordSize, byte[] data, PrintStream out ) throws IOException, LittleEndian.BufferUnderrunException
-    {
-//        ByteArrayInputStream is = new ByteArrayInputStream( data );
-//        dump( recordSize, is, out );
-        dump( data, 0, recordSize, System.out );
+    public void dump( int recordSize, byte[] data, PrintStream out ) {
+        dump( data, 0, recordSize, out );
     }
 }
index 75c282ea59854e200fa57e21ea318fa8b4e3073e..662a7a7d13d6e5c804291179d1075a822e394035 100644 (file)
@@ -1,19 +1,20 @@
-/*
-* Licensed to the Apache Software Foundation (ASF) under one or more
-* contributor license agreements.  See the NOTICE file distributed with
-* this work for additional information regarding copyright ownership.
-* The ASF licenses this file to You under the Apache License, Version 2.0
-* (the "License"); you may not use this file except in compliance with
-* the License.  You may obtain a copy of the License at
-*
-*     http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
+/* ====================================================================
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+==================================================================== */
+
 package org.apache.poi.ddf;
 
 import org.apache.poi.util.HexDump;
@@ -30,11 +31,8 @@ import java.util.zip.InflaterInputStream;
 
 /**
  * @author Daniel Noll
- * @version $Id$
  */
-public class EscherMetafileBlip
-        extends EscherBlipRecord
-{
+public final class EscherMetafileBlip extends EscherBlipRecord {
     private static final POILogger log = POILogFactory.getLogger(EscherMetafileBlip.class);
 
     public static final short RECORD_ID_EMF = (short) 0xF018 + 2;
@@ -68,16 +66,7 @@ public class EscherMetafileBlip
 
     private byte[] raw_pictureData;
 
-    /**
-     * This method deserializes the record from a byte array.
-     *
-     * @param data          The byte array containing the escher record information
-     * @param offset        The starting offset into <code>data</code>.
-     * @param recordFactory May be null since this is not a container record.
-     * @return The number of bytes read from the byte array.
-     */
-    public int fillFields( byte[] data, int offset, EscherRecordFactory recordFactory )
-    {
+    public int fillFields(byte[] data, int offset, EscherRecordFactory recordFactory) {
         int bytesAfterHeader = readHeader( data, offset );
         int pos = offset + HEADER_SIZE;
 
@@ -105,31 +94,16 @@ public class EscherMetafileBlip
 
         // 0 means DEFLATE compression
         // 0xFE means no compression
-        if (field_6_fCompression == 0)
-        {
+        if (field_6_fCompression == 0) {
             field_pictureData = inflatePictureData(raw_pictureData);
-        }
-        else
-        {
+        } else {
             field_pictureData = raw_pictureData;
         }
 
         return bytesAfterHeader + HEADER_SIZE;
     }
 
-    /**
-     * Serializes the record to an existing byte array.
-     *
-     * @param offset    the offset within the byte array
-     * @param data      the data array to serialize to
-     * @param listener  a listener for begin and end serialization events.  This
-     *                  is useful because the serialization is
-     *                  hierarchical/recursive and sometimes you need to be able
-     *                  break into that.
-     * @return the number of bytes written.
-     */
-    public int serialize( int offset, byte[] data, EscherSerializationListener listener )
-    {
+    public int serialize(int offset, byte[] data, EscherSerializationListener listener) {
         listener.beforeRecordSerialize(offset, getRecordId(), this);
 
         int pos = offset;
@@ -138,7 +112,7 @@ public class EscherMetafileBlip
         LittleEndian.putInt( data, pos, getRecordSize() - HEADER_SIZE ); pos += 4;
 
         System.arraycopy( field_1_UID, 0, data, pos, field_1_UID.length ); pos += field_1_UID.length;
-        if((getOptions() ^ getSignature()) == 0x10){
+        if ((getOptions() ^ getSignature()) == 0x10) {
             System.arraycopy( field_2_UID, 0, data, pos, field_2_UID.length ); pos += field_2_UID.length;
         }
         LittleEndian.putInt( data, pos, field_2_cb ); pos += 4;
@@ -164,35 +138,24 @@ public class EscherMetafileBlip
      * @param data the deflated picture data.
      * @return the inflated picture data.
      */
-    private static byte[] inflatePictureData(byte[] data)
-    {
-        try
-        {
+    private static byte[] inflatePictureData(byte[] data) {
+        try {
             InflaterInputStream in = new InflaterInputStream(
                 new ByteArrayInputStream( data ) );
             ByteArrayOutputStream out = new ByteArrayOutputStream();
             byte[] buf = new byte[4096];
             int readBytes;
-            while ((readBytes = in.read(buf)) > 0)
-            {
+            while ((readBytes = in.read(buf)) > 0) {
                 out.write(buf, 0, readBytes);
             }
             return out.toByteArray();
-        }
-        catch ( IOException e )
-        {
+        } catch (IOException e) {
             log.log(POILogger.WARN, "Possibly corrupt compression or non-compressed data", e);
             return data;
         }
     }
 
-    /**
-     * Returns the number of bytes that are required to serialize this record.
-     *
-     * @return Number of bytes
-     */
-    public int getRecordSize()
-    {
+    public int getRecordSize() {
         int size = 8 + 50 + raw_pictureData.length;
         if((getOptions() ^ getSignature()) == 0x10){
             size += field_2_UID.length;
@@ -200,14 +163,12 @@ public class EscherMetafileBlip
         return size;
     }
 
-    public byte[] getUID()
-    {
+    public byte[] getUID() {
         return field_1_UID;
     }
 
-    public void setUID( byte[] field_1_UID )
-    {
-        this.field_1_UID = field_1_UID;
+    public void setUID(byte[] uid) {
+        field_1_UID = uid;
     }
 
     public byte[] getPrimaryUID()
@@ -215,97 +176,73 @@ public class EscherMetafileBlip
         return field_2_UID;
     }
 
-    public void setPrimaryUID( byte[] field_2_UID )
-    {
-        this.field_2_UID = field_2_UID;
+    public void setPrimaryUID(byte[] primaryUID) {
+        field_2_UID = primaryUID;
     }
 
-    public int getUncompressedSize()
-    {
+    public int getUncompressedSize() {
         return field_2_cb;
     }
 
-    public void setUncompressedSize(int uncompressedSize)
-    {
+    public void setUncompressedSize(int uncompressedSize) {
         field_2_cb = uncompressedSize;
     }
 
-    public Rectangle getBounds()
-    {
+    public Rectangle getBounds() {
         return new Rectangle(field_3_rcBounds_x1,
                              field_3_rcBounds_y1,
                              field_3_rcBounds_x2 - field_3_rcBounds_x1,
                              field_3_rcBounds_y2 - field_3_rcBounds_y1);
     }
 
-    public void setBounds(Rectangle bounds)
-    {
+    public void setBounds(Rectangle bounds) {
         field_3_rcBounds_x1 = bounds.x;
         field_3_rcBounds_y1 = bounds.y;
         field_3_rcBounds_x2 = bounds.x + bounds.width;
         field_3_rcBounds_y2 = bounds.y + bounds.height;
     }
 
-    public Dimension getSizeEMU()
-    {
+    public Dimension getSizeEMU() {
         return new Dimension(field_4_ptSize_w, field_4_ptSize_h);
     }
 
-    public void setSizeEMU(Dimension sizeEMU)
-    {
+    public void setSizeEMU(Dimension sizeEMU) {
         field_4_ptSize_w = sizeEMU.width;
         field_4_ptSize_h = sizeEMU.height;
     }
 
-    public int getCompressedSize()
-    {
+    public int getCompressedSize() {
         return field_5_cbSave;
     }
 
-    public void setCompressedSize(int compressedSize)
-    {
+    public void setCompressedSize(int compressedSize) {
         field_5_cbSave = compressedSize;
     }
 
-    public boolean isCompressed()
-    {
+    public boolean isCompressed() {
         return (field_6_fCompression == 0);
     }
 
-    public void setCompressed(boolean compressed)
-    {
+    public void setCompressed(boolean compressed) {
         field_6_fCompression = compressed ? 0 : (byte)0xFE;
     }
 
     // filtering is always 254 according to available docs, so no point giving it a setter method.
 
-    public String toString()
-    {
-        String nl = System.getProperty( "line.separator" );
-
-        String extraData;
-        ByteArrayOutputStream b = new ByteArrayOutputStream();
-        try
-        {
-            HexDump.dump( this.field_pictureData, 0, b, 0 );
-            extraData = b.toString();
-        }
-        catch ( Exception e )
-        {
-            extraData = e.toString();
-        }
-        return getClass().getName() + ":" + nl +
-                "  RecordId: 0x" + HexDump.toHex( getRecordId() ) + nl +
-                "  Options: 0x" + HexDump.toHex( getOptions() ) + nl +
-                "  UID: 0x" + HexDump.toHex( field_1_UID ) + nl +
-                (field_2_UID == null ? "" : ("  UID2: 0x" + HexDump.toHex( field_2_UID ) + nl)) +
-                "  Uncompressed Size: " + HexDump.toHex( field_2_cb ) + nl +
-                "  Bounds: " + getBounds() + nl +
-                "  Size in EMU: " + getSizeEMU() + nl +
-                "  Compressed Size: " + HexDump.toHex( field_5_cbSave ) + nl +
-                "  Compression: " + HexDump.toHex( field_6_fCompression ) + nl +
-                "  Filter: " + HexDump.toHex( field_7_fFilter ) + nl +
-                "  Extra Data:" + nl + extraData;
+    public String toString() {
+        String extraData = HexDump.toHex(field_pictureData, 32);
+        return getClass().getName() + ":" + '\n' +
+                "  RecordId: 0x" + HexDump.toHex( getRecordId() ) + '\n' +
+                "  Options: 0x" + HexDump.toHex( getOptions() ) + '\n' +
+                "  UID: 0x" + HexDump.toHex( field_1_UID ) + '\n' +
+                (field_2_UID == null ? "" : ("  UID2: 0x" + HexDump.toHex( field_2_UID ) + '\n')) +
+                "  Uncompressed Size: " + HexDump.toHex( field_2_cb ) + '\n' +
+                "  Bounds: " + getBounds() + '\n' +
+                "  Size in EMU: " + getSizeEMU() + '\n' +
+                "  Compressed Size: " + HexDump.toHex( field_5_cbSave ) + '\n' +
+                "  Compression: " + HexDump.toHex( field_6_fCompression ) + '\n' +
+                "  Filter: " + HexDump.toHex( field_7_fFilter ) + '\n' +
+                "  Extra Data:" + '\n' + extraData;
     }
 
     /**
@@ -313,14 +250,13 @@ public class EscherMetafileBlip
      *
      * @return the blip signature
      */
-    public short getSignature(){
-        short sig = 0;
-        switch(getRecordId()){
-            case RECORD_ID_EMF: sig = SIGNATURE_EMF; break;
-            case RECORD_ID_WMF: sig = SIGNATURE_WMF; break;
-            case RECORD_ID_PICT: sig = SIGNATURE_PICT; break;
-            default: log.log(POILogger.WARN, "Unknown metafile: " + getRecordId()); break;
+    public short getSignature() {
+        switch (getRecordId()) {
+            case RECORD_ID_EMF:  return SIGNATURE_EMF;
+            case RECORD_ID_WMF:  return SIGNATURE_WMF;
+            case RECORD_ID_PICT: return  SIGNATURE_PICT;
         }
-        return sig;
+        log.log(POILogger.WARN, "Unknown metafile: " + getRecordId());
+        return 0;
     }
 }
index d7de48edafc4db8f4772a5b023421f68d083200a..157375a4ea598fa7a9ec43a3bd6e801152a03ea3 100644 (file)
@@ -15,7 +15,7 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 ==================================================================== */
-        
+
 package org.apache.poi.ddf;
 
 import java.util.ArrayList;
@@ -42,16 +42,7 @@ public class EscherOptRecord
 
     private List properties = new ArrayList();
 
-    /**
-     * This method deserializes the record from a byte array.
-     *
-     * @param data          The byte array containing the escher record information
-     * @param offset        The starting offset into <code>data</code>.
-     * @param recordFactory May be null since this is not a container record.
-     * @return The number of bytes read from the byte array.
-     */
-    public int fillFields( byte[] data, int offset, EscherRecordFactory recordFactory )
-    {
+    public int fillFields(byte[] data, int offset, EscherRecordFactory recordFactory) {
         int bytesRemaining = readHeader( data, offset );
         int pos = offset + 8;
 
@@ -60,16 +51,6 @@ public class EscherOptRecord
         return bytesRemaining + 8;
     }
 
-    /**
-     * This method serializes this escher record into a byte array.
-     *
-     * @param offset   The offset into <code>data</code> to start writing the record data to.
-     * @param data     The byte array to serialize to.
-     * @param listener A listener to retrieve start and end callbacks.  Use a <code>NullEscherSerailizationListener</code> to ignore these events.
-     *
-     * @return The number of bytes written.
-     * @see NullEscherSerializationListener
-     */
     public int serialize( int offset, byte[] data, EscherSerializationListener listener )
     {
         listener.beforeRecordSerialize( offset, getRecordId(), this );
@@ -92,11 +73,6 @@ public class EscherOptRecord
         return pos - offset;
     }
 
-    /**
-     * Returns the number of bytes that are required to serialize this record.
-     *
-     * @return Number of bytes
-     */
     public int getRecordSize()
     {
         return 8 + getPropertiesSize();
@@ -111,11 +87,7 @@ public class EscherOptRecord
         return super.getOptions();
     }
 
-    /**
-     * The short name for this record
-     */
-    public String getRecordName()
-    {
+    public String getRecordName() {
         return "Opt";
     }
 
index 8ab6d8c5c16ea8dc61859b8b65ab740db063a95f..31f36c3ebcdafbb7b26e2fbaab91446564ca8941 100644 (file)
@@ -1,19 +1,20 @@
-/*
-* Licensed to the Apache Software Foundation (ASF) under one or more
-* contributor license agreements.  See the NOTICE file distributed with
-* this work for additional information regarding copyright ownership.
-* The ASF licenses this file to You under the Apache License, Version 2.0
-* (the "License"); you may not use this file except in compliance with
-* the License.  You may obtain a copy of the License at
-*
-*     http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
+/* ====================================================================
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+==================================================================== */
+
 package org.apache.poi.ddf;
 
 import org.apache.poi.util.HexDump;
@@ -30,11 +31,8 @@ import java.util.zip.InflaterInputStream;
 
 /**
  * @author Daniel Noll
- * @version $Id$
  */
-public class EscherPictBlip
-        extends EscherBlipRecord
-{
+public final class EscherPictBlip extends EscherBlipRecord {
     private static final POILogger log = POILogFactory.getLogger(EscherPictBlip.class);
 
     public static final short RECORD_ID_EMF = (short) 0xF018 + 2;
@@ -57,17 +55,8 @@ public class EscherPictBlip
 
     private byte[] raw_pictureData;
 
-    /**
-     * This method deserializes the record from a byte array.
-     *
-     * @param data          The byte array containing the escher record information
-     * @param offset        The starting offset into <code>data</code>.
-     * @param recordFactory May be null since this is not a container record.
-     * @return The number of bytes read from the byte array.
-     */
-    public int fillFields( byte[] data, int offset, EscherRecordFactory recordFactory )
-    {
-        int bytesAfterHeader = readHeader( data, offset );
+    public int fillFields(byte[] data, int offset, EscherRecordFactory recordFactory) {
+        int bytesAfterHeader = readHeader(data, offset);
         int pos = offset + HEADER_SIZE;
 
         field_1_UID = new byte[16];
@@ -100,19 +89,7 @@ public class EscherPictBlip
         return bytesAfterHeader + HEADER_SIZE;
     }
 
-    /**
-     * Serializes the record to an existing byte array.
-     *
-     * @param offset    the offset within the byte array
-     * @param data      the data array to serialize to
-     * @param listener  a listener for begin and end serialization events.  This
-     *                  is useful because the serialization is
-     *                  hierarchical/recursive and sometimes you need to be able
-     *                  break into that.
-     * @return the number of bytes written.
-     */
-    public int serialize( int offset, byte[] data, EscherSerializationListener listener )
-    {
+    public int serialize(int offset, byte[] data, EscherSerializationListener listener) {
         listener.beforeRecordSerialize(offset, getRecordId(), this);
 
         int pos = offset;
@@ -144,133 +121,95 @@ public class EscherPictBlip
      * @param data the deflated picture data.
      * @return the inflated picture data.
      */
-    private static byte[] inflatePictureData(byte[] data)
-    {
-        try
-        {
-            InflaterInputStream in = new InflaterInputStream(
-                new ByteArrayInputStream( data ) );
+    private static byte[] inflatePictureData(byte[] data) {
+        try {
+            InflaterInputStream in = new InflaterInputStream(new ByteArrayInputStream(data));
             ByteArrayOutputStream out = new ByteArrayOutputStream();
             byte[] buf = new byte[4096];
             int readBytes;
-            while ((readBytes = in.read(buf)) > 0)
-            {
+            while ((readBytes = in.read(buf)) > 0) {
                 out.write(buf, 0, readBytes);
             }
             return out.toByteArray();
-        }
-        catch ( IOException e )
-        {
+        } catch (IOException e) {
             log.log(POILogger.INFO, "Possibly corrupt compression or non-compressed data", e);
             return data;
         }
     }
 
-    /**
-     * Returns the number of bytes that are required to serialize this record.
-     *
-     * @return Number of bytes
-     */
-    public int getRecordSize()
-    {
+    public int getRecordSize() {
         return 8 + 50 + raw_pictureData.length;
     }
 
-    public byte[] getUID()
-    {
+    public byte[] getUID() {
         return field_1_UID;
     }
 
-    public void setUID( byte[] field_1_UID )
-    {
-        this.field_1_UID = field_1_UID;
+    public void setUID(byte[] uid) {
+        this.field_1_UID = uid;
     }
 
-    public int getUncompressedSize()
-    {
+    public int getUncompressedSize() {
         return field_2_cb;
     }
 
-    public void setUncompressedSize(int uncompressedSize)
-    {
+    public void setUncompressedSize(int uncompressedSize) {
         field_2_cb = uncompressedSize;
     }
 
-    public Rectangle getBounds()
-    {
+    public Rectangle getBounds() {
         return new Rectangle(field_3_rcBounds_x1,
                              field_3_rcBounds_y1,
                              field_3_rcBounds_x2 - field_3_rcBounds_x1,
                              field_3_rcBounds_y2 - field_3_rcBounds_y1);
     }
 
-    public void setBounds(Rectangle bounds)
-    {
+    public void setBounds(Rectangle bounds) {
         field_3_rcBounds_x1 = bounds.x;
         field_3_rcBounds_y1 = bounds.y;
         field_3_rcBounds_x2 = bounds.x + bounds.width;
         field_3_rcBounds_y2 = bounds.y + bounds.height;
     }
 
-    public Dimension getSizeEMU()
-    {
+    public Dimension getSizeEMU() {
         return new Dimension(field_4_ptSize_w, field_4_ptSize_h);
     }
 
-    public void setSizeEMU(Dimension sizeEMU)
-    {
+    public void setSizeEMU(Dimension sizeEMU) {
         field_4_ptSize_w = sizeEMU.width;
         field_4_ptSize_h = sizeEMU.height;
     }
 
-    public int getCompressedSize()
-    {
+    public int getCompressedSize() {
         return field_5_cbSave;
     }
 
-    public void setCompressedSize(int compressedSize)
-    {
+    public void setCompressedSize(int compressedSize) {
         field_5_cbSave = compressedSize;
     }
 
-    public boolean isCompressed()
-    {
+    public boolean isCompressed() {
         return (field_6_fCompression == 0);
     }
 
-    public void setCompressed(boolean compressed)
-    {
+    public void setCompressed(boolean compressed) {
         field_6_fCompression = compressed ? 0 : (byte)0xFE;
     }
 
     // filtering is always 254 according to available docs, so no point giving it a setter method.
 
-    public String toString()
-    {
-        String nl = System.getProperty( "line.separator" );
-
-        String extraData;
-        ByteArrayOutputStream b = new ByteArrayOutputStream();
-        try
-        {
-            HexDump.dump( this.field_pictureData, 0, b, 0 );
-            extraData = b.toString();
-        }
-        catch ( Exception e )
-        {
-            extraData = e.toString();
-        }
-        return getClass().getName() + ":" + nl +
-                "  RecordId: 0x" + HexDump.toHex( getRecordId() ) + nl +
-                "  Options: 0x" + HexDump.toHex( getOptions() ) + nl +
-                "  UID: 0x" + HexDump.toHex( field_1_UID ) + nl +
-                "  Uncompressed Size: " + HexDump.toHex( field_2_cb ) + nl +
-                "  Bounds: " + getBounds() + nl +
-                "  Size in EMU: " + getSizeEMU() + nl +
-                "  Compressed Size: " + HexDump.toHex( field_5_cbSave ) + nl +
-                "  Compression: " + HexDump.toHex( field_6_fCompression ) + nl +
-                "  Filter: " + HexDump.toHex( field_7_fFilter ) + nl +
-                "  Extra Data:" + nl + extraData;
+    public String toString() {
+        String extraData = HexDump.toHex(field_pictureData, 32);
+        return getClass().getName() + ":" + '\n' +
+                "  RecordId: 0x" + HexDump.toHex( getRecordId() ) + '\n' +
+                "  Options: 0x" + HexDump.toHex( getOptions() ) + '\n' +
+                "  UID: 0x" + HexDump.toHex( field_1_UID ) + '\n' +
+                "  Uncompressed Size: " + HexDump.toHex( field_2_cb ) + '\n' +
+                "  Bounds: " + getBounds() + '\n' +
+                "  Size in EMU: " + getSizeEMU() + '\n' +
+                "  Compressed Size: " + HexDump.toHex( field_5_cbSave ) + '\n' +
+                "  Compression: " + HexDump.toHex( field_6_fCompression ) + '\n' +
+                "  Filter: " + HexDump.toHex( field_7_fFilter ) + '\n' +
+                "  Extra Data:" + '\n' + extraData;
     }
-
 }
index 6dac0215a53115cbe0dd6427d22882f17dd51496..7bfdce65fc2805bdf2739527ef86432273122aa1 100644 (file)
@@ -15,7 +15,7 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 ==================================================================== */
-        
+
 package org.apache.poi.ddf;
 
 import java.util.HashMap;
index 5e7bb397a24145c73ab457e8977c0ef5ed0e36fb..faa2cc44a11f31223ca1b3d69d665f3944d07462 100644 (file)
@@ -1,4 +1,3 @@
-
 /* ====================================================================
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
@@ -15,7 +14,7 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 ==================================================================== */
-        
+
 package org.apache.poi.ddf;
 
 /**
@@ -25,61 +24,52 @@ package org.apache.poi.ddf;
  *
  * @author Glen Stampoultzis (glens at apache.org)
  */
-abstract public class EscherProperty
-{
-    protected short  id;
+public abstract class EscherProperty {
+    private short  _id;
 
     /**
      * The id is distinct from the actual property number.  The id includes the property number the blip id
      * flag and an indicator whether the property is complex or not.
      */
-    public EscherProperty( short id )
-    {
-        this.id   = id;
+    public EscherProperty(short id) {
+        _id   = id;
     }
 
     /**
      * Constructs a new escher property.  The three parameters are combined to form a property
      * id.
      */
-    public EscherProperty( short propertyNumber, boolean isComplex, boolean isBlipId )
-    {
-        this.id   = (short)(propertyNumber +
+    public EscherProperty(short propertyNumber, boolean isComplex, boolean isBlipId) {
+        _id   = (short)(propertyNumber +
                 (isComplex ? 0x8000 : 0x0) +
                 (isBlipId ? 0x4000 : 0x0));
     }
 
-    public short getId()
-    {
-        return id;
+    public short getId() {
+        return _id;
     }
 
-    public short getPropertyNumber()
-    {
-        return (short) ( id & (short) 0x3FFF );
+    public short getPropertyNumber() {
+        return (short) (_id & (short) 0x3FFF);
     }
 
-    public boolean isComplex()
-    {
-        return ( id & (short) 0x8000 ) != 0;
+    public boolean isComplex() {
+        return (_id & (short) 0x8000) != 0;
     }
 
-    public boolean isBlipId()
-    {
-        return ( id & (short) 0x4000 ) != 0;
+    public boolean isBlipId() {
+        return (_id & (short) 0x4000) != 0;
     }
 
-    public String getName()
-    {
-        return EscherProperties.getPropertyName(id);
+    public String getName() {
+        return EscherProperties.getPropertyName(_id);
     }
 
     /**
      * Most properties are just 6 bytes in length.  Override this if we're
      * dealing with complex properties.
      */
-    public int getPropertySize()
-    {
+    public int getPropertySize() {
         return 6;
     }
 
index 5bf1f4d2ec3ad5b2532a0821d9b98eaab61c59eb..3dcce79b86f0000a0edc8fb4e8516813eac05c39 100644 (file)
@@ -1,4 +1,3 @@
-
 /* ====================================================================
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
@@ -15,7 +14,7 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 ==================================================================== */
-        
+
 package org.apache.poi.ddf;
 
 import org.apache.poi.util.LittleEndian;
@@ -29,8 +28,7 @@ import java.util.List;
  *
  * @author Glen Stampoultzis
  */
-public class EscherPropertyFactory
-{
+public final class EscherPropertyFactory {
     /**
      * Create new properties from a byte array.
      *
@@ -38,15 +36,13 @@ public class EscherPropertyFactory
      * @param offset            The starting offset into the byte array
      * @return                  The new properties
      */
-    public List createProperties( byte[] data, int offset, short numProperties )
-    {
-        List results = new ArrayList();
+    public List<EscherProperty> createProperties(byte[] data, int offset, short numProperties) {
+        List<EscherProperty> results = new ArrayList<EscherProperty>();
 
         int pos = offset;
 
 //        while ( bytesRemaining >= 6 )
-        for (int i = 0; i < numProperties; i++)
-        {
+        for (int i = 0; i < numProperties; i++) {
             short propId;
             int propData;
             propId = LittleEndian.getShort( data, pos );
@@ -55,7 +51,7 @@ public class EscherPropertyFactory
             boolean isComplex = ( propId & (short) 0x8000 ) != 0;
             boolean isBlipId = ( propId & (short) 0x4000 ) != 0;
 
-            byte propertyType = EscherProperties.getPropertyType( (short) propNumber );
+            byte propertyType = EscherProperties.getPropertyType(propNumber);
             if ( propertyType == EscherPropertyMetaData.TYPE_BOOLEAN )
                 results.add( new EscherBoolProperty( propId, propData ) );
             else if ( propertyType == EscherPropertyMetaData.TYPE_RGB )
@@ -72,7 +68,6 @@ public class EscherPropertyFactory
                         results.add( new EscherArrayProperty( propId, new byte[propData]) );
                     else
                         results.add( new EscherComplexProperty( propId, new byte[propData]) );
-
                 }
             }
             pos += 6;
@@ -80,26 +75,18 @@ public class EscherPropertyFactory
         }
 
         // Get complex data
-        for ( Iterator iterator = results.iterator(); iterator.hasNext(); )
-        {
-            EscherProperty p = (EscherProperty) iterator.next();
-            if (p instanceof EscherComplexProperty)
-            {
-                if (p instanceof EscherArrayProperty)
-                {
+        for (Iterator<EscherProperty> iterator = results.iterator(); iterator.hasNext();) {
+            EscherProperty p = iterator.next();
+            if (p instanceof EscherComplexProperty) {
+                if (p instanceof EscherArrayProperty) {
                     pos += ((EscherArrayProperty)p).setArrayData(data, pos);
-                }
-                else
-                {
+                } else {
                     byte[] complexData = ((EscherComplexProperty)p).getComplexData();
                     System.arraycopy(data, pos, complexData, 0, complexData.length);
                     pos += complexData.length;
                 }
             }
         }
-
         return results;
     }
-
-
 }
index 2102a6796e816d9c4c5419b377a6b4df6a85b3d6..0c3105f57dae19520ab2e79f089b1c247f4ff6c6 100644 (file)
@@ -15,7 +15,7 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 ==================================================================== */
-        
+
 package org.apache.poi.ddf;
 
 /**
index 13603db97268a848d2bcaf969463aebfd3e3799b..2e1ef02618b6dab97902e54975952a8da93ded04 100644 (file)
@@ -1,4 +1,3 @@
-
 /* ====================================================================
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
@@ -15,7 +14,7 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 ==================================================================== */
-        
+
 package org.apache.poi.ddf;
 
 /**
index b83e2b5892425bdde78f18fc7fcfd5d1aa9111e6..e1e140a93db6f07f831a99a91ac3f3c06537925f 100644 (file)
@@ -15,7 +15,7 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 ==================================================================== */
-        
+
 package org.apache.poi.ddf;
 
 import org.apache.poi.util.LittleEndian;
index cd52b635dd564f57d2ef6f0f35bdb1c4691a4337..faf9c74613e3485a55e7220dbd23d151b922946a 100644 (file)
@@ -1,4 +1,3 @@
-
 /* ====================================================================
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
@@ -15,7 +14,7 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 ==================================================================== */
-        
+
 package org.apache.poi.ddf;
 
 /**
@@ -24,8 +23,7 @@ package org.apache.poi.ddf;
  *
  * @author Glen Stampoultzis (glens at apache.org)
  */
-public interface EscherRecordFactory
-{
+public interface EscherRecordFactory {
     /**
      * Create a new escher record from the data provided.  Does not attempt
      * to fill the contents of the record however.
index ce7524499b16fbf0759ba6be1a6af00771c9a61d..3eeaaccd18f806e475f1bfceac99fded71c22a2b 100644 (file)
@@ -1,4 +1,3 @@
-
 /* ====================================================================
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
@@ -15,7 +14,7 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 ==================================================================== */
-        
+
 package org.apache.poi.ddf;
 
 /**
index 0df574904db361d47703c3174d87f3898a1e47e3..f495f2639ddc3e0e2c960a9e35e060f237c24719 100644 (file)
@@ -1,4 +1,3 @@
-
 /* ====================================================================
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
@@ -15,7 +14,7 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 ==================================================================== */
-        
+
 package org.apache.poi.ddf;
 
 /**
@@ -23,9 +22,7 @@ package org.apache.poi.ddf;
  *
  * @author Glen Stampoultzis (glens at apache.org)
  */
-public class EscherShapePathProperty
-        extends EscherSimpleProperty
-{
+public class EscherShapePathProperty extends EscherSimpleProperty {
 
     public static final int LINE_OF_STRAIGHT_SEGMENTS = 0;
     public static final int CLOSED_POLYGON = 1;
@@ -37,7 +34,4 @@ public class EscherShapePathProperty
     {
         super( propertyNumber, false, false, shapePath );
     }
-
-
-
 }
index 0539b5b0b3b8727f9a715e700681dbb69909f75f..a1adae84d608e7a362023c4c24418e77e354c3f4 100644 (file)
@@ -1,4 +1,3 @@
-
 /* ====================================================================
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
@@ -15,7 +14,7 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 ==================================================================== */
-        
+
 package org.apache.poi.ddf;
 
 import org.apache.poi.util.LittleEndian;
index 54359ebcf7fe833ddd79f48a3b7de3a948c4b995..69bde52c15009cafff65fca20a42fb3f9fc3dfea 100644 (file)
@@ -1,4 +1,3 @@
-
 /* ====================================================================
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
@@ -15,7 +14,7 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 ==================================================================== */
-        
+
 package org.apache.poi.ddf;
 
 import org.apache.poi.util.HexDump;
@@ -49,16 +48,7 @@ public class EscherSpRecord
     private int field_1_shapeId;
     private int field_2_flags;
 
-    /**
-     * This method deserializes the record from a byte array.
-     *
-     * @param data          The byte array containing the escher record information
-     * @param offset        The starting offset into <code>data</code>.
-     * @param recordFactory May be null since this is not a container record.
-     * @return The number of bytes read from the byte array.
-     */
-    public int fillFields( byte[] data, int offset, EscherRecordFactory recordFactory )
-    {
+    public int fillFields(byte[] data, int offset, EscherRecordFactory recordFactory) {
         int bytesRemaining = readHeader( data, offset );
         int pos            = offset + 8;
         int size           = 0;
@@ -95,32 +85,20 @@ public class EscherSpRecord
         return 8 + 8;
     }
 
-    /**
-     * Returns the number of bytes that are required to serialize this record.
-     *
-     * @return Number of bytes
-     */
     public int getRecordSize()
     {
         return 8 + 8;
     }
 
-    /**
-     * @return  the 16 bit identifier for this record.
-     */
-    public short getRecordId()
-    {
+    public short getRecordId() {
         return RECORD_ID;
     }
 
-    /**
-     * The short name for this record
-     */
-    public String getRecordName()
-    {
+    public String getRecordName() {
         return "Sp";
     }
 
+
     /**
      * @return  the string representing this shape.
      */
index 4ff8eb4e7c298e546645c1738ae35c3d22a9e6e3..80594af5e004e1b5e08537d1a7f2b89c0ed107ca 100644 (file)
@@ -1,4 +1,3 @@
-
 /* ====================================================================
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
@@ -15,7 +14,7 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 ==================================================================== */
-        
+
 package org.apache.poi.ddf;
 
 import org.apache.poi.util.HexDump;
@@ -39,16 +38,7 @@ public class EscherSpgrRecord
     private int field_3_rectX2;
     private int field_4_rectY2;
 
-    /**
-     * This method deserializes the record from a byte array.
-     *
-     * @param data          The byte array containing the escher record information
-     * @param offset        The starting offset into <code>data</code>.
-     * @param recordFactory May be null since this is not a container record.
-     * @return The number of bytes read from the byte array.
-     */
-    public int fillFields( byte[] data, int offset, EscherRecordFactory recordFactory )
-    {
+    public int fillFields(byte[] data, int offset, EscherRecordFactory recordFactory) {
         int bytesRemaining = readHeader( data, offset );
         int pos            = offset + 8;
         int size           = 0;
@@ -63,16 +53,6 @@ public class EscherSpgrRecord
         return 8 + size + bytesRemaining;
     }
 
-    /**
-     * This method serializes this escher record into a byte array.
-     *
-     * @param offset   The offset into <code>data</code> to start writing the record data to.
-     * @param data     The byte array to serialize to.
-     * @param listener A listener to retrieve start and end callbacks.  Use a <code>NullEscherSerailizationListener</code> to ignore these events.
-     * @return The number of bytes written.
-     *
-     * @see NullEscherSerializationListener
-     */
     public int serialize( int offset, byte[] data, EscherSerializationListener listener )
     {
         listener.beforeRecordSerialize( offset, getRecordId(), this );
@@ -90,58 +70,30 @@ public class EscherSpgrRecord
         return 8 + 16;
     }
 
-    /**
-     * Returns the number of bytes that are required to serialize this record.
-     *
-     * @return Number of bytes
-     */
     public int getRecordSize()
     {
         return 8 + 16;
     }
 
-    /**
-     * The 16 bit identifier of this shape group record.
-     */
-    public short getRecordId()
-    {
+    public short getRecordId() {
         return RECORD_ID;
     }
 
-    /**
-     * The short name for this record
-     */
-    public String getRecordName()
-    {
+    public String getRecordName() {
         return "Spgr";
     }
 
     /**
      * @return  the string representation of this record.
      */
-    public String toString()
-    {
-        String nl = System.getProperty("line.separator");
-
-//        String extraData;
-//        ByteArrayOutputStream b = new ByteArrayOutputStream();
-//        try
-//        {
-//            HexDump.dump(this.remainingData, 0, b, 0);
-//            extraData = b.toString();
-//        }
-//        catch ( Exception e )
-//        {
-//            extraData = "error";
-//        }
-        return getClass().getName() + ":" + nl +
-                "  RecordId: 0x" + HexDump.toHex(RECORD_ID) + nl +
-                "  Options: 0x" + HexDump.toHex(getOptions()) + nl +
-                "  RectX: " + field_1_rectX1 + nl +
-                "  RectY: " + field_2_rectY1 + nl +
-                "  RectWidth: " + field_3_rectX2 + nl +
-                "  RectHeight: " + field_4_rectY2 + nl;
-
+    public String toString() {
+        return getClass().getName() + ":" + '\n' +
+                "  RecordId: 0x" + HexDump.toHex(RECORD_ID) + '\n' +
+                "  Options: 0x" + HexDump.toHex(getOptions()) + '\n' +
+                "  RectX: " + field_1_rectX1 + '\n' +
+                "  RectY: " + field_2_rectY1 + '\n' +
+                "  RectWidth: " + field_3_rectX2 + '\n' +
+                "  RectHeight: " + field_4_rectY2 + '\n';
     }
 
     /**
@@ -203,8 +155,7 @@ public class EscherSpgrRecord
     /**
      * The starting bottom-right coordinate of child records.
      */
-    public void setRectY2( int field_4_rectY2 )
-    {
-        this.field_4_rectY2 = field_4_rectY2;
+    public void setRectY2(int rectY2) {
+        this.field_4_rectY2 = rectY2;
     }
 }
index 5fc0f360351c233736dfc62c8bb80b51e5906775..f11c2251bf6132773c2f5d71a42aeace5d58d422 100644 (file)
@@ -1,4 +1,3 @@
-
 /* ====================================================================
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
@@ -15,7 +14,7 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 ==================================================================== */
-        
+
 package org.apache.poi.ddf;
 
 import org.apache.poi.util.HexDump;
@@ -39,16 +38,7 @@ public class EscherSplitMenuColorsRecord
     private int field_3_color3;
     private int field_4_color4;
 
-    /**
-     * This method deserializes the record from a byte array.
-     *
-     * @param data          The byte array containing the escher record information
-     * @param offset        The starting offset into <code>data</code>.
-     * @param recordFactory May be null since this is not a container record.
-     * @return The number of bytes read from the byte array.
-     */
-    public int fillFields( byte[] data, int offset, EscherRecordFactory recordFactory )
-    {
+    public int fillFields(byte[] data, int offset, EscherRecordFactory recordFactory) {
         int bytesRemaining = readHeader( data, offset );
         int pos            = offset + 8;
         int size           = 0;
@@ -62,16 +52,6 @@ public class EscherSplitMenuColorsRecord
         return 8 + size + bytesRemaining;
     }
 
-    /**
-     * This method serializes this escher record into a byte array.
-     *
-     * @param offset   The offset into <code>data</code> to start writing the record data to.
-     * @param data     The byte array to serialize to.
-     * @param listener A listener to retrieve start and end callbacks.  Use a <code>NullEscherSerailizationListener</code> to ignore these events.
-     * @return The number of bytes written.
-     *
-     * @see NullEscherSerializationListener
-     */
     public int serialize( int offset, byte[] data, EscherSerializationListener listener )
     {
 //        int field_2_numIdClusters = field_5_fileIdClusters.length + 1;
@@ -91,59 +71,31 @@ public class EscherSplitMenuColorsRecord
         return getRecordSize();
     }
 
-    /**
-     * Returns the number of bytes that are required to serialize this record.
-     *
-     * @return Number of bytes
-     */
     public int getRecordSize()
     {
         return 8 + 4 * 4;
     }
 
-    /**
-     * @return  the 16 bit identifer for this record.
-     */
-    public short getRecordId()
-    {
+    public short getRecordId() {
         return RECORD_ID;
     }
 
-    /**
-     * The short name for this record
-     */
-    public String getRecordName()
-    {
+    public String getRecordName() {
         return "SplitMenuColors";
     }
 
     /**
      * @return  a string representation of this record.
      */
-    public String toString()
-    {
-        String nl = System.getProperty("line.separator");
-
-//        String extraData;
-//        ByteArrayOutputStream b = new ByteArrayOutputStream();
-//        try
-//        {
-//            HexDump.dump(this.remainingData, 0, b, 0);
-//            extraData = b.toString();
-//        }
-//        catch ( Exception e )
-//        {
-//            extraData = "error";
-//        }
-        return getClass().getName() + ":" + nl +
-                "  RecordId: 0x" + HexDump.toHex(RECORD_ID) + nl +
-                "  Options: 0x" + HexDump.toHex(getOptions()) + nl +
-                "  Color1: 0x" + HexDump.toHex(field_1_color1) + nl +
-                "  Color2: 0x" + HexDump.toHex(field_2_color2) + nl +
-                "  Color3: 0x" + HexDump.toHex(field_3_color3) + nl +
-                "  Color4: 0x" + HexDump.toHex(field_4_color4) + nl +
+    public String toString() {
+        return getClass().getName() + ":" + '\n' +
+                "  RecordId: 0x" + HexDump.toHex(RECORD_ID) + '\n' +
+                "  Options: 0x" + HexDump.toHex(getOptions()) + '\n' +
+                "  Color1: 0x" + HexDump.toHex(field_1_color1) + '\n' +
+                "  Color2: 0x" + HexDump.toHex(field_2_color2) + '\n' +
+                "  Color3: 0x" + HexDump.toHex(field_3_color3) + '\n' +
+                "  Color4: 0x" + HexDump.toHex(field_4_color4) + '\n' +
                 "";
-
     }
 
     public int getColor1()
index 1a14dbb065fdaa4be1a3437b4f8b345c01edf1d9..ab1ab0bfc3b9829f53c6d0914549236a9a0dfc63 100644 (file)
@@ -1,4 +1,3 @@
-
 /* ====================================================================
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
@@ -15,7 +14,7 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 ==================================================================== */
-        
+
 package org.apache.poi.ddf;
 
 import org.apache.poi.util.HexDump;
@@ -24,7 +23,7 @@ import org.apache.poi.util.RecordFormatException;
 
 /**
  * Holds data from the parent application. Most commonly used to store
- *  text in the format of the parent application, rather than in 
+ *  text in the format of the parent application, rather than in
  *  Escher format. We don't attempt to understand the contents, since
  *  they will be in the parent's format, not Escher format.
  *
@@ -45,16 +44,7 @@ public class EscherTextboxRecord extends EscherRecord
     {
     }
 
-    /**
-     * This method deserializes the record from a byte array.
-     *
-     * @param data          The byte array containing the escher record information
-     * @param offset        The starting offset into <code>data</code>.
-     * @param recordFactory May be null since this is not a container record.
-     * @return The number of bytes read from the byte array.
-     */
-    public int fillFields( byte[] data, int offset, EscherRecordFactory recordFactory )
-    {
+    public int fillFields(byte[] data, int offset, EscherRecordFactory recordFactory) {
         int bytesRemaining = readHeader( data, offset );
 
         // Save the data, ready for the calling code to do something
@@ -64,12 +54,6 @@ public class EscherTextboxRecord extends EscherRecord
         return bytesRemaining + 8;
     }
 
-    /**
-     * Writes this record and any contained records to the supplied byte
-     * array.
-     *
-     * @return  the number of bytes written.
-     */
     public int serialize( int offset, byte[] data, EscherSerializationListener listener )
     {
         listener.beforeRecordSerialize( offset, getRecordId(), this );
@@ -113,12 +97,6 @@ public class EscherTextboxRecord extends EscherRecord
         setData(b,0,b.length);
     }
 
-
-    /**
-     * Returns the number of bytes that are required to serialize this record.
-     *
-     * @return Number of bytes
-     */
     public int getRecordSize()
     {
         return 8 + thedata.length;
@@ -130,11 +108,7 @@ public class EscherTextboxRecord extends EscherRecord
         return super.clone();
     }
 
-    /**
-     * The short name for this record
-     */
-    public String getRecordName()
-    {
+    public String getRecordName() {
         return "ClientTextbox";
     }
 
index 7fbefd07179cf1990462c5e0aab025993294e711..86155e4894ce93ce7eb4d32ccda921f9146ed062 100644 (file)
@@ -1,4 +1,3 @@
-
 /* ====================================================================
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
@@ -15,7 +14,7 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 ==================================================================== */
-        
+
 package org.apache.poi.ddf;
 
 /**
@@ -23,16 +22,12 @@ package org.apache.poi.ddf;
  *
  * @author Glen Stampoultzis (glens at apache.org)
  */
-public class NullEscherSerializationListener implements EscherSerializationListener
-{
-    public void beforeRecordSerialize( int offset, short recordId, EscherRecord record )
-    {
+public class NullEscherSerializationListener implements EscherSerializationListener {
+    public void beforeRecordSerialize(int offset, short recordId, EscherRecord record) {
         // do nothing
     }
 
-    public void afterRecordSerialize( int offset, short recordId, int size, EscherRecord record )
-    {
+    public void afterRecordSerialize(int offset, short recordId, int size, EscherRecord record) {
         // do nothing
     }
-
 }
index cc7ee0457bc1aca80ac4f04ffd4ee5213275790c..5ade6a7c741907597dd27eb9fe1b90d1c0bac52e 100644 (file)
@@ -1,4 +1,3 @@
-
 /* ====================================================================
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
    See the License for the specific language governing permissions and
    limitations under the License.
 ==================================================================== */
-        
+
 package org.apache.poi.ddf;
 
+import java.util.ArrayList;
+import java.util.List;
+
 import org.apache.poi.util.HexDump;
 import org.apache.poi.util.LittleEndian;
 
-import java.util.Iterator;
-import java.util.List;
-import java.util.ArrayList;
-
 /**
  * This record is used whenever a escher record is encountered that
  * we do not explicitly support.
  *
  * @author Glen Stampoultzis (glens at apache.org)
  */
-public class UnknownEscherRecord extends EscherRecord
-{
+public final class UnknownEscherRecord extends EscherRecord {
     private static final byte[] NO_BYTES = new byte[0];
 
     /** The data for this record not including the the 8 byte header */
     private byte[] thedata = NO_BYTES;
-    private List childRecords = new ArrayList();
+    private List<EscherRecord> _childRecords;
 
-    public UnknownEscherRecord()
-    {
+    public UnknownEscherRecord() {
+        _childRecords = new ArrayList<EscherRecord>();
     }
 
-    /**
-     * This method deserializes the record from a byte array.
-     *
-     * @param data          The byte array containing the escher record information
-     * @param offset        The starting offset into <code>data</code>.
-     * @param recordFactory May be null since this is not a container record.
-     * @return The number of bytes read from the byte array.
-     */
-    public int fillFields( byte[] data, int offset, EscherRecordFactory recordFactory )
-    {
+    public int fillFields(byte[] data, int offset, EscherRecordFactory recordFactory) {
         int bytesRemaining = readHeader( data, offset );
-        if ( isContainerRecord() )
-        {
+        if (isContainerRecord()) {
             int bytesWritten = 0;
             thedata = new byte[0];
             offset += 8;
@@ -71,38 +58,24 @@ public class UnknownEscherRecord extends EscherRecord
             }
             return bytesWritten;
         }
-        else
-        {
-            thedata = new byte[bytesRemaining];
-            System.arraycopy( data, offset + 8, thedata, 0, bytesRemaining );
-            return bytesRemaining + 8;
-        }
+        thedata = new byte[bytesRemaining];
+        System.arraycopy( data, offset + 8, thedata, 0, bytesRemaining );
+        return bytesRemaining + 8;
     }
 
-    /**
-     * Writes this record and any contained records to the supplied byte
-     * array.
-     *
-     * @return  the number of bytes written.
-     */
-    public int serialize( int offset, byte[] data, EscherSerializationListener listener )
-    {
+    public int serialize(int offset, byte[] data, EscherSerializationListener listener) {
         listener.beforeRecordSerialize( offset, getRecordId(), this );
 
         LittleEndian.putShort(data, offset, getOptions());
         LittleEndian.putShort(data, offset+2, getRecordId());
         int remainingBytes = thedata.length;
-        for ( Iterator iterator = getChildRecords().iterator(); iterator.hasNext(); )
-        {
-            EscherRecord r = (EscherRecord) iterator.next();
+        for (EscherRecord r : _childRecords) {
             remainingBytes += r.getRecordSize();
         }
         LittleEndian.putInt(data, offset+4, remainingBytes);
         System.arraycopy(thedata, 0, data, offset+8, thedata.length);
         int pos = offset+8+thedata.length;
-        for ( Iterator iterator = getChildRecords().iterator(); iterator.hasNext(); )
-        {
-            EscherRecord r = (EscherRecord) iterator.next();
+        for (EscherRecord r : _childRecords) {
             pos += r.serialize(pos, data, listener );
         }
 
@@ -110,90 +83,53 @@ public class UnknownEscherRecord extends EscherRecord
         return pos - offset;
     }
 
-    public byte[] getData()
-    {
+    public byte[] getData() {
         return thedata;
     }
 
-    /**
-     * Returns the number of bytes that are required to serialize this record.
-     *
-     * @return Number of bytes
-     */
-    public int getRecordSize()
-    {
+    public int getRecordSize() {
         return 8 + thedata.length;
     }
 
-    public List getChildRecords()
-    {
-        return childRecords;
+    public List<EscherRecord> getChildRecords() {
+        return _childRecords;
     }
 
-    public void setChildRecords( List childRecords )
-    {
-        this.childRecords = childRecords;
+    public void setChildRecords(List<EscherRecord> childRecords) {
+        _childRecords = childRecords;
     }
 
-    public Object clone()
-    {
+    public Object clone() {
         // shallow clone
         return super.clone();
     }
 
-    /**
-     * The short name for this record
-     */
-    public String getRecordName()
-    {
+    public String getRecordName() {
         return "Unknown 0x" + HexDump.toHex(getRecordId());
     }
 
-    public String toString()
-    {
-        String nl = System.getProperty( "line.separator" );
-
+    public String toString() {
         StringBuffer children = new StringBuffer();
-        if ( getChildRecords().size() > 0 )
-        {
-            children.append( "  children: " + nl );
-            for ( Iterator iterator = getChildRecords().iterator(); iterator.hasNext(); )
-            {
-                EscherRecord record = (EscherRecord) iterator.next();
+        if (getChildRecords().size() > 0) {
+            children.append( "  children: " + '\n' );
+            for (EscherRecord record : _childRecords) {
                 children.append( record.toString() );
-                children.append( nl );
+                children.append( '\n' );
             }
         }
 
-        String theDumpHex = "";
-        try
-        {
-            if (thedata.length != 0)
-            {
-                theDumpHex = "  Extra Data("+thedata.length+"):" + nl;
-                theDumpHex += HexDump.dump(thedata, 0, 0);
-            }
-        }
-        catch ( Exception e )
-        {
-            theDumpHex = "Error!!";
-        }
+        String theDumpHex = HexDump.toHex(thedata, 32);
 
-        return getClass().getName() + ":" + nl +
-                "  isContainer: " + isContainerRecord() + nl +
-                "  options: 0x" + HexDump.toHex( getOptions() ) + nl +
-                "  recordId: 0x" + HexDump.toHex( getRecordId() ) + nl +
-                "  numchildren: " + getChildRecords().size() + nl +
+        return getClass().getName() + ":" + '\n' +
+                "  isContainer: " + isContainerRecord() + '\n' +
+                "  options: 0x" + HexDump.toHex( getOptions() ) + '\n' +
+                "  recordId: 0x" + HexDump.toHex( getRecordId() ) + '\n' +
+                "  numchildren: " + getChildRecords().size() + '\n' +
                 theDumpHex +
                 children.toString();
     }
 
-    public void addChildRecord( EscherRecord childRecord )
-    {
+    public void addChildRecord(EscherRecord childRecord) {
         getChildRecords().add( childRecord );
     }
-
 }
-
-
-