From 0d61fd5472832c5cdb2b09ba2d07ec0e64cd2cae Mon Sep 17 00:00:00 2001 From: Andreas Beeker Date: Mon, 6 Jun 2016 23:33:00 +0000 Subject: [PATCH] javadocs / java warnings (jdk8) fixes git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1747090 13f79535-47bb-0310-9956-ffa450edef68 --- .../org/apache/poi/POIOLE2TextExtractor.java | 6 +- src/java/org/apache/poi/POITextExtractor.java | 8 +- .../poi/ddf/AbstractEscherOptRecord.java | 19 +++- .../poi/ddf/DefaultEscherRecordFactory.java | 4 +- .../apache/poi/ddf/EscherArrayProperty.java | 11 ++- .../org/apache/poi/ddf/EscherBSERecord.java | 46 ++++++++- .../org/apache/poi/ddf/EscherBitmapBlip.java | 93 +++++++++++-------- .../org/apache/poi/ddf/EscherBlipRecord.java | 20 +++- .../apache/poi/ddf/EscherBoolProperty.java | 8 +- .../poi/ddf/EscherChildAnchorRecord.java | 23 ++++- .../poi/ddf/EscherClientAnchorRecord.java | 49 +++++++++- .../poi/ddf/EscherClientDataRecord.java | 12 ++- .../apache/poi/ddf/EscherComplexProperty.java | 9 ++ .../apache/poi/ddf/EscherContainerRecord.java | 39 +++++++- .../org/apache/poi/ddf/EscherDgRecord.java | 19 +++- .../org/apache/poi/ddf/EscherDggRecord.java | 60 +++++++++++- .../apache/poi/ddf/EscherMetafileBlip.java | 92 +++++++++++++++++- .../org/apache/poi/ddf/EscherOptRecord.java | 4 +- .../org/apache/poi/ddf/EscherPictBlip.java | 69 +++++++++++++- .../org/apache/poi/ddf/EscherRGBProperty.java | 15 ++- .../apache/poi/ddf/EscherSimpleProperty.java | 8 +- .../org/apache/poi/ddf/EscherSpRecord.java | 14 ++- .../org/apache/poi/ddf/EscherSpgrRecord.java | 38 ++++++-- .../poi/ddf/EscherSplitMenuColorsRecord.java | 79 +++++++++++----- .../poi/ddf/EscherTertiaryOptRecord.java | 3 +- .../apache/poi/ddf/EscherTextboxRecord.java | 19 ++++ .../ddf/NullEscherSerializationListener.java | 4 +- .../apache/poi/ddf/UnknownEscherRecord.java | 15 ++- 28 files changed, 663 insertions(+), 123 deletions(-) diff --git a/src/java/org/apache/poi/POIOLE2TextExtractor.java b/src/java/org/apache/poi/POIOLE2TextExtractor.java index 5dd1d755e3..33c7712cb2 100644 --- a/src/java/org/apache/poi/POIOLE2TextExtractor.java +++ b/src/java/org/apache/poi/POIOLE2TextExtractor.java @@ -27,6 +27,7 @@ import org.apache.poi.poifs.filesystem.DirectoryEntry; * You will typically find the implementation of * a given format's text extractor under * org.apache.poi.[format].extractor . + * * @see org.apache.poi.hssf.extractor.ExcelExtractor * @see org.apache.poi.hslf.extractor.PowerPointExtractor * @see org.apache.poi.hdgf.extractor.VisioTextExtractor @@ -49,6 +50,8 @@ public abstract class POIOLE2TextExtractor extends POITextExtractor { * Creates a new text extractor, using the same * document as another text extractor. Normally * only used by properties extractors. + * + * @param otherExtractor the extractor which document to be used */ protected POIOLE2TextExtractor(POIOLE2TextExtractor otherExtractor) { this.document = otherExtractor.document; @@ -79,7 +82,8 @@ public abstract class POIOLE2TextExtractor extends POITextExtractor { * * @return an instance of POIExtractor that can extract meta-data. */ - public POITextExtractor getMetadataTextExtractor() { + @Override + public POITextExtractor getMetadataTextExtractor() { return new HPSFPropertiesExtractor(this); } diff --git a/src/java/org/apache/poi/POITextExtractor.java b/src/java/org/apache/poi/POITextExtractor.java index 542b4d30da..83e26be942 100644 --- a/src/java/org/apache/poi/POITextExtractor.java +++ b/src/java/org/apache/poi/POITextExtractor.java @@ -25,6 +25,7 @@ import java.io.IOException; * You will typically find the implementation of * a given format's text extractor under * org.apache.poi.[format].extractor . + * * @see org.apache.poi.hssf.extractor.ExcelExtractor * @see org.apache.poi.hslf.extractor.PowerPointExtractor * @see org.apache.poi.hdgf.extractor.VisioTextExtractor @@ -46,11 +47,15 @@ public abstract class POITextExtractor implements Closeable { * Returns another text extractor, which is able to * output the textual content of the document * metadata / properties, such as author and title. + * + * @return the metadata and text extractor */ public abstract POITextExtractor getMetadataTextExtractor(); /** * Used to ensure file handle cleanup. + * + * @param fs filesystem to close */ public void setFilesystem(Closeable fs) { fsToClose = fs; @@ -63,7 +68,8 @@ public abstract class POITextExtractor implements Closeable { * * The Extractor cannot be used after close has been called. */ - public void close() throws IOException { + @Override + public void close() throws IOException { if(fsToClose != null) { fsToClose.close(); } diff --git a/src/java/org/apache/poi/ddf/AbstractEscherOptRecord.java b/src/java/org/apache/poi/ddf/AbstractEscherOptRecord.java index b97eeafda2..8969750f36 100644 --- a/src/java/org/apache/poi/ddf/AbstractEscherOptRecord.java +++ b/src/java/org/apache/poi/ddf/AbstractEscherOptRecord.java @@ -16,7 +16,11 @@ ==================================================================== */ package org.apache.poi.ddf; -import java.util.*; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.Iterator; +import java.util.List; import org.apache.poi.util.HexDump; import org.apache.poi.util.LittleEndian; @@ -24,9 +28,6 @@ import org.apache.poi.util.LittleEndian; /** * Common abstract class for {@link EscherOptRecord} and * {@link EscherTertiaryOptRecord} - * - * @author Sergey Vladimirov (vlsergey {at} gmail {dot} com) - * @author Glen Stampoultzis */ public abstract class AbstractEscherOptRecord extends EscherRecord { @@ -40,6 +41,7 @@ public abstract class AbstractEscherOptRecord extends EscherRecord properties.add( prop ); } + @Override public int fillFields( byte[] data, int offset, EscherRecordFactory recordFactory ) { @@ -54,6 +56,8 @@ public abstract class AbstractEscherOptRecord extends EscherRecord /** * The list of properties stored by this record. + * + * @return the list of properties */ public List getEscherProperties() { @@ -62,12 +66,16 @@ public abstract class AbstractEscherOptRecord extends EscherRecord /** * The list of properties stored by this record. + * + * @param index the ordinal index of the property + * @return the escher property */ public EscherProperty getEscherProperty( int index ) { return properties.get( index ); } + private int getPropertiesSize() { int totalSize = 0; @@ -99,6 +107,7 @@ public abstract class AbstractEscherOptRecord extends EscherRecord return null; } + @Override public int serialize( int offset, byte[] data, EscherSerializationListener listener ) { @@ -127,6 +136,7 @@ public abstract class AbstractEscherOptRecord extends EscherRecord { Collections.sort( properties, new Comparator() { + @Override public int compare( EscherProperty p1, EscherProperty p2 ) { short s1 = p1.getPropertyNumber(); @@ -166,6 +176,7 @@ public abstract class AbstractEscherOptRecord extends EscherRecord /** * Retrieve the string representation of this record. */ + @Override public String toString() { String nl = System.getProperty( "line.separator" ); diff --git a/src/java/org/apache/poi/ddf/DefaultEscherRecordFactory.java b/src/java/org/apache/poi/ddf/DefaultEscherRecordFactory.java index 05a3246de0..e99b887961 100644 --- a/src/java/org/apache/poi/ddf/DefaultEscherRecordFactory.java +++ b/src/java/org/apache/poi/ddf/DefaultEscherRecordFactory.java @@ -26,9 +26,6 @@ import org.apache.poi.util.LittleEndian; /** * Generates escher records when provided the byte array containing those records. * - * @author Glen Stampoultzis - * @author Nick Burch (nick at torchbox . com) - * * @see EscherRecordFactory */ public class DefaultEscherRecordFactory implements EscherRecordFactory { @@ -56,6 +53,7 @@ public class DefaultEscherRecordFactory implements EscherRecordFactory { * @param offset The starting offset into the byte array * @return The generated escher record */ + @Override public EscherRecord createRecord(byte[] data, int offset) { short options = LittleEndian.getShort( data, offset ); short recordId = LittleEndian.getShort( data, offset + 2 ); diff --git a/src/java/org/apache/poi/ddf/EscherArrayProperty.java b/src/java/org/apache/poi/ddf/EscherArrayProperty.java index bec5f24d00..ed3bd32989 100644 --- a/src/java/org/apache/poi/ddf/EscherArrayProperty.java +++ b/src/java/org/apache/poi/ddf/EscherArrayProperty.java @@ -26,8 +26,6 @@ import org.apache.poi.util.LittleEndian; /** * Escher array properties are the most wierd construction ever invented * with all sorts of special cases. I'm hopeful I've got them all. - * - * @author Glen Stampoultzis (glens at superlinksoftware.com) */ public final class EscherArrayProperty extends EscherComplexProperty implements Iterable { /** @@ -120,6 +118,7 @@ public final class EscherArrayProperty extends EscherComplexProperty implements System.arraycopy( element, 0, _complexData, FIXED_SIZE + index * actualSize, actualSize); } + @Override public String toString() { StringBuffer results = new StringBuffer(); results.append(" {EscherArrayProperty:" + '\n'); @@ -138,6 +137,7 @@ public final class EscherArrayProperty extends EscherComplexProperty implements + ", data: " + '\n' + results.toString(); } + @Override public String toXml(String tab){ StringBuilder builder = new StringBuilder(); builder.append(tab).append("<").append(getClass().getSimpleName()).append(" id=\"0x").append(HexDump.toHex(getId())) @@ -185,6 +185,7 @@ public final class EscherArrayProperty extends EscherComplexProperty implements * Needs special code to handle the case when the size doesn't * include the size of the header block */ + @Override public int serializeSimplePart(byte[] data, int pos) { LittleEndian.putShort(data, pos, getId()); int recordSize = _complexData.length; @@ -199,25 +200,29 @@ public final class EscherArrayProperty extends EscherComplexProperty implements * 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) { + private static int getActualSizeOfElements(short sizeOfElements) { if (sizeOfElements < 0) { return (short) ( ( -sizeOfElements ) >> 2 ); } return sizeOfElements; } + @Override public Iterator iterator() { return new Iterator(){ int idx = 0; + @Override public boolean hasNext() { return (idx < getNumberOfElementsInArray()); } + @Override public byte[] next() { if (!hasNext()) throw new NoSuchElementException(); return getElement(idx++); } + @Override public void remove() { throw new UnsupportedOperationException("not yet implemented"); } diff --git a/src/java/org/apache/poi/ddf/EscherBSERecord.java b/src/java/org/apache/poi/ddf/EscherBSERecord.java index 7c69189379..109252c1bd 100644 --- a/src/java/org/apache/poi/ddf/EscherBSERecord.java +++ b/src/java/org/apache/poi/ddf/EscherBSERecord.java @@ -25,7 +25,6 @@ import org.apache.poi.util.LittleEndian; * extra information about the blip. A blip record is actually stored inside * the BSE record even though the BSE record isn't actually a container record. * - * @author Glen Stampoultzis * @see EscherBlipRecord */ public final class EscherBSERecord extends EscherRecord { @@ -56,6 +55,7 @@ public final class EscherBSERecord extends EscherRecord { private byte[] _remainingData = new byte[0]; + @Override public int fillFields(byte[] data, int offset, EscherRecordFactory recordFactory) { int bytesRemaining = readHeader( data, offset ); int pos = offset + 8; @@ -87,6 +87,7 @@ public final class EscherBSERecord extends EscherRecord { } + @Override public int serialize(int offset, byte[] data, EscherSerializationListener listener) { listener.beforeRecordSerialize( offset, getRecordId(), this ); @@ -124,6 +125,7 @@ public final class EscherBSERecord extends EscherRecord { return pos - offset; } + @Override public int getRecordSize() { int field_12_size = 0; if(field_12_blipRecord != null) { @@ -137,6 +139,7 @@ public final class EscherBSERecord extends EscherRecord { 1 + 1 + field_12_size + remaining_size; } + @Override public String getRecordName() { return "BSE"; } @@ -144,6 +147,8 @@ public final class EscherBSERecord extends EscherRecord { /** * The expected blip type under windows (failure to match this blip type will result in * Excel converting to this format). + * + * @return win32 blip type */ public byte getBlipTypeWin32() { return field_1_blipTypeWin32; @@ -151,6 +156,8 @@ public final class EscherBSERecord extends EscherRecord { /** * Set the expected win32 blip type + * + * @param blipTypeWin32 win32 blip type */ public void setBlipTypeWin32(byte blipTypeWin32) { field_1_blipTypeWin32 = blipTypeWin32; @@ -159,6 +166,8 @@ public final class EscherBSERecord extends EscherRecord { /** * The expected blip type under MacOS (failure to match this blip type will result in * Excel converting to this format). + * + * @return MacOS blip type */ public byte getBlipTypeMacOS() { return field_2_blipTypeMacOS; @@ -166,6 +175,8 @@ public final class EscherBSERecord extends EscherRecord { /** * Set the expected MacOS blip type + * + * @param blipTypeMacOS MacOS blip type */ public void setBlipTypeMacOS(byte blipTypeMacOS) { field_2_blipTypeMacOS = blipTypeMacOS; @@ -173,6 +184,8 @@ public final class EscherBSERecord extends EscherRecord { /** * 16 byte MD4 checksum. + * + * @return 16 byte MD4 checksum */ public byte[] getUid() { return field_3_uid; @@ -180,6 +193,8 @@ public final class EscherBSERecord extends EscherRecord { /** * 16 byte MD4 checksum. + * + * @param uid 16 byte MD4 checksum */ public void setUid(byte[] uid) { if (uid == null || uid.length != 16) { @@ -190,6 +205,8 @@ public final class EscherBSERecord extends EscherRecord { /** * unused + * + * @return an unknown tag */ public short getTag() { return field_4_tag; @@ -197,6 +214,8 @@ public final class EscherBSERecord extends EscherRecord { /** * unused + * + * @param tag unknown tag */ public void setTag(short tag) { field_4_tag = tag; @@ -204,6 +223,8 @@ public final class EscherBSERecord extends EscherRecord { /** * Blip size in stream. + * + * @return the blip size */ public int getSize() { return field_5_size; @@ -211,6 +232,8 @@ public final class EscherBSERecord extends EscherRecord { /** * Blip size in stream. + * + * @param size blip size */ public void setSize(int size) { field_5_size = size; @@ -218,6 +241,8 @@ public final class EscherBSERecord extends EscherRecord { /** * The reference count of this blip. + * + * @return the reference count */ public int getRef() { return field_6_ref; @@ -225,6 +250,8 @@ public final class EscherBSERecord extends EscherRecord { /** * The reference count of this blip. + * + * @param ref the reference count */ public void setRef(int ref) { field_6_ref = ref; @@ -232,6 +259,8 @@ public final class EscherBSERecord extends EscherRecord { /** * File offset in the delay stream. + * + * @return the file offset */ public int getOffset() { return field_7_offset; @@ -239,6 +268,8 @@ public final class EscherBSERecord extends EscherRecord { /** * File offset in the delay stream. + * + * @param offset the file offset */ public void setOffset(int offset) { field_7_offset = offset; @@ -246,6 +277,8 @@ public final class EscherBSERecord extends EscherRecord { /** * Defines the way this blip is used. + * + * @return the blip usage */ public byte getUsage() { return field_8_usage; @@ -253,6 +286,8 @@ public final class EscherBSERecord extends EscherRecord { /** * Defines the way this blip is used. + * + * @param usage the blip usae */ public void setUsage(byte usage) { field_8_usage = usage; @@ -260,6 +295,8 @@ public final class EscherBSERecord extends EscherRecord { /** * The length in characters of the blip name. + * + * @return the blip name length */ public byte getName() { return field_9_name; @@ -267,6 +304,8 @@ public final class EscherBSERecord extends EscherRecord { /** * The length in characters of the blip name. + * + * @param name the blip name length */ public void setName(byte name) { field_9_name = name; @@ -314,6 +353,7 @@ public final class EscherBSERecord extends EscherRecord { } } + @Override public String toString() { String extraData = _remainingData == null ? null : HexDump.toHex(_remainingData, 32); return getClass().getName() + ":" + '\n' + @@ -356,6 +396,10 @@ public final class EscherBSERecord extends EscherRecord { /** * Retrieve the string representation given a blip id. + * + * @param b the blip type byte-encoded + * + * @return the blip type as string */ public static String getBlipType(byte b) { switch (b) { diff --git a/src/java/org/apache/poi/ddf/EscherBitmapBlip.java b/src/java/org/apache/poi/ddf/EscherBitmapBlip.java index 43e8ba516a..cb2eba8fcb 100644 --- a/src/java/org/apache/poi/ddf/EscherBitmapBlip.java +++ b/src/java/org/apache/poi/ddf/EscherBitmapBlip.java @@ -20,9 +20,6 @@ package org.apache.poi.ddf; import org.apache.poi.util.HexDump; import org.apache.poi.util.LittleEndian; -/** - * @author Glen Stampoultzis - */ 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; @@ -33,6 +30,7 @@ public class EscherBitmapBlip extends EscherBlipRecord { private final byte[] field_1_UID = new byte[16]; private byte field_2_marker = (byte) 0xFF; + @Override public int fillFields(byte[] data, int offset, EscherRecordFactory recordFactory) { int bytesAfterHeader = readHeader( data, offset ); int pos = offset + HEADER_SIZE; @@ -46,33 +44,44 @@ public class EscherBitmapBlip extends EscherBlipRecord { return bytesAfterHeader + HEADER_SIZE; } - public int serialize( int offset, byte[] data, EscherSerializationListener listener ) - { - listener.beforeRecordSerialize(offset, getRecordId(), this); + @Override + 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() ); - LittleEndian.putInt( data, offset + 4, getRecordSize() - HEADER_SIZE ); - int pos = offset + HEADER_SIZE; + LittleEndian.putShort( data, offset, getOptions() ); + LittleEndian.putShort( data, offset + 2, getRecordId() ); + LittleEndian.putInt( data, offset + 4, getRecordSize() - HEADER_SIZE ); + int pos = offset + HEADER_SIZE; - System.arraycopy( field_1_UID, 0, data, pos, 16 ); - data[pos + 16] = field_2_marker; - System.arraycopy( field_pictureData, 0, data, pos + 17, field_pictureData.length ); + System.arraycopy( field_1_UID, 0, data, pos, 16 ); + data[pos + 16] = field_2_marker; + System.arraycopy( field_pictureData, 0, data, pos + 17, field_pictureData.length ); - listener.afterRecordSerialize(offset + getRecordSize(), getRecordId(), getRecordSize(), this); - return HEADER_SIZE + 16 + 1 + field_pictureData.length; - } + listener.afterRecordSerialize(offset + getRecordSize(), getRecordId(), getRecordSize(), this); + return HEADER_SIZE + 16 + 1 + field_pictureData.length; + } - public int getRecordSize() - { - return 8 + 16 + 1 + field_pictureData.length; - } + @Override + public int getRecordSize() { + return 8 + 16 + 1 + field_pictureData.length; + } - public byte[] getUID() - { + /** + * Gets the first MD4, that specifies the unique identifier of the + * uncompressed blip data + * + * @return the first MD4 + */ + public byte[] getUID() { return field_1_UID; } + /** + * Sets the first MD4, that specifies the unique identifier of the + * uncompressed blip data + * + * @param field_1_UID the first MD4 + */ public void setUID( byte[] field_1_UID ) { if (field_1_UID == null || field_1_UID.length != 16) { throw new IllegalArgumentException("field_1_UID must be byte[16]"); @@ -80,29 +89,39 @@ public class EscherBitmapBlip extends EscherBlipRecord { System.arraycopy(field_1_UID, 0, this.field_1_UID , 0, 16); } - public byte getMarker() - { + /** + * Gets an unsigned integer that specifies an application-defined internal + * resource tag. This value MUST be 0xFF for external files. + * + * @return the marker + */ + public byte getMarker() { return field_2_marker; } - public void setMarker( byte field_2_marker ) - { + /** + * Sets an unsigned integer that specifies an application-defined internal + * resource tag. This value MUST be 0xFF for external files. + * + * @param field_2_marker the marker + */ + public void setMarker( byte field_2_marker ) { this.field_2_marker = field_2_marker; } - public String toString() - { + @Override + public String toString() { String nl = System.getProperty( "line.separator" ); String extraData = HexDump.dump(this.field_pictureData, 0, 0); return getClass().getName() + ":" + nl + - " RecordId: 0x" + HexDump.toHex( getRecordId() ) + nl + - " Version: 0x" + HexDump.toHex( getVersion() ) + nl + - " Instance: 0x" + HexDump.toHex( getInstance() ) + nl + - " UID: 0x" + HexDump.toHex( field_1_UID ) + nl + - " Marker: 0x" + HexDump.toHex( field_2_marker ) + nl + - " Extra Data:" + nl + extraData; + " RecordId: 0x" + HexDump.toHex( getRecordId() ) + nl + + " Version: 0x" + HexDump.toHex( getVersion() ) + nl + + " Instance: 0x" + HexDump.toHex( getInstance() ) + nl + + " UID: 0x" + HexDump.toHex( field_1_UID ) + nl + + " Marker: 0x" + HexDump.toHex( field_2_marker ) + nl + + " Extra Data:" + nl + extraData; } @Override @@ -110,9 +129,9 @@ public class EscherBitmapBlip extends EscherBlipRecord { String extraData = HexDump.dump(this.field_pictureData, 0, 0); StringBuilder builder = new StringBuilder(); builder.append(tab).append(formatXmlRecordHeader(getClass().getSimpleName(), HexDump.toHex(getRecordId()), HexDump.toHex(getVersion()), HexDump.toHex(getInstance()))) - .append(tab).append("\t").append("0x").append(HexDump.toHex(field_1_UID)).append("\n") - .append(tab).append("\t").append("0x").append(HexDump.toHex(field_2_marker)).append("\n") - .append(tab).append("\t").append("").append(extraData).append("\n"); + .append(tab).append("\t").append("0x").append(HexDump.toHex(field_1_UID)).append("\n") + .append(tab).append("\t").append("0x").append(HexDump.toHex(field_2_marker)).append("\n") + .append(tab).append("\t").append("").append(extraData).append("\n"); builder.append(tab).append("\n"); return builder.toString(); } diff --git a/src/java/org/apache/poi/ddf/EscherBlipRecord.java b/src/java/org/apache/poi/ddf/EscherBlipRecord.java index 82854f8694..0ea8930013 100644 --- a/src/java/org/apache/poi/ddf/EscherBlipRecord.java +++ b/src/java/org/apache/poi/ddf/EscherBlipRecord.java @@ -20,10 +20,7 @@ package org.apache.poi.ddf; import org.apache.poi.util.LittleEndian; import org.apache.poi.util.HexDump; -/** - * @author Glen Stampoultzis - */ -public class EscherBlipRecord extends EscherRecord { // TODO - instantiable superclass +public class EscherBlipRecord extends EscherRecord { 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"; @@ -35,6 +32,7 @@ public class EscherBlipRecord extends EscherRecord { // TODO - instantiable supe public EscherBlipRecord() { } + @Override public int fillFields(byte[] data, int offset, EscherRecordFactory recordFactory) { int bytesAfterHeader = readHeader( data, offset ); int pos = offset + HEADER_SIZE; @@ -45,6 +43,7 @@ public class EscherBlipRecord extends EscherRecord { // TODO - instantiable supe return bytesAfterHeader + 8; } + @Override public int serialize(int offset, byte[] data, EscherSerializationListener listener) { listener.beforeRecordSerialize(offset, getRecordId(), this); @@ -57,18 +56,30 @@ public class EscherBlipRecord extends EscherRecord { // TODO - instantiable supe return field_pictureData.length + 4; } + @Override public int getRecordSize() { return field_pictureData.length + HEADER_SIZE; } + @Override public String getRecordName() { return "Blip"; } + /** + * Gets the picture data bytes + * + * @return the picture data + */ public byte[] getPicturedata() { return field_pictureData; } + /** + * Sets the picture data bytes + * + * @param pictureData the picture data + */ public void setPictureData(byte[] pictureData) { if (pictureData == null) { throw new IllegalArgumentException("picture data can't be null"); @@ -76,6 +87,7 @@ public class EscherBlipRecord extends EscherRecord { // TODO - instantiable supe field_pictureData = pictureData.clone(); } + @Override public String toString() { String extraData = HexDump.toHex(field_pictureData, 32); return getClass().getName() + ":" + '\n' + diff --git a/src/java/org/apache/poi/ddf/EscherBoolProperty.java b/src/java/org/apache/poi/ddf/EscherBoolProperty.java index 3044395485..1f44e2343d 100644 --- a/src/java/org/apache/poi/ddf/EscherBoolProperty.java +++ b/src/java/org/apache/poi/ddf/EscherBoolProperty.java @@ -25,7 +25,6 @@ import org.apache.poi.util.HexDump; * of the properties marked as boolean seem to actually contain special values. In other words * they're not true booleans. * - * @author Glen Stampoultzis * @see EscherSimpleProperty * @see EscherProperty */ @@ -45,6 +44,8 @@ public class EscherBoolProperty /** * Whether this boolean property is true + * + * @return the boolean property value */ public boolean isTrue() { @@ -53,6 +54,10 @@ public class EscherBoolProperty /** * Whether this boolean property is false + * + * @return true, if this boolean property is false + * + * @deprecated use !isTrue() instead, planed to be removed in POI 3.17 */ public boolean isFalse() { @@ -67,6 +72,7 @@ public class EscherBoolProperty // + ", value: " + (getValue() != 0); // } + @Override public String toXml(String tab){ StringBuilder builder = new StringBuilder(); builder.append(tab).append("<").append(getClass().getSimpleName()).append(" id=\"0x").append(HexDump.toHex(getId())) diff --git a/src/java/org/apache/poi/ddf/EscherChildAnchorRecord.java b/src/java/org/apache/poi/ddf/EscherChildAnchorRecord.java index bbb84bae8c..1fb16444fb 100644 --- a/src/java/org/apache/poi/ddf/EscherChildAnchorRecord.java +++ b/src/java/org/apache/poi/ddf/EscherChildAnchorRecord.java @@ -25,7 +25,6 @@ import org.apache.poi.util.LittleEndian; * The escher child achor record is used to specify the position of a shape under an * existing group. The first level of shape records use a EscherClientAnchor record instead. * - * @author Glen Stampoultzis * @see EscherChildAnchorRecord */ public class EscherChildAnchorRecord @@ -39,6 +38,7 @@ public class EscherChildAnchorRecord private int field_3_dx2; private int field_4_dy2; + @Override public int fillFields(byte[] data, int offset, EscherRecordFactory recordFactory) { int bytesRemaining = readHeader( data, offset ); int pos = offset + 8; @@ -63,6 +63,7 @@ public class EscherChildAnchorRecord return 8 + size; } + @Override public int serialize(int offset, byte[] data, EscherSerializationListener listener) { listener.beforeRecordSerialize( offset, getRecordId(), this ); int pos = offset; @@ -78,15 +79,18 @@ public class EscherChildAnchorRecord return pos - offset; } + @Override public int getRecordSize() { return 8 + 4 * 4; } + @Override public short getRecordId() { return RECORD_ID; } + @Override public String getRecordName() { return "ChildAnchor"; } @@ -95,6 +99,7 @@ public class EscherChildAnchorRecord /** * The string representation of this record */ + @Override public String toString() { String nl = System.getProperty("line.separator"); @@ -124,6 +129,8 @@ public class EscherChildAnchorRecord /** * Retrieves offset within the parent coordinate space for the top left point. + * + * @return the x offset of the top left point */ public int getDx1() { @@ -132,6 +139,8 @@ public class EscherChildAnchorRecord /** * Sets offset within the parent coordinate space for the top left point. + * + * @param field_1_dx1 the x offset of the top left point */ public void setDx1( int field_1_dx1 ) { @@ -140,6 +149,8 @@ public class EscherChildAnchorRecord /** * Gets offset within the parent coordinate space for the top left point. + * + * @return the y offset of the top left point */ public int getDy1() { @@ -148,6 +159,8 @@ public class EscherChildAnchorRecord /** * Sets offset within the parent coordinate space for the top left point. + * + * @param field_2_dy1 the y offset of the top left point */ public void setDy1( int field_2_dy1 ) { @@ -156,6 +169,8 @@ public class EscherChildAnchorRecord /** * Retrieves offset within the parent coordinate space for the bottom right point. + * + * @return the x offset of the bottom right point */ public int getDx2() { @@ -164,6 +179,8 @@ public class EscherChildAnchorRecord /** * Sets offset within the parent coordinate space for the bottom right point. + * + * @param field_3_dx2 the x offset of the bottom right point */ public void setDx2( int field_3_dx2 ) { @@ -172,6 +189,8 @@ public class EscherChildAnchorRecord /** * Gets the offset within the parent coordinate space for the bottom right point. + * + * @return the y offset of the bottom right point */ public int getDy2() { @@ -180,6 +199,8 @@ public class EscherChildAnchorRecord /** * Sets the offset within the parent coordinate space for the bottom right point. + * + * @param field_4_dy2 the y offset of the bottom right point */ public void setDy2( int field_4_dy2 ) { diff --git a/src/java/org/apache/poi/ddf/EscherClientAnchorRecord.java b/src/java/org/apache/poi/ddf/EscherClientAnchorRecord.java index 80203d4363..bb1cf66ee1 100644 --- a/src/java/org/apache/poi/ddf/EscherClientAnchorRecord.java +++ b/src/java/org/apache/poi/ddf/EscherClientAnchorRecord.java @@ -26,7 +26,6 @@ import org.apache.poi.util.LittleEndian; * of the actual size of the cell. The EscherClientAnchorRecord only applies to the top-most * shapes. Shapes contained in groups are bound using the EscherChildAnchorRecords. * - * @author Glen Stampoultzis * @see EscherChildAnchorRecord */ public class EscherClientAnchorRecord @@ -55,6 +54,7 @@ public class EscherClientAnchorRecord private byte[] remainingData = new byte[0]; private boolean shortRecord = false; + @Override public int fillFields(byte[] data, int offset, EscherRecordFactory recordFactory) { int bytesRemaining = readHeader( data, offset ); int pos = offset + 8; @@ -89,6 +89,7 @@ public class EscherClientAnchorRecord return 8 + size + bytesRemaining; } + @Override public int serialize( int offset, byte[] data, EscherSerializationListener listener ) { listener.beforeRecordSerialize( offset, getRecordId(), this ); @@ -116,15 +117,18 @@ public class EscherClientAnchorRecord return pos - offset; } + @Override public int getRecordSize() { return 8 + (shortRecord ? 8 : 18) + (remainingData == null ? 0 : remainingData.length); } + @Override public short getRecordId() { return RECORD_ID; } + @Override public String getRecordName() { return "ClientAnchor"; } @@ -134,6 +138,7 @@ public class EscherClientAnchorRecord * * @return A string */ + @Override public String toString() { String nl = System.getProperty("line.separator"); @@ -174,6 +179,8 @@ public class EscherClientAnchorRecord /** * 0 = Move and size with Cells, 2 = Move but don't size with cells, 3 = Don't move or size with cells. + * + * @return the move/size flag */ public short getFlag() { @@ -182,6 +189,8 @@ public class EscherClientAnchorRecord /** * 0 = Move and size with Cells, 2 = Move but don't size with cells, 3 = Don't move or size with cells. + * + * @param field_1_flag the move/size flag */ public void setFlag( short field_1_flag ) { @@ -190,6 +199,8 @@ public class EscherClientAnchorRecord /** * The column number for the top-left position. 0 based. + * + * @return the column number of the top-left corner */ public short getCol1() { @@ -198,6 +209,8 @@ public class EscherClientAnchorRecord /** * The column number for the top-left position. 0 based. + * + * @param field_2_col1 the column number of the top-left corner */ public void setCol1( short field_2_col1 ) { @@ -206,6 +219,8 @@ public class EscherClientAnchorRecord /** * The x offset within the top-left cell. Range is from 0 to 1023. + * + * @return the x offset of the top-left corner */ public short getDx1() { @@ -214,6 +229,8 @@ public class EscherClientAnchorRecord /** * The x offset within the top-left cell. Range is from 0 to 1023. + * + * @param field_3_dx1 the x offset of the top-left corner */ public void setDx1( short field_3_dx1 ) { @@ -222,6 +239,8 @@ public class EscherClientAnchorRecord /** * The row number for the top-left corner of the shape. + * + * @return the row number of the top-left corner */ public short getRow1() { @@ -229,7 +248,9 @@ public class EscherClientAnchorRecord } /** - * The row number for the top-left corner of the shape. + * The row number of the top-left corner of the shape. + * + * @param field_4_row1 the row number of the top-left corner */ public void setRow1( short field_4_row1 ) { @@ -238,6 +259,8 @@ public class EscherClientAnchorRecord /** * The y offset within the top-left corner of the current shape. + * + * @return the y offset of the top-left corner */ public short getDy1() { @@ -246,6 +269,8 @@ public class EscherClientAnchorRecord /** * The y offset within the top-left corner of the current shape. + * + * @param field_5_dy1 the y offset of the top-left corner */ public void setDy1( short field_5_dy1 ) { @@ -255,6 +280,8 @@ public class EscherClientAnchorRecord /** * The column of the bottom right corner of this shape. + * + * @return the column of the bottom right corner */ public short getCol2() { @@ -263,6 +290,8 @@ public class EscherClientAnchorRecord /** * The column of the bottom right corner of this shape. + * + * @param field_6_col2 the column of the bottom right corner */ public void setCol2( short field_6_col2 ) { @@ -272,6 +301,8 @@ public class EscherClientAnchorRecord /** * The x offset withing the cell for the bottom-right corner of this shape. + * + * @return the x offset of the bottom-right corner */ public short getDx2() { @@ -280,6 +311,8 @@ public class EscherClientAnchorRecord /** * The x offset withing the cell for the bottom-right corner of this shape. + * + * @param field_7_dx2 the x offset of the bottom-right corner */ public void setDx2( short field_7_dx2 ) { @@ -289,6 +322,8 @@ public class EscherClientAnchorRecord /** * The row number for the bottom-right corner of the current shape. + * + * @return the row number for the bottom-right corner */ public short getRow2() { @@ -297,6 +332,8 @@ public class EscherClientAnchorRecord /** * The row number for the bottom-right corner of the current shape. + * + * @param field_8_row2 the row number for the bottom-right corner */ public void setRow2( short field_8_row2 ) { @@ -306,6 +343,8 @@ public class EscherClientAnchorRecord /** * The y offset withing the cell for the bottom-right corner of this shape. + * + * @return the y offset of the bottom-right corner */ public short getDy2() { @@ -314,6 +353,8 @@ public class EscherClientAnchorRecord /** * The y offset withing the cell for the bottom-right corner of this shape. + * + * @param field_9_dy2 the y offset of the bottom-right corner */ public void setDy2( short field_9_dy2 ) { @@ -323,6 +364,8 @@ public class EscherClientAnchorRecord /** * Any remaining data in the record + * + * @return the remaining bytes */ public byte[] getRemainingData() { @@ -331,6 +374,8 @@ public class EscherClientAnchorRecord /** * Any remaining data in the record + * + * @param remainingData the remaining bytes */ public void setRemainingData( byte[] remainingData ) { if (remainingData == null) { diff --git a/src/java/org/apache/poi/ddf/EscherClientDataRecord.java b/src/java/org/apache/poi/ddf/EscherClientDataRecord.java index 0b307ad532..749007cfee 100644 --- a/src/java/org/apache/poi/ddf/EscherClientDataRecord.java +++ b/src/java/org/apache/poi/ddf/EscherClientDataRecord.java @@ -24,8 +24,6 @@ import org.apache.poi.util.LittleEndian; /** * The EscherClientDataRecord is used to store client specific data about the position of a * shape within a container. - * - * @author Glen Stampoultzis */ public class EscherClientDataRecord extends EscherRecord @@ -35,6 +33,7 @@ public class EscherClientDataRecord private byte[] remainingData; + @Override public int fillFields(byte[] data, int offset, EscherRecordFactory recordFactory) { int bytesRemaining = readHeader( data, offset ); int pos = offset + 8; @@ -43,6 +42,7 @@ public class EscherClientDataRecord return 8 + bytesRemaining; } + @Override public int serialize(int offset, byte[] data, EscherSerializationListener listener) { listener.beforeRecordSerialize( offset, getRecordId(), this ); @@ -57,15 +57,18 @@ public class EscherClientDataRecord return pos - offset; } + @Override public int getRecordSize() { return 8 + (remainingData == null ? 0 : remainingData.length); } + @Override public short getRecordId() { return RECORD_ID; } + @Override public String getRecordName() { return "ClientData"; } @@ -73,6 +76,7 @@ public class EscherClientDataRecord /** * Returns the string representation of this record. */ + @Override public String toString() { String nl = System.getProperty("line.separator"); @@ -99,6 +103,8 @@ public class EscherClientDataRecord /** * Any data recording this record. + * + * @return the remaining bytes */ public byte[] getRemainingData() { @@ -107,6 +113,8 @@ public class EscherClientDataRecord /** * Any data recording this record. + * + * @param remainingData the remaining bytes */ public void setRemainingData( byte[] remainingData ) { this.remainingData = (remainingData == null) diff --git a/src/java/org/apache/poi/ddf/EscherComplexProperty.java b/src/java/org/apache/poi/ddf/EscherComplexProperty.java index 689002a999..3649d98f06 100644 --- a/src/java/org/apache/poi/ddf/EscherComplexProperty.java +++ b/src/java/org/apache/poi/ddf/EscherComplexProperty.java @@ -66,6 +66,7 @@ public class EscherComplexProperty extends EscherProperty { /** * Serializes the simple part of this property. i.e. the first 6 bytes. */ + @Override public int serializeSimplePart(byte[] data, int pos) { LittleEndian.putShort(data, pos, getId()); LittleEndian.putInt(data, pos + 2, _complexData.length); @@ -79,6 +80,7 @@ public class EscherComplexProperty extends EscherProperty { * @param pos The offset within data to start serializing to. * @return The number of bytes serialized. */ + @Override public int serializeComplexPart(byte[] data, int pos) { System.arraycopy(_complexData, 0, data, pos, _complexData.length); return _complexData.length; @@ -86,6 +88,8 @@ public class EscherComplexProperty extends EscherProperty { /** * Get the complex data value. + * + * @return the complex bytes */ public byte[] getComplexData() { return _complexData; @@ -97,6 +101,7 @@ public class EscherComplexProperty extends EscherProperty { * @param o The object to compare to. * @return True if the objects are equal. */ + @Override public boolean equals(Object o) { if (this == o) { return true; @@ -117,10 +122,12 @@ public class EscherComplexProperty extends EscherProperty { * * @return Number of bytes */ + @Override public int getPropertySize() { return 6 + _complexData.length; } + @Override public int hashCode() { return getId() * 11; } @@ -128,6 +135,7 @@ public class EscherComplexProperty extends EscherProperty { /** * Retrieves the string representation for this property. */ + @Override public String toString() { String dataStr = HexDump.toHex( _complexData, 32); @@ -138,6 +146,7 @@ public class EscherComplexProperty extends EscherProperty { + ", data: " + System.getProperty("line.separator") + dataStr; } + @Override public String toXml(String tab){ StringBuilder builder = new StringBuilder(); builder.append(tab).append("<").append(getClass().getSimpleName()).append(" id=\"0x").append(HexDump.toHex(getId())) diff --git a/src/java/org/apache/poi/ddf/EscherContainerRecord.java b/src/java/org/apache/poi/ddf/EscherContainerRecord.java index 3cb6ddd52f..5f8ab99694 100644 --- a/src/java/org/apache/poi/ddf/EscherContainerRecord.java +++ b/src/java/org/apache/poi/ddf/EscherContainerRecord.java @@ -30,8 +30,6 @@ import org.apache.poi.util.POILogger; * The container records themselves never store any information beyond * the standard header used by all escher records. This one record is * used to represent many different types of records. - * - * @author Glen Stampoultzis */ public final class EscherContainerRecord extends EscherRecord { public static final short DGG_CONTAINER = (short)0xF000; @@ -41,7 +39,7 @@ public final class EscherContainerRecord extends EscherRecord { public static final short SP_CONTAINER = (short)0xF004; public static final short SOLVER_CONTAINER = (short)0xF005; - private static POILogger log = POILogFactory.getLogger(EscherContainerRecord.class); + private static final POILogger log = POILogFactory.getLogger(EscherContainerRecord.class); /** * in case if document contains any charts we have such document structure: @@ -69,6 +67,7 @@ public final class EscherContainerRecord extends EscherRecord { private final List _childRecords = new ArrayList(); + @Override public int fillFields(byte[] data, int pOffset, EscherRecordFactory recordFactory) { int bytesRemaining = readHeader(data, pOffset); int bytesWritten = 8; @@ -90,6 +89,7 @@ public final class EscherContainerRecord extends EscherRecord { return bytesWritten; } + @Override public int serialize( int offset, byte[] data, EscherSerializationListener listener ) { listener.beforeRecordSerialize( offset, getRecordId(), this ); @@ -115,6 +115,7 @@ public final class EscherContainerRecord extends EscherRecord { return pos - offset; } + @Override public int getRecordSize() { int childRecordsSize = 0; Iterator iterator = _childRecords.iterator(); @@ -126,8 +127,9 @@ public final class EscherContainerRecord extends EscherRecord { } /** - * Do any of our (top level) children have the - * given recordId? + * Do any of our (top level) children have the given recordId? + * + * @return true, if any child has the given recordId */ public boolean hasChildOfType(short recordId) { Iterator iterator = _childRecords.iterator(); @@ -139,6 +141,7 @@ public final class EscherContainerRecord extends EscherRecord { } return false; } + @Override public EscherRecord getChild( int index ) { return _childRecords.get(index); } @@ -146,10 +149,14 @@ public final class EscherContainerRecord extends EscherRecord { /** * @return a copy of the list of all the child records of the container. */ + @Override public List getChildRecords() { return new ArrayList(_childRecords); } + /** + * @return an iterator over the child records + */ public Iterator getChildIterator() { return Collections.unmodifiableList(_childRecords).iterator(); } @@ -157,6 +164,7 @@ public final class EscherContainerRecord extends EscherRecord { /** * replaces the internal child list with the contents of the supplied childRecords */ + @Override public void setChildRecords(List childRecords) { if (childRecords == _childRecords) { throw new IllegalStateException("Child records private data member has escaped"); @@ -165,6 +173,12 @@ public final class EscherContainerRecord extends EscherRecord { _childRecords.addAll(childRecords); } + /** + * Removes the given escher record from the child list + * + * @param toBeRemoved the escher record to be removed + * @return true, if the record was found and removed + */ public boolean removeChildRecord(EscherRecord toBeRemoved) { return _childRecords.remove(toBeRemoved); } @@ -188,6 +202,7 @@ public final class EscherContainerRecord extends EscherRecord { return containers; } + @Override public String getRecordName() { switch (getRecordId()) { case DGG_CONTAINER: @@ -207,6 +222,7 @@ public final class EscherContainerRecord extends EscherRecord { } } + @Override public void display(PrintWriter w, int indent) { super.display(w, indent); for (Iterator iterator = _childRecords.iterator(); iterator.hasNext();) @@ -216,10 +232,21 @@ public final class EscherContainerRecord extends EscherRecord { } } + /** + * Append a child record + * + * @param record the record to be added + */ public void addChildRecord(EscherRecord record) { _childRecords.add(record); } + /** + * Add a child record before the record with given recordId + * + * @param record the record to be added + * @param insertBeforeRecordId the recordId of the next sibling + */ public void addChildBefore(EscherRecord record, int insertBeforeRecordId) { int idx = 0; for (EscherRecord rec : _childRecords) { @@ -230,6 +257,7 @@ public final class EscherContainerRecord extends EscherRecord { _childRecords.add(idx, record); } + @Override public String toString() { String nl = System.getProperty( "line.separator" ); @@ -294,6 +322,7 @@ public final class EscherContainerRecord extends EscherRecord { /** * Recursively find records with the specified record ID * + * @param recordId the recordId to be searched for * @param out - list to store found records */ public void getRecordsById(short recordId, List out){ diff --git a/src/java/org/apache/poi/ddf/EscherDgRecord.java b/src/java/org/apache/poi/ddf/EscherDgRecord.java index c269ad4461..7de76e2415 100644 --- a/src/java/org/apache/poi/ddf/EscherDgRecord.java +++ b/src/java/org/apache/poi/ddf/EscherDgRecord.java @@ -24,8 +24,6 @@ import org.apache.poi.util.LittleEndian; /** * This record simply holds the number of shapes in the drawing group and the * last shape id used for this drawing group. - * - * @author Glen Stampoultzis */ public class EscherDgRecord extends EscherRecord @@ -36,6 +34,7 @@ public class EscherDgRecord private int field_1_numShapes; private int field_2_lastMSOSPID; + @Override public int fillFields(byte[] data, int offset, EscherRecordFactory recordFactory) { /*int bytesRemaining =*/ readHeader( data, offset ); int pos = offset + 8; @@ -48,6 +47,7 @@ public class EscherDgRecord return getRecordSize(); } + @Override public int serialize( int offset, byte[] data, EscherSerializationListener listener ) { listener.beforeRecordSerialize( offset, getRecordId(), this ); @@ -69,15 +69,18 @@ public class EscherDgRecord * * @return Number of bytes */ + @Override public int getRecordSize() { return 8 + 8; } + @Override public short getRecordId() { return RECORD_ID; } + @Override public String getRecordName() { return "Dg"; } @@ -85,6 +88,7 @@ public class EscherDgRecord /** * Returns the string representation of this record. */ + @Override public String toString() { return getClass().getName() + ":" + '\n' + " RecordId: 0x" + HexDump.toHex(RECORD_ID) + '\n' + @@ -106,6 +110,8 @@ public class EscherDgRecord /** * The number of shapes in this drawing group. + * + * @return the number of shapes */ public int getNumShapes() { @@ -114,6 +120,8 @@ public class EscherDgRecord /** * The number of shapes in this drawing group. + * + * @param field_1_numShapes the number of shapes */ public void setNumShapes( int field_1_numShapes ) { @@ -122,6 +130,8 @@ public class EscherDgRecord /** * The last shape id used in this drawing group. + * + * @return the last shape id */ public int getLastMSOSPID() { @@ -130,6 +140,8 @@ public class EscherDgRecord /** * The last shape id used in this drawing group. + * + * @param field_2_lastMSOSPID the last shape id */ public void setLastMSOSPID( int field_2_lastMSOSPID ) { @@ -147,6 +159,9 @@ public class EscherDgRecord return (short) ( getOptions() >> 4 ); } + /** + * Increments the number of shapes + */ public void incrementShapeCount() { this.field_1_numShapes++; diff --git a/src/java/org/apache/poi/ddf/EscherDggRecord.java b/src/java/org/apache/poi/ddf/EscherDggRecord.java index a0d4e0cbbc..dcf5e7d211 100644 --- a/src/java/org/apache/poi/ddf/EscherDggRecord.java +++ b/src/java/org/apache/poi/ddf/EscherDggRecord.java @@ -64,6 +64,7 @@ public final class EscherDggRecord extends EscherRecord { } } + @Override public int fillFields(byte[] data, int offset, EscherRecordFactory recordFactory) { int bytesRemaining = readHeader( data, offset ); int pos = offset + 8; @@ -85,6 +86,7 @@ public final class EscherDggRecord extends EscherRecord { return 8 + size + bytesRemaining; } + @Override public int serialize(int offset, byte[] data, EscherSerializationListener listener) { listener.beforeRecordSerialize( offset, getRecordId(), this ); @@ -107,18 +109,22 @@ public final class EscherDggRecord extends EscherRecord { return getRecordSize(); } + @Override public int getRecordSize() { return 8 + 16 + (8 * field_5_fileIdClusters.length); } + @Override public short getRecordId() { return RECORD_ID; } + @Override public String getRecordName() { return "Dgg"; } + @Override public String toString() { StringBuilder field_5_string = new StringBuilder(); @@ -154,12 +160,19 @@ public final class EscherDggRecord extends EscherRecord { return builder.toString(); } + /** + * Gets the next available shape id + * + * @return the next available shape id + */ public int getShapeIdMax() { return field_1_shapeIdMax; } /** - * The maximum is actually the next available. shape id. + * The maximum is actually the next available shape id. + * + * @param shapeIdMax the next available shape id */ public void setShapeIdMax(int shapeIdMax) { this.field_1_shapeIdMax = shapeIdMax; @@ -167,46 +180,90 @@ public final class EscherDggRecord extends EscherRecord { /** * Number of id clusters + 1 + * + * @return the number of id clusters + 1 */ public int getNumIdClusters() { return (field_5_fileIdClusters == null ? 0 : (field_5_fileIdClusters.length + 1)); } + /** + * Gets the number of shapes saved + * + * @return the number of shapes saved + */ public int getNumShapesSaved() { return field_3_numShapesSaved; } + /** + * Sets the number of shapes saved + * + * @param numShapesSaved the number of shapes saved + */ public void setNumShapesSaved(int numShapesSaved) { this.field_3_numShapesSaved = numShapesSaved; } + /** + * Gets the number of drawings saved + * + * @return the number of drawings saved + */ public int getDrawingsSaved() { return field_4_drawingsSaved; } + /** + * Sets the number of drawings saved + * + * @param drawingsSaved the number of drawings saved + */ public void setDrawingsSaved(int drawingsSaved) { this.field_4_drawingsSaved = drawingsSaved; } /** + * Gets the maximum drawing group ID + * * @return The maximum drawing group ID */ public int getMaxDrawingGroupId() { return maxDgId; } + /** + * Sets the maximum drawing group ID + * + * @param id the maximum drawing group ID + */ public void setMaxDrawingGroupId(int id) { maxDgId = id; } + /** + * @return the file id clusters + */ public FileIdCluster[] getFileIdClusters() { return field_5_fileIdClusters; } + /** + * Sets the file id clusters + * + * @param fileIdClusters the file id clusters + */ public void setFileIdClusters(FileIdCluster[] fileIdClusters) { this.field_5_fileIdClusters = fileIdClusters.clone(); } + + /** + * Add a new cluster + * + * @param dgId id of the drawing group (stored in the record options) + * @param numShapedUsed initial value of the numShapedUsed field + */ public void addCluster(int dgId, int numShapedUsed) { addCluster(dgId, numShapedUsed, true); } @@ -228,6 +285,7 @@ public final class EscherDggRecord extends EscherRecord { } private static final Comparator MY_COMP = new Comparator() { + @Override public int compare(FileIdCluster f1, FileIdCluster f2) { if (f1.getDrawingGroupId() == f2.getDrawingGroupId()) { return 0; diff --git a/src/java/org/apache/poi/ddf/EscherMetafileBlip.java b/src/java/org/apache/poi/ddf/EscherMetafileBlip.java index bfde1d1592..740df26dde 100644 --- a/src/java/org/apache/poi/ddf/EscherMetafileBlip.java +++ b/src/java/org/apache/poi/ddf/EscherMetafileBlip.java @@ -31,9 +31,6 @@ import java.io.IOException; import java.util.zip.InflaterInputStream; import java.util.zip.DeflaterOutputStream; -/** - * @author Daniel Noll - */ public final class EscherMetafileBlip extends EscherBlipRecord { private static final POILogger log = POILogFactory.getLogger(EscherMetafileBlip.class); @@ -62,6 +59,7 @@ public final class EscherMetafileBlip extends EscherBlipRecord { private byte[] raw_pictureData; private byte[] remainingData; + @Override public int fillFields(byte[] data, int offset, EscherRecordFactory recordFactory) { int bytesAfterHeader = readHeader( data, offset ); int pos = offset + HEADER_SIZE; @@ -102,6 +100,7 @@ public final class EscherMetafileBlip extends EscherBlipRecord { return bytesAfterHeader + HEADER_SIZE; } + @Override public int serialize(int offset, byte[] data, EscherSerializationListener listener) { listener.beforeRecordSerialize(offset, getRecordId(), this); @@ -157,6 +156,7 @@ public final class EscherMetafileBlip extends EscherBlipRecord { } } + @Override public int getRecordSize() { int size = 8 + 50 + raw_pictureData.length; if(remainingData != null) size += remainingData.length; @@ -166,10 +166,22 @@ public final class EscherMetafileBlip extends EscherBlipRecord { return size; } + /** + * Gets the first MD4, that specifies the unique identifier of the + * uncompressed blip data + * + * @return the first MD4 + */ public byte[] getUID() { return field_1_UID; } + /** + * Sets the first MD4, that specifies the unique identifier of the + * uncompressed blip data + * + * @param uid the first MD4 + */ public void setUID(byte[] uid) { if (uid == null || uid.length != 16) { throw new IllegalArgumentException("uid must be byte[16]"); @@ -177,10 +189,22 @@ public final class EscherMetafileBlip extends EscherBlipRecord { System.arraycopy(uid, 0, field_1_UID, 0, field_1_UID.length); } + /** + * Gets the second MD4, that specifies the unique identifier of the + * uncompressed blip data + * + * @return the second MD4 + */ public byte[] getPrimaryUID() { return field_2_UID; } + /** + * Sets the second MD4, that specifies the unique identifier of the + * uncompressed blip data + * + * @param primaryUID the second MD4 + */ public void setPrimaryUID(byte[] primaryUID) { if (primaryUID == null || primaryUID.length != 16) { throw new IllegalArgumentException("primaryUID must be byte[16]"); @@ -188,14 +212,29 @@ public final class EscherMetafileBlip extends EscherBlipRecord { System.arraycopy(primaryUID, 0, field_2_UID, 0, field_2_UID.length); } + /** + * Gets the uncompressed size (in bytes) + * + * @return the uncompressed size + */ public int getUncompressedSize() { return field_2_cb; } + /** + * Sets the uncompressed size (in bytes) + * + * @param uncompressedSize the uncompressed size + */ public void setUncompressedSize(int uncompressedSize) { field_2_cb = uncompressedSize; } + /** + * Get the clipping region of the metafile + * + * @return the clipping region + */ public Rectangle getBounds() { return new Rectangle(field_3_rcBounds_x1, field_3_rcBounds_y1, @@ -203,6 +242,11 @@ public final class EscherMetafileBlip extends EscherBlipRecord { field_3_rcBounds_y2 - field_3_rcBounds_y1); } + /** + * Sets the clipping region + * + * @param bounds the clipping region + */ public void setBounds(Rectangle bounds) { field_3_rcBounds_x1 = bounds.x; field_3_rcBounds_y1 = bounds.y; @@ -210,37 +254,73 @@ public final class EscherMetafileBlip extends EscherBlipRecord { field_3_rcBounds_y2 = bounds.y + bounds.height; } + /** + * Gets the dimensions of the metafile + * + * @return the dimensions of the metafile + */ public Dimension getSizeEMU() { return new Dimension(field_4_ptSize_w, field_4_ptSize_h); } + /** + * Gets the dimensions of the metafile + * + * @param sizeEMU the dimensions of the metafile + */ public void setSizeEMU(Dimension sizeEMU) { field_4_ptSize_w = sizeEMU.width; field_4_ptSize_h = sizeEMU.height; } + /** + * Gets the compressed size of the metafile (in bytes) + * + * @return the compressed size + */ public int getCompressedSize() { return field_5_cbSave; } + /** + * Sets the compressed size of the metafile (in bytes) + * + * @param compressedSize the compressed size + */ public void setCompressedSize(int compressedSize) { field_5_cbSave = compressedSize; } + /** + * Gets the compression of the metafile + * + * @return true, if the metafile is compressed + */ public boolean isCompressed() { return (field_6_fCompression == 0); } + /** + * Sets the compression of the metafile + * + * @param compressed the compression state, true if it's compressed + */ public void setCompressed(boolean compressed) { field_6_fCompression = compressed ? 0 : (byte)0xFE; } + /** + * Returns any remaining bytes + * + * @return any remaining bytes + */ public byte[] getRemainingData() { return remainingData; } // filtering is always 254 according to available docs, so no point giving it a setter method. + @Override public String toString() { String extraData = "";//HexDump.toHex(field_pictureData, 32); return getClass().getName() + ":" + '\n' + @@ -296,6 +376,7 @@ public final class EscherMetafileBlip extends EscherBlipRecord { return 0; } + @Override public void setPictureData(byte[] pictureData) { super.setPictureData(pictureData); setUncompressedSize(pictureData.length); @@ -318,6 +399,11 @@ public final class EscherMetafileBlip extends EscherBlipRecord { setCompressed(true); } + /** + * Sets the filter byte - usually this is 0xFE + * + * @param filter the filter byte + */ public void setFilter(byte filter) { field_7_fFilter = filter; } diff --git a/src/java/org/apache/poi/ddf/EscherOptRecord.java b/src/java/org/apache/poi/ddf/EscherOptRecord.java index 39c20b5b3b..366b6cb851 100644 --- a/src/java/org/apache/poi/ddf/EscherOptRecord.java +++ b/src/java/org/apache/poi/ddf/EscherOptRecord.java @@ -24,8 +24,6 @@ import org.apache.poi.util.Internal; * determining the attributes of a shape. Properties can be of two types: simple * or complex. Simple types are fixed length. Complex properties are variable * length. - * - * @author Glen Stampoultzis */ public class EscherOptRecord extends AbstractEscherOptRecord { @@ -42,6 +40,7 @@ public class EscherOptRecord extends AbstractEscherOptRecord /** * Automatically recalculate the correct option */ + @Override @Internal public short getOptions() { @@ -51,6 +50,7 @@ public class EscherOptRecord extends AbstractEscherOptRecord return super.getOptions(); } + @Override public String getRecordName() { return "Opt"; diff --git a/src/java/org/apache/poi/ddf/EscherPictBlip.java b/src/java/org/apache/poi/ddf/EscherPictBlip.java index 9dee3dca59..7c2acd9a99 100644 --- a/src/java/org/apache/poi/ddf/EscherPictBlip.java +++ b/src/java/org/apache/poi/ddf/EscherPictBlip.java @@ -29,9 +29,6 @@ import java.io.ByteArrayOutputStream; import java.io.IOException; import java.util.zip.InflaterInputStream; -/** - * @author Daniel Noll - */ public final class EscherPictBlip extends EscherBlipRecord { private static final POILogger log = POILogFactory.getLogger(EscherPictBlip.class); @@ -55,6 +52,7 @@ public final class EscherPictBlip extends EscherBlipRecord { private byte[] raw_pictureData; + @Override public int fillFields(byte[] data, int offset, EscherRecordFactory recordFactory) { int bytesAfterHeader = readHeader(data, offset); int pos = offset + HEADER_SIZE; @@ -88,6 +86,7 @@ public final class EscherPictBlip extends EscherBlipRecord { return bytesAfterHeader + HEADER_SIZE; } + @Override public int serialize(int offset, byte[] data, EscherSerializationListener listener) { listener.beforeRecordSerialize(offset, getRecordId(), this); @@ -136,14 +135,27 @@ public final class EscherPictBlip extends EscherBlipRecord { } } + @Override public int getRecordSize() { return 8 + 50 + raw_pictureData.length; } + /** + * Gets the first MD4, that specifies the unique identifier of the + * uncompressed blip data + * + * @return the first MD4 + */ public byte[] getUID() { return field_1_UID; } + /** + * Sets the first MD4, that specifies the unique identifier of the + * uncompressed blip data + * + * @param uid the first MD4 + */ public void setUID(byte[] uid) { if (uid == null || uid.length != 16) { throw new IllegalArgumentException("uid must be byte[16]"); @@ -151,14 +163,29 @@ public final class EscherPictBlip extends EscherBlipRecord { System.arraycopy(uid, 0, field_1_UID, 0, field_1_UID.length); } + /** + * Gets the uncompressed size (in bytes) + * + * @return the uncompressed size + */ public int getUncompressedSize() { return field_2_cb; } + /** + * Sets the uncompressed size (in bytes) + * + * @param uncompressedSize the uncompressed size + */ public void setUncompressedSize(int uncompressedSize) { field_2_cb = uncompressedSize; } + /** + * Get the clipping region of the pict file + * + * @return the clipping region + */ public Rectangle getBounds() { return new Rectangle(field_3_rcBounds_x1, field_3_rcBounds_y1, @@ -166,6 +193,11 @@ public final class EscherPictBlip extends EscherBlipRecord { field_3_rcBounds_y2 - field_3_rcBounds_y1); } + /** + * Sets the clipping region + * + * @param bounds the clipping region + */ public void setBounds(Rectangle bounds) { field_3_rcBounds_x1 = bounds.x; field_3_rcBounds_y1 = bounds.y; @@ -173,33 +205,64 @@ public final class EscherPictBlip extends EscherBlipRecord { field_3_rcBounds_y2 = bounds.y + bounds.height; } + /** + * Gets the dimensions of the metafile + * + * @return the dimensions of the metafile + */ public Dimension getSizeEMU() { return new Dimension(field_4_ptSize_w, field_4_ptSize_h); } + /** + * Gets the dimensions of the metafile + * + * @param sizeEMU the dimensions of the metafile + */ public void setSizeEMU(Dimension sizeEMU) { field_4_ptSize_w = sizeEMU.width; field_4_ptSize_h = sizeEMU.height; } + /** + * Gets the compressed size of the metafile (in bytes) + * + * @return the compressed size + */ public int getCompressedSize() { return field_5_cbSave; } + /** + * Sets the compressed size of the metafile (in bytes) + * + * @param compressedSize the compressed size + */ public void setCompressedSize(int compressedSize) { field_5_cbSave = compressedSize; } + /** + * Gets the compression of the metafile + * + * @return true, if the metafile is compressed + */ public boolean isCompressed() { return (field_6_fCompression == 0); } + /** + * Sets the compression of the metafile + * + * @param compressed the compression state, true if it's 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. + @Override public String toString() { String extraData = HexDump.toHex(field_pictureData, 32); return getClass().getName() + ":" + '\n' + diff --git a/src/java/org/apache/poi/ddf/EscherRGBProperty.java b/src/java/org/apache/poi/ddf/EscherRGBProperty.java index 5d23addfb5..155db7f4f8 100644 --- a/src/java/org/apache/poi/ddf/EscherRGBProperty.java +++ b/src/java/org/apache/poi/ddf/EscherRGBProperty.java @@ -21,8 +21,6 @@ import org.apache.poi.util.HexDump; /** * A color property. - * - * @author Glen Stampoultzis (glens at apache.org) */ public class EscherRGBProperty extends EscherSimpleProperty @@ -33,26 +31,39 @@ public class EscherRGBProperty super( propertyNumber, rgbColor ); } + /** + * @return the rgb color as int value + */ public int getRgbColor() { return propertyValue; } + /** + * @return the red part + */ public byte getRed() { return (byte) ( propertyValue & 0xFF ); } + /** + * @return the green part + */ public byte getGreen() { return (byte) ( (propertyValue >> 8) & 0xFF ); } + /** + * @return the blue part + */ public byte getBlue() { return (byte) ( (propertyValue >> 16) & 0xFF ); } + @Override public String toXml(String tab){ StringBuilder builder = new StringBuilder(); builder.append(tab).append("<").append(getClass().getSimpleName()).append(" id=\"0x").append(HexDump.toHex(getId())) diff --git a/src/java/org/apache/poi/ddf/EscherSimpleProperty.java b/src/java/org/apache/poi/ddf/EscherSimpleProperty.java index 78fb642034..b331681942 100644 --- a/src/java/org/apache/poi/ddf/EscherSimpleProperty.java +++ b/src/java/org/apache/poi/ddf/EscherSimpleProperty.java @@ -24,8 +24,6 @@ import org.apache.poi.util.HexDump; * A simple property is of fixed length and as a property number in addition * to a 32-bit value. Properties that can't be stored in only 32-bits are * stored as EscherComplexProperty objects. - * - * @author Glen Stampoultzis (glens at apache.org) */ public class EscherSimpleProperty extends EscherProperty { @@ -56,6 +54,7 @@ public class EscherSimpleProperty extends EscherProperty * * @return the number of bytes serialized. */ + @Override public int serializeSimplePart( byte[] data, int offset ) { LittleEndian.putShort(data, offset, getId()); @@ -67,6 +66,7 @@ public class EscherSimpleProperty extends EscherProperty * Escher properties consist of a simple fixed length part and a complex variable length part. * The fixed length part is serialized first. */ + @Override public int serializeComplexPart( byte[] data, int pos ) { return 0; @@ -83,6 +83,7 @@ public class EscherSimpleProperty extends EscherProperty /** * Returns true if one escher property is equal to another. */ + @Override public boolean equals( Object o ) { if ( this == o ) return true; @@ -100,6 +101,7 @@ public class EscherSimpleProperty extends EscherProperty * Returns a hashcode so that this object can be stored in collections that * require the use of such things. */ + @Override public int hashCode() { return propertyValue; @@ -108,6 +110,7 @@ public class EscherSimpleProperty extends EscherProperty /** * @return the string representation of this property. */ + @Override public String toString() { return "propNum: " + getPropertyNumber() @@ -118,6 +121,7 @@ public class EscherSimpleProperty extends EscherProperty + ", value: " + propertyValue + " (0x" + HexDump.toHex(propertyValue) + ")"; } + @Override public String toXml(String tab){ StringBuilder builder = new StringBuilder(); builder.append(tab).append("<").append(getClass().getSimpleName()).append(" id=\"0x").append(HexDump.toHex(getId())) diff --git a/src/java/org/apache/poi/ddf/EscherSpRecord.java b/src/java/org/apache/poi/ddf/EscherSpRecord.java index 870bf575e1..3fec761ab6 100644 --- a/src/java/org/apache/poi/ddf/EscherSpRecord.java +++ b/src/java/org/apache/poi/ddf/EscherSpRecord.java @@ -23,8 +23,6 @@ import org.apache.poi.util.LittleEndian; /** * Together the the EscherOptRecord this record defines some of the basic * properties of a shape. - * - * @author Glen Stampoultzis (glens at apache.org) */ public class EscherSpRecord extends EscherRecord @@ -48,6 +46,7 @@ public class EscherSpRecord private int field_1_shapeId; private int field_2_flags; + @Override public int fillFields(byte[] data, int offset, EscherRecordFactory recordFactory) { /*int bytesRemaining =*/ readHeader( data, offset ); int pos = offset + 8; @@ -70,6 +69,7 @@ public class EscherSpRecord * * @see NullEscherSerializationListener */ + @Override public int serialize( int offset, byte[] data, EscherSerializationListener listener ) { listener.beforeRecordSerialize( offset, getRecordId(), this ); @@ -85,15 +85,18 @@ public class EscherSpRecord return 8 + 8; } + @Override public int getRecordSize() { return 8 + 8; } + @Override public short getRecordId() { return RECORD_ID; } + @Override public String getRecordName() { return "Sp"; } @@ -102,6 +105,7 @@ public class EscherSpRecord /** * @return the string representing this shape. */ + @Override public String toString() { String nl = System.getProperty("line.separator"); @@ -162,6 +166,8 @@ public class EscherSpRecord /** * Sets a number that identifies this shape. + * + * @param field_1_shapeId the shape id */ public void setShapeId( int field_1_shapeId ) { @@ -170,6 +176,8 @@ public class EscherSpRecord /** * The flags that apply to this shape. + * + * @return the flags * * @see #FLAG_GROUP * @see #FLAG_CHILD @@ -191,6 +199,8 @@ public class EscherSpRecord /** * The flags that apply to this shape. + * + * @param field_2_flags the flags * * @see #FLAG_GROUP * @see #FLAG_CHILD diff --git a/src/java/org/apache/poi/ddf/EscherSpgrRecord.java b/src/java/org/apache/poi/ddf/EscherSpgrRecord.java index de279a5a50..a4d30b39a4 100644 --- a/src/java/org/apache/poi/ddf/EscherSpgrRecord.java +++ b/src/java/org/apache/poi/ddf/EscherSpgrRecord.java @@ -24,8 +24,6 @@ import org.apache.poi.util.RecordFormatException; /** * The spgr record defines information about a shape group. Groups in escher * are simply another form of shape that you can't physically see. - * - * @author Glen Stampoultzis (glens at apache.org) */ public class EscherSpgrRecord extends EscherRecord @@ -38,6 +36,7 @@ public class EscherSpgrRecord private int field_3_rectX2; private int field_4_rectY2; + @Override public int fillFields(byte[] data, int offset, EscherRecordFactory recordFactory) { int bytesRemaining = readHeader( data, offset ); int pos = offset + 8; @@ -53,6 +52,7 @@ public class EscherSpgrRecord return 8 + size + bytesRemaining; } + @Override public int serialize( int offset, byte[] data, EscherSerializationListener listener ) { listener.beforeRecordSerialize( offset, getRecordId(), this ); @@ -70,15 +70,18 @@ public class EscherSpgrRecord return 8 + 16; } + @Override public int getRecordSize() { return 8 + 16; } + @Override public short getRecordId() { return RECORD_ID; } + @Override public String getRecordName() { return "Spgr"; } @@ -86,6 +89,7 @@ public class EscherSpgrRecord /** * @return the string representation of this record. */ + @Override public String toString() { return getClass().getName() + ":" + '\n' + " RecordId: 0x" + HexDump.toHex(RECORD_ID) + '\n' + @@ -111,6 +115,8 @@ public class EscherSpgrRecord /** * The starting top-left coordinate of child records. + * + * @return the top-left x coordinate */ public int getRectX1() { @@ -118,7 +124,9 @@ public class EscherSpgrRecord } /** - * The starting top-left coordinate of child records. + * The top-left coordinate of child records. + * + * @param x1 the top-left x coordinate */ public void setRectX1( int x1 ) { @@ -126,7 +134,9 @@ public class EscherSpgrRecord } /** - * The starting top-left coordinate of child records. + * The top-left coordinate of child records. + * + * @return the top-left y coordinate */ public int getRectY1() { @@ -134,7 +144,9 @@ public class EscherSpgrRecord } /** - * The starting top-left coordinate of child records. + * The top-left y coordinate of child records. + * + * @param y1 the top-left y coordinate */ public void setRectY1( int y1 ) { @@ -142,7 +154,9 @@ public class EscherSpgrRecord } /** - * The starting bottom-right coordinate of child records. + * The bottom-right x coordinate of child records. + * + * @return the bottom-right x coordinate */ public int getRectX2() { @@ -150,7 +164,9 @@ public class EscherSpgrRecord } /** - * The starting bottom-right coordinate of child records. + * The bottom-right x coordinate of child records. + * + * @param x2 the bottom-right x coordinate */ public void setRectX2( int x2 ) { @@ -158,7 +174,9 @@ public class EscherSpgrRecord } /** - * The starting bottom-right coordinate of child records. + * The bottom-right y coordinate of child records. + * + * @return the bottom-right y coordinate */ public int getRectY2() { @@ -166,7 +184,9 @@ public class EscherSpgrRecord } /** - * The starting bottom-right coordinate of child records. + * The bottom-right y coordinate of child records. + * + * @param rectY2 the bottom-right y coordinate */ public void setRectY2(int rectY2) { this.field_4_rectY2 = rectY2; diff --git a/src/java/org/apache/poi/ddf/EscherSplitMenuColorsRecord.java b/src/java/org/apache/poi/ddf/EscherSplitMenuColorsRecord.java index 443c003784..3467d0a44f 100644 --- a/src/java/org/apache/poi/ddf/EscherSplitMenuColorsRecord.java +++ b/src/java/org/apache/poi/ddf/EscherSplitMenuColorsRecord.java @@ -24,8 +24,6 @@ import org.apache.poi.util.RecordFormatException; /** * A list of the most recently used colours for the drawings contained in * this document. - * - * @author Glen Stampoultzis (glens at apache.org) */ public class EscherSplitMenuColorsRecord extends EscherRecord @@ -38,6 +36,7 @@ public class EscherSplitMenuColorsRecord private int field_3_color3; private int field_4_color4; + @Override public int fillFields(byte[] data, int offset, EscherRecordFactory recordFactory) { int bytesRemaining = readHeader( data, offset ); int pos = offset + 8; @@ -52,8 +51,8 @@ public class EscherSplitMenuColorsRecord return 8 + size + bytesRemaining; } - public int serialize( int offset, byte[] data, EscherSerializationListener listener ) - { + @Override + public int serialize( int offset, byte[] data, EscherSerializationListener listener ) { // int field_2_numIdClusters = field_5_fileIdClusters.length + 1; listener.beforeRecordSerialize( offset, getRecordId(), this ); @@ -71,15 +70,17 @@ public class EscherSplitMenuColorsRecord return getRecordSize(); } - public int getRecordSize() - { + @Override + public int getRecordSize() { return 8 + 4 * 4; } + @Override public short getRecordId() { return RECORD_ID; } + @Override public String getRecordName() { return "SplitMenuColors"; } @@ -87,6 +88,7 @@ public class EscherSplitMenuColorsRecord /** * @return a string representation of this record. */ + @Override public String toString() { return getClass().getName() + ":" + '\n' + " RecordId: 0x" + HexDump.toHex(RECORD_ID) + '\n' + @@ -111,44 +113,75 @@ public class EscherSplitMenuColorsRecord return builder.toString(); } - public int getColor1() - { + /** + * Gets the fill color + * + * @return the fill color + */ + public int getColor1() { return field_1_color1; } - public void setColor1( int field_1_color1 ) - { + /** + * Sets the fill color + * + * @param field_1_color1 the fill color + */ + public void setColor1( int field_1_color1 ) { this.field_1_color1 = field_1_color1; } - public int getColor2() - { + /** + * Gets the line color + * + * @return the line color + */ + public int getColor2() { return field_2_color2; } - public void setColor2( int field_2_color2 ) - { + /** + * Sets the line color + * + * @param field_2_color2 the line color + */ + public void setColor2( int field_2_color2 ) { this.field_2_color2 = field_2_color2; } - public int getColor3() - { + /** + * Gets the shadow color + * + * @return the shadow color + */ + public int getColor3() { return field_3_color3; } - public void setColor3( int field_3_color3 ) - { + /** + * Sets the shadow color + * + * @param field_3_color3 the shadow color + */ + public void setColor3( int field_3_color3 ) { this.field_3_color3 = field_3_color3; } - public int getColor4() - { + /** + * Gets the 3-D color + * + * @return the 3-D color + */ + public int getColor4() { return field_4_color4; } - public void setColor4( int field_4_color4 ) - { + /** + * Sets the 3-D color + * + * @param field_4_color4 the 3-D color + */ + public void setColor4( int field_4_color4 ) { this.field_4_color4 = field_4_color4; } - } diff --git a/src/java/org/apache/poi/ddf/EscherTertiaryOptRecord.java b/src/java/org/apache/poi/ddf/EscherTertiaryOptRecord.java index dcf2d45ba5..6182942119 100644 --- a/src/java/org/apache/poi/ddf/EscherTertiaryOptRecord.java +++ b/src/java/org/apache/poi/ddf/EscherTertiaryOptRecord.java @@ -19,13 +19,12 @@ package org.apache.poi.ddf; /** * "The OfficeArtTertiaryFOPT record specifies a table of OfficeArtRGFOPTE properties, as defined in section 2.3.1." * -- [MS-ODRAW] -- v20110608; Office Drawing Binary File Format - * - * @author Sergey Vladimirov (vlsergey {at} gmail {dot} com) */ public class EscherTertiaryOptRecord extends AbstractEscherOptRecord { public static final short RECORD_ID = (short) 0xF122; + @Override public String getRecordName() { return "TertiaryOpt"; diff --git a/src/java/org/apache/poi/ddf/EscherTextboxRecord.java b/src/java/org/apache/poi/ddf/EscherTextboxRecord.java index f694ecf18b..7798080008 100644 --- a/src/java/org/apache/poi/ddf/EscherTextboxRecord.java +++ b/src/java/org/apache/poi/ddf/EscherTextboxRecord.java @@ -40,6 +40,7 @@ public final class EscherTextboxRecord extends EscherRecord implements Cloneable { } + @Override public int fillFields(byte[] data, int offset, EscherRecordFactory recordFactory) { int bytesRemaining = readHeader( data, offset ); @@ -50,6 +51,7 @@ public final class EscherTextboxRecord extends EscherRecord implements Cloneable return bytesRemaining + 8; } + @Override public int serialize( int offset, byte[] data, EscherSerializationListener listener ) { listener.beforeRecordSerialize( offset, getRecordId(), this ); @@ -73,6 +75,8 @@ public final class EscherTextboxRecord extends EscherRecord implements Cloneable * does not seem to put anything here, but with PowerPoint this will * contain the bytes that make up a TextHeaderAtom followed by a * TextBytesAtom/TextCharsAtom + * + * @return the extra data */ public byte[] getData() { @@ -83,16 +87,29 @@ public final class EscherTextboxRecord extends EscherRecord implements Cloneable * Sets the extra data (in the parent application's format) to be * contained by the record. Used when the parent application changes * the contents. + * + * @param b the buffer which contains the data + * @param start the start position in the buffer + * @param length the length of the block */ public void setData(byte[] b, int start, int length) { thedata = new byte[length]; System.arraycopy(b,start,thedata,0,length); } + + /** + * Sets the extra data (in the parent application's format) to be + * contained by the record. Used when the parent application changes + * the contents. + * + * @param b the data + */ public void setData(byte[] b) { setData(b,0,b.length); } + @Override public int getRecordSize() { return 8 + thedata.length; @@ -107,10 +124,12 @@ public final class EscherTextboxRecord extends EscherRecord implements Cloneable return etr; } + @Override public String getRecordName() { return "ClientTextbox"; } + @Override public String toString() { String nl = System.getProperty( "line.separator" ); diff --git a/src/java/org/apache/poi/ddf/NullEscherSerializationListener.java b/src/java/org/apache/poi/ddf/NullEscherSerializationListener.java index 86155e4894..28a8c94a6b 100644 --- a/src/java/org/apache/poi/ddf/NullEscherSerializationListener.java +++ b/src/java/org/apache/poi/ddf/NullEscherSerializationListener.java @@ -19,14 +19,14 @@ package org.apache.poi.ddf; /** * Ignores all serialization events. - * - * @author Glen Stampoultzis (glens at apache.org) */ public class NullEscherSerializationListener implements EscherSerializationListener { + @Override public void beforeRecordSerialize(int offset, short recordId, EscherRecord record) { // do nothing } + @Override public void afterRecordSerialize(int offset, short recordId, int size, EscherRecord record) { // do nothing } diff --git a/src/java/org/apache/poi/ddf/UnknownEscherRecord.java b/src/java/org/apache/poi/ddf/UnknownEscherRecord.java index 11a5edb02e..6f871528a6 100644 --- a/src/java/org/apache/poi/ddf/UnknownEscherRecord.java +++ b/src/java/org/apache/poi/ddf/UnknownEscherRecord.java @@ -27,9 +27,6 @@ import org.apache.poi.util.LittleEndian; /** * This record is used whenever a escher record is encountered that * we do not explicitly support. - * - * @author Glen Stampoultzis (glens at apache.org) - * @author Zhang Zhang (zhangzzh at gmail.com) */ public final class UnknownEscherRecord extends EscherRecord implements Cloneable { private static final byte[] NO_BYTES = new byte[0]; @@ -42,13 +39,12 @@ public final class UnknownEscherRecord extends EscherRecord implements Cloneable _childRecords = new ArrayList(); } + @Override public int fillFields(byte[] data, int offset, EscherRecordFactory recordFactory) { int bytesRemaining = readHeader( data, offset ); /* - * Modified by Zhang Zhang * Have a check between avaliable bytes and bytesRemaining, * take the avaliable length if the bytesRemaining out of range. - * July 09, 2010 */ int avaliable = data.length - (offset + 8); if (bytesRemaining > avaliable) { @@ -77,6 +73,7 @@ public final class UnknownEscherRecord extends EscherRecord implements Cloneable return bytesRemaining + 8; } + @Override public int serialize(int offset, byte[] data, EscherSerializationListener listener) { listener.beforeRecordSerialize( offset, getRecordId(), this ); @@ -97,18 +94,24 @@ public final class UnknownEscherRecord extends EscherRecord implements Cloneable return pos - offset; } + /** + * @return the data which makes up this record + */ public byte[] getData() { return thedata; } + @Override public int getRecordSize() { return 8 + thedata.length; } + @Override public List getChildRecords() { return _childRecords; } + @Override public void setChildRecords(List childRecords) { _childRecords = childRecords; } @@ -122,10 +125,12 @@ public final class UnknownEscherRecord extends EscherRecord implements Cloneable return uer; } + @Override public String getRecordName() { return "Unknown 0x" + HexDump.toHex(getRecordId()); } + @Override public String toString() { StringBuffer children = new StringBuffer(); if (getChildRecords().size() > 0) {