Package org.apache.poi.ddf
Class EscherContainerRecord
java.lang.Object
org.apache.poi.ddf.EscherRecord
org.apache.poi.ddf.EscherContainerRecord
- All Implemented Interfaces:
Cloneable,Iterable<EscherRecord>
Escher container records store other escher records as children.
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.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final shortstatic final shortstatic final shortstatic final shortstatic final shortstatic final short -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddChildBefore(EscherRecord record, int insertBeforeRecordId) Add a child record before the record with given recordIdvoidaddChildRecord(EscherRecord record) Append a child recordvoiddisplay(PrintWriter w, int indent) The display methods allows escher variables to print the record names according to their hierarchy.intfillFields(byte[] data, int pOffset, EscherRecordFactory recordFactory) The contract of this method is to deserialize an escher record including it's children.protected Object[][]For the purpose of providing toString() and toXml() a subclass can either override those methods or provide a Object[][] array in the form{ { "Attribute Name (Header)", value, "optional attribute", value }, ... }.getChild(int index) Returns the indexed child record.<T extends EscherRecord>
TgetChildById(short recordId) Returns all of our children which are also EscherContainers (may be 0, 1, or vary rarely 2 or 3)Subclasses should return the short name for this escher record.voidgetRecordsById(short recordId, List<EscherRecord> out) Recursively find records with the specified record IDintSubclasses should effeciently return the number of bytes required to serialize the record.booleanhasChildOfType(short recordId) Do any of our (top level) children have the given recordId?iterator()booleanremoveChildRecord(EscherRecord toBeRemoved) Removes the given escher record from the child listintserialize(int offset, byte[] data, EscherSerializationListener listener) Serializes the record to an existing byte array.voidsetChildRecords(List<EscherRecord> childRecords) replaces the internal child list with the contents of the supplied childRecordsMethods inherited from class org.apache.poi.ddf.EscherRecord
clone, fillFields, getInstance, getOptions, getRecordId, getVersion, isContainerRecord, readHeader, readInstance, serialize, serialize, setInstance, setOptions, setRecordId, setVersion, toString, toXml, toXmlMethods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface java.lang.Iterable
forEach, spliterator
-
Field Details
-
DGG_CONTAINER
public static final short DGG_CONTAINER- See Also:
-
BSTORE_CONTAINER
public static final short BSTORE_CONTAINER- See Also:
-
DG_CONTAINER
public static final short DG_CONTAINER- See Also:
-
SPGR_CONTAINER
public static final short SPGR_CONTAINER- See Also:
-
SP_CONTAINER
public static final short SP_CONTAINER- See Also:
-
SOLVER_CONTAINER
public static final short SOLVER_CONTAINER- See Also:
-
-
Constructor Details
-
EscherContainerRecord
public EscherContainerRecord()
-
-
Method Details
-
fillFields
Description copied from class:EscherRecordThe contract of this method is to deserialize an escher record including it's children.- Specified by:
fillFieldsin classEscherRecord- Parameters:
data- The byte array containing the serialized escher records.pOffset- The offset into the byte array.recordFactory- A factory for creating new escher records.- Returns:
- The number of bytes written.
-
serialize
Description copied from class:EscherRecordSerializes the record to an existing byte array.- Specified by:
serializein classEscherRecord- Parameters:
offset- the offset within the byte arraydata- the data array to serialize tolistener- 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.- Returns:
- the number of bytes written.
-
getRecordSize
public int getRecordSize()Description copied from class:EscherRecordSubclasses should effeciently return the number of bytes required to serialize the record.- Specified by:
getRecordSizein classEscherRecord- Returns:
- number of bytes
-
hasChildOfType
public boolean hasChildOfType(short recordId) Do any of our (top level) children have the given recordId?- Parameters:
recordId- the recordId of the child- Returns:
- true, if any child has the given recordId
-
getChild
Description copied from class:EscherRecordReturns the indexed child record.- Overrides:
getChildin classEscherRecord- Parameters:
index- the index of the child within the child records- Returns:
- the indexed child record
-
getChildRecords
- Overrides:
getChildRecordsin classEscherRecord- Returns:
- a copy of the list of all the child records of the container.
- See Also:
-
iterator
- Specified by:
iteratorin interfaceIterable<EscherRecord>- Returns:
- an iterator over the child records
-
setChildRecords
replaces the internal child list with the contents of the supplied childRecords- Overrides:
setChildRecordsin classEscherRecord- Parameters:
childRecords- Not used in base implementation.
-
removeChildRecord
Removes the given escher record from the child list- Parameters:
toBeRemoved- the escher record to be removed- Returns:
- true, if the record was found and removed
-
getChildContainers
Returns all of our children which are also EscherContainers (may be 0, 1, or vary rarely 2 or 3)- Returns:
- EscherContainer children
-
getRecordName
Description copied from class:EscherRecordSubclasses should return the short name for this escher record.- Specified by:
getRecordNamein classEscherRecord- Returns:
- the short name for this escher record
-
display
Description copied from class:EscherRecordThe display methods allows escher variables to print the record names according to their hierarchy.- Overrides:
displayin classEscherRecord- Parameters:
w- The print writer to output to.indent- The current indent level.
-
addChildRecord
Append a child record- Parameters:
record- the record to be added
-
addChildBefore
Add a child record before the record with given recordId- Parameters:
record- the record to be addedinsertBeforeRecordId- the recordId of the next sibling
-
getChildById
-
getRecordsById
Recursively find records with the specified record ID- Parameters:
recordId- the recordId to be searched forout- - list to store found records
-
getAttributeMap
Description copied from class:EscherRecordFor the purpose of providing toString() and toXml() a subclass can either override those methods or provide a Object[][] array in the form{ { "Attribute Name (Header)", value, "optional attribute", value }, ... }.Null values won't be printed.
The attributes record, version, instance, options must not be returned.
- Specified by:
getAttributeMapin classEscherRecord- Returns:
- the attribute map
-