## 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

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.

Author:
  Glen Stampoultzis (glens at apache.org), Michael Zalewski (zalewski at optonline.net)

Constructor Summary
`AbstractEscherHolderRecord()`
`AbstractEscherHolderRecord(RecordInputStream in)`

Method Summary
`boolean` `addEscherRecord(EscherRecord element)`
`void` `addEscherRecord(int index, EscherRecord element)`
`void` `clearEscherRecords()`
`java.lang.Object` `clone()`
`protected void` `convertRawBytesToEscherRecords()`
`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 found
`EscherContainerRecord` `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)`
`java.util.List<EscherRecord>` `getEscherRecords()`
`byte[]` `getRawData()`
`protected abstract java.lang.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)`
`java.lang.String` `toString()` get a string representation of the record (for biffview/debugging)

Methods inherited from class org.apache.poi.hssf.record.Record
`cloneViaReserialise, serialize`

Methods inherited from class java.lang.Object
`equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Constructor Detail

### AbstractEscherHolderRecord

    public AbstractEscherHolderRecord()

### AbstractEscherHolderRecord

    public AbstractEscherHolderRecord(RecordInputStream in)

Method Detail

### convertRawBytesToEscherRecords

    protected void convertRawBytesToEscherRecords()

### toString

    public java.lang.String toString()

  Description copied from class: `Record`
  get a string representation of the record (for biffview/debugging)

  Overrides:
    `toString` in class `Record`

### getRecordName

    protected abstract java.lang.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 class `RecordBase`
  Parameters:
    `offset` - to begin writing at
    `data` - 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 class `RecordBase`

### getSid

    public abstract short getSid()

  Description copied from class: `Record`
  return the non static version of the id for this record.

  Specified by:
    `getSid` in class `Record`

### clone

    public java.lang.Object clone()

  Overrides:
    `clone` in class `Record`

### addEscherRecord

    public void addEscherRecord(int index,
                                EscherRecord element)

### addEscherRecord

    public boolean addEscherRecord(EscherRecord element)

### getEscherRecords

    public java.util.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.

### findFirstWithId

    public EscherRecord findFirstWithId(short id)

  Descends into all our children, returning the first EscherRecord with the given id, or null if none 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.

### 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.

Copyright 2012 The Apache Software Foundation or its licensors, as applicable.