Package org.apache.poi.ddf
Class EscherArrayProperty
- java.lang.Object
-
- org.apache.poi.ddf.EscherProperty
-
- org.apache.poi.ddf.EscherComplexProperty
-
- org.apache.poi.ddf.EscherArrayProperty
-
- All Implemented Interfaces:
java.lang.Iterable<byte[]>
public final class EscherArrayProperty extends EscherComplexProperty implements java.lang.Iterable<byte[]>
Escher array properties are the most weird construction ever invented with all sorts of special cases. I'm hopeful I've got them all.
-
-
Constructor Summary
Constructors Constructor Description EscherArrayProperty(short propertyNumber, boolean isBlipId, byte[] complexData)
EscherArrayProperty(short id, byte[] complexData)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description byte[]
getElement(int index)
int
getNumberOfElementsInArray()
int
getNumberOfElementsInMemory()
short
getSizeOfElements()
java.util.Iterator<byte[]>
iterator()
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 arbitrary reasons.void
setElement(int index, byte[] element)
void
setNumberOfElementsInArray(int numberOfElements)
void
setNumberOfElementsInMemory(int numberOfElements)
void
setSizeOfElements(int sizeOfElements)
java.lang.String
toString()
Retrieves the string representation for this property.java.lang.String
toXml(java.lang.String tab)
-
Methods inherited from class org.apache.poi.ddf.EscherComplexProperty
equals, getComplexData, getPropertySize, hashCode, serializeComplexPart
-
Methods inherited from class org.apache.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 java.lang.String toString()
Description copied from class:EscherComplexProperty
Retrieves the string representation for this property.- Overrides:
toString
in classEscherComplexProperty
-
toXml
public java.lang.String toXml(java.lang.String tab)
- Overrides:
toXml
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 arbitrary 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
- Parameters:
data
- the buffer to write topos
- the starting position- Returns:
- the length of the part
-
iterator
public java.util.Iterator<byte[]> iterator()
- Specified by:
iterator
in interfacejava.lang.Iterable<byte[]>
-
-