Package loci.poi.ddf
Class EscherArrayProperty
- java.lang.Object
-
- loci.poi.ddf.EscherProperty
-
- loci.poi.ddf.EscherComplexProperty
-
- loci.poi.ddf.EscherArrayProperty
-
public class EscherArrayProperty extends EscherComplexProperty
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)
-
-
Field Summary
-
Fields inherited from class loci.poi.ddf.EscherProperty
id
-
-
Constructor Summary
Constructors Constructor Description EscherArrayProperty(short propertyNumber, boolean isBlipId, byte[] complexData)
EscherArrayProperty(short id, byte[] complexData)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static int
getActualSizeOfElements(short sizeOfElements)
Sometimes the element size is stored as a negative number.byte[]
getElement(int index)
int
getNumberOfElementsInArray()
int
getNumberOfElementsInMemory()
short
getSizeOfElements()
int
serializeSimplePart(byte[] data, int pos)
Serializes the simple part of this property.int
setArrayData(byte[] data, int offset)
We have this method because the way in which arrays in escher works is screwed for seemly arbitary reasons.void
setElement(int index, byte[] element)
void
setNumberOfElementsInArray(int numberOfElements)
void
setNumberOfElementsInMemory(int numberOfElements)
void
setSizeOfElements(int sizeOfElements)
String
toString()
Retrieves the string representation for this property.-
Methods inherited from class loci.poi.ddf.EscherComplexProperty
equals, getComplexData, getPropertySize, hashCode, serializeComplexPart
-
Methods inherited from class loci.poi.ddf.EscherProperty
getId, getName, getPropertyNumber, isBlipId, isComplex
-
-
-
-
Method Detail
-
getNumberOfElementsInArray
public int getNumberOfElementsInArray()
-
setNumberOfElementsInArray
public void setNumberOfElementsInArray(int numberOfElements)
-
getNumberOfElementsInMemory
public int getNumberOfElementsInMemory()
-
setNumberOfElementsInMemory
public void setNumberOfElementsInMemory(int numberOfElements)
-
getSizeOfElements
public short getSizeOfElements()
-
setSizeOfElements
public void setSizeOfElements(int sizeOfElements)
-
getElement
public byte[] getElement(int index)
-
setElement
public void setElement(int index, byte[] element)
-
toString
public String toString()
Description copied from class:EscherComplexProperty
Retrieves the string representation for this property.- Overrides:
toString
in classEscherComplexProperty
-
setArrayData
public int setArrayData(byte[] data, int offset)
We have this method because the way in which arrays in escher works is screwed for seemly arbitary reasons. While most properties are fairly consistent and have a predictable array size, escher arrays have special cases.- Parameters:
data
- The data array containing the escher array informationoffset
- The offset into the array to start reading from.- Returns:
- the number of bytes used by this complex property.
-
serializeSimplePart
public int serializeSimplePart(byte[] data, int pos)
Serializes the simple part of this property. ie the first 6 bytes. Needs special code to handle the case when the size doesn't include the size of the header block- Overrides:
serializeSimplePart
in classEscherComplexProperty
-
getActualSizeOfElements
public static int getActualSizeOfElements(short sizeOfElements)
Sometimes the element size is stored as a negative number. We negate it and shift it to get the real value.
-
-