org.apache.poi.ddf
Class UnknownEscherRecord

java.lang.Object
  extended by org.apache.poi.ddf.EscherRecord
      extended by org.apache.poi.ddf.UnknownEscherRecord
All Implemented Interfaces:
java.lang.Cloneable

public final class UnknownEscherRecord
extends EscherRecord
implements java.lang.Cloneable

This record is used whenever a escher record is encountered that we do not explicitly support.


Constructor Summary
UnknownEscherRecord()
           
 
Method Summary
 void addChildRecord(EscherRecord childRecord)
           
 UnknownEscherRecord clone()
          Escher records may need to be clonable in the future.
 int fillFields(byte[] data, int offset, EscherRecordFactory recordFactory)
          The contract of this method is to deserialize an escher record including it's children.
protected  java.lang.Object[][] getAttributeMap()
          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 }, ...
 java.util.List<EscherRecord> getChildRecords()
           
 byte[] getData()
           
 java.lang.String getRecordName()
          Subclasses should return the short name for this escher record.
 int getRecordSize()
          Subclasses should effeciently return the number of bytes required to serialize the record.
 int serialize(int offset, byte[] data, EscherSerializationListener listener)
          Serializes the record to an existing byte array.
 void setChildRecords(java.util.List<EscherRecord> childRecords)
          Sets the child records for this record.
 
Methods inherited from class org.apache.poi.ddf.EscherRecord
display, fillFields, getChild, getInstance, getOptions, getRecordId, getVersion, isContainerRecord, readHeader, readInstance, serialize, serialize, setInstance, setOptions, setRecordId, setVersion, toString, toXml, toXml
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

UnknownEscherRecord

public UnknownEscherRecord()
Method Detail

fillFields

public int fillFields(byte[] data,
                      int offset,
                      EscherRecordFactory recordFactory)
Description copied from class: EscherRecord
The contract of this method is to deserialize an escher record including it's children.

Specified by:
fillFields in class EscherRecord
Parameters:
data - The byte array containing the serialized escher records.
offset - The offset into the byte array.
recordFactory - A factory for creating new escher records.
Returns:
The number of bytes written.

serialize

public int serialize(int offset,
                     byte[] data,
                     EscherSerializationListener listener)
Description copied from class: EscherRecord
Serializes the record to an existing byte array.

Specified by:
serialize in class EscherRecord
Parameters:
offset - the offset within the byte array
data - the data array to serialize to
listener - 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.

getData

public byte[] getData()
Returns:
the data which makes up this record

getRecordSize

public int getRecordSize()
Description copied from class: EscherRecord
Subclasses should effeciently return the number of bytes required to serialize the record.

Specified by:
getRecordSize in class EscherRecord
Returns:
number of bytes

getChildRecords

public java.util.List<EscherRecord> getChildRecords()
Overrides:
getChildRecords in class EscherRecord
Returns:
Returns the children of this record. By default this will be an empty list. EscherCotainerRecord is the only record that may contain children.
See Also:
EscherContainerRecord

setChildRecords

public void setChildRecords(java.util.List<EscherRecord> childRecords)
Description copied from class: EscherRecord
Sets the child records for this record. By default this will throw an exception as only EscherContainerRecords may have children.

Overrides:
setChildRecords in class EscherRecord
Parameters:
childRecords - Not used in base implementation.

clone

public UnknownEscherRecord clone()
Description copied from class: EscherRecord
Escher records may need to be clonable in the future.

Overrides:
clone in class EscherRecord
Returns:
the cloned object

getRecordName

public java.lang.String getRecordName()
Description copied from class: EscherRecord
Subclasses should return the short name for this escher record.

Specified by:
getRecordName in class EscherRecord
Returns:
the short name for this escher record

addChildRecord

public void addChildRecord(EscherRecord childRecord)

getAttributeMap

protected java.lang.Object[][] getAttributeMap()
Description copied from class: EscherRecord
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 }, ... } .

Null values won't be printed.

The attributes record, version, instance, options must not be returned.

Specified by:
getAttributeMap in class EscherRecord
Returns:
the attribute map