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:
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
ConstructorsConstructorDescriptionEscherArrayProperty
(short propertyNumber, boolean isBlipId, byte[] complexData) EscherArrayProperty
(short id, byte[] complexData) -
Method Summary
Modifier and TypeMethodDescriptionbyte[]
getElement
(int index) int
int
short
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) toString()
Retrieves the string representation for this property.Methods inherited from class org.apache.poi.ddf.EscherComplexProperty
equals, getComplexData, getPropertySize, hashCode, serializeComplexPart, setComplexData
Methods inherited from class org.apache.poi.ddf.EscherProperty
getId, getName, getPropertyNumber, isBlipId, isComplex
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
Constructor Details
-
EscherArrayProperty
public EscherArrayProperty(short id, byte[] complexData) -
EscherArrayProperty
public EscherArrayProperty(short propertyNumber, boolean isBlipId, byte[] complexData)
-
-
Method Details
-
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
Description copied from class:EscherComplexProperty
Retrieves the string representation for this property.- Overrides:
toString
in classEscherComplexProperty
-
toXml
- 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
-