Package org.apache.poi.hssf.record
Class AbstractEscherHolderRecord
- java.lang.Object
-
- org.apache.poi.hssf.record.RecordBase
-
- org.apache.poi.hssf.record.Record
-
- org.apache.poi.hssf.record.AbstractEscherHolderRecord
-
- All Implemented Interfaces:
Duplicatable
,GenericRecord
- Direct Known Subclasses:
DrawingGroupRecord
,DrawingRecordForBiffViewer
,EscherAggregate
public abstract class AbstractEscherHolderRecord extends Record
The escher container record is used to hold escher records. It is abstract and must be subclassed for maximum benefit.Child records are deserialized on-demand unless the
poi.deserialize.escher
System Property is defined.
-
-
Constructor Summary
Constructors Constructor Description AbstractEscherHolderRecord()
AbstractEscherHolderRecord(AbstractEscherHolderRecord other)
AbstractEscherHolderRecord(RecordInputStream in)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void
addEscherRecord(int index, EscherRecord element)
boolean
addEscherRecord(EscherRecord element)
void
clearEscherRecords()
protected void
convertRawBytesToEscherRecords()
Deprecated.Calldecode()
instead.abstract AbstractEscherHolderRecord
copy()
void
decode()
Convert raw data to escher records.EscherRecord
findFirstWithId(short id)
Descends into all our children, returning the first EscherRecord with the given id, or null if none foundEscherContainerRecord
getEscherContainer()
If we have a EscherContainerRecord as one of our children (and most top level escher holders do), then return that.EscherRecord
getEscherRecord(int index)
List<EscherRecord>
getEscherRecords()
List<EscherRecord>
getGenericChildren()
byte[]
getRawData()
protected abstract String
getRecordName()
int
getRecordSize()
gives the current serialized size of the record.abstract short
getSid()
return the non static version of the id for this record.void
join(AbstractEscherHolderRecord record)
Big drawing group records are split but it's easier to deal with them as a whole group so we need to join them together.void
processContinueRecord(byte[] record)
int
serialize(int offset, byte[] data)
called by the class that is responsible for writing this sucker.void
setRawData(byte[] rawData)
-
Methods inherited from class org.apache.poi.hssf.record.Record
cloneViaReserialise, getGenericRecordType, serialize, toString
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.apache.poi.common.usermodel.GenericRecord
getGenericProperties
-
-
-
-
Constructor Detail
-
AbstractEscherHolderRecord
public AbstractEscherHolderRecord()
-
AbstractEscherHolderRecord
public AbstractEscherHolderRecord(AbstractEscherHolderRecord other)
-
AbstractEscherHolderRecord
public AbstractEscherHolderRecord(RecordInputStream in)
-
-
Method Detail
-
convertRawBytesToEscherRecords
@Removal(version="5.3") @Deprecated protected void convertRawBytesToEscherRecords()
Deprecated.Calldecode()
instead.
-
getRecordName
protected abstract String getRecordName()
-
serialize
public int serialize(int offset, byte[] data)
Description copied from class:RecordBase
called by the class that is responsible for writing this sucker. Subclasses should implement this so that their data is passed back in a byte array.- Specified by:
serialize
in classRecordBase
- Parameters:
offset
- to begin writing atdata
- byte array containing instance data- Returns:
- number of bytes written
-
getRecordSize
public int getRecordSize()
Description copied from class:RecordBase
gives the current serialized size of the record. Should include the sid and reclength (4 bytes).- Specified by:
getRecordSize
in classRecordBase
- Returns:
- the record size
-
getSid
public abstract short getSid()
Description copied from class:Record
return the non static version of the id for this record.
-
copy
public abstract AbstractEscherHolderRecord copy()
- Specified by:
copy
in interfaceDuplicatable
- Specified by:
copy
in classRecord
- Returns:
- a deep copy of the implementing class / instance
-
addEscherRecord
public void addEscherRecord(int index, EscherRecord element)
-
addEscherRecord
public boolean addEscherRecord(EscherRecord element)
-
getEscherRecords
public List<EscherRecord> getEscherRecords()
-
clearEscherRecords
public void clearEscherRecords()
-
getEscherContainer
public EscherContainerRecord getEscherContainer()
If we have a EscherContainerRecord as one of our children (and most top level escher holders do), then return that.- Returns:
- the EscherContainerRecord or
null
if no child is a container record
-
findFirstWithId
public EscherRecord findFirstWithId(short id)
Descends into all our children, returning the first EscherRecord with the given id, or null if none found- Parameters:
id
- the record to look for- Returns:
- the record or
null
if it can't be found
-
getEscherRecord
public EscherRecord getEscherRecord(int index)
-
join
public void join(AbstractEscherHolderRecord record)
Big drawing group records are split but it's easier to deal with them as a whole group so we need to join them together.- Parameters:
record
- the record data to concatenate to the end
-
processContinueRecord
public void processContinueRecord(byte[] record)
-
getRawData
public byte[] getRawData()
-
setRawData
public void setRawData(byte[] rawData)
-
decode
public void decode()
Convert raw data to escher records.
-
getGenericChildren
public List<EscherRecord> getGenericChildren()
-
-