org.apache.poi.hslf.record
Class RecordContainer

java.lang.Object
  extended by org.apache.poi.hslf.record.Record
      extended by org.apache.poi.hslf.record.RecordContainer
Direct Known Subclasses:
AnimationInfo, Comment2000, DummyRecordWithChildren, EscherTextboxWrapper, ExEmbed, ExHyperlink, ExMCIMovie, ExObjList, ExVideoContainer, FontCollection, HeadersFootersContainer, InteractiveInfo, PositionDependentRecordContainer, SlideListWithText, Sound, SoundCollection

public abstract class RecordContainer
extends Record

Abstract class which all container records will extend. Providers helpful methods for writing child records out to disk

Author:
Nick Burch

Field Summary
protected  Record[] _children
           
 
Fields inherited from class org.apache.poi.hslf.record.Record
logger
 
Constructor Summary
RecordContainer()
           
 
Method Summary
 void addChildAfter(Record newChild, Record after)
          Adds the given Child Record after the supplied record
 void addChildBefore(Record newChild, Record before)
          Adds the given Child Record before the supplied record
 void appendChildRecord(Record newChild)
          Add a new child record onto a record's list of children.
 Record findFirstOfType(long type)
          Finds the first child record of the given type, or null if none of the child records are of the given type.
 Record[] getChildRecords()
          Return any children
static void handleParentAwareRecords(RecordContainer br)
          Find the records that are parent-aware, and tell them who their parent is
 boolean isAnAtom()
          We're not an atom
 void moveChildBefore(Record child, Record before)
          Moves the given Child Record to before the supplied record
 void moveChildrenAfter(Record firstChild, int number, Record after)
          Moves the given Child Records to after the supplied record
 void moveChildrenBefore(Record firstChild, int number, Record before)
          Moves the given Child Records to before the supplied record
 Record removeChild(Record ch)
          Remove a child record from this record container
 void setChildRecord(Record[] records)
          Set child records.
 void writeOut(byte headerA, byte headerB, long type, Record[] children, java.io.OutputStream out)
          Write out our header, and our children.
 
Methods inherited from class org.apache.poi.hslf.record.Record
buildRecordAtOffset, createRecordForType, findChildRecords, getRecordType, writeLittleEndian, writeLittleEndian, writeOut
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_children

protected Record[] _children
Constructor Detail

RecordContainer

public RecordContainer()
Method Detail

getChildRecords

public Record[] getChildRecords()
Return any children

Specified by:
getChildRecords in class Record

isAnAtom

public boolean isAnAtom()
We're not an atom

Specified by:
isAnAtom in class Record

findFirstOfType

public Record findFirstOfType(long type)
Finds the first child record of the given type, or null if none of the child records are of the given type. Does not descend.


removeChild

public Record removeChild(Record ch)
Remove a child record from this record container

Parameters:
ch - the child to remove
Returns:
the removed record

appendChildRecord

public void appendChildRecord(Record newChild)
Add a new child record onto a record's list of children.


addChildAfter

public void addChildAfter(Record newChild,
                          Record after)
Adds the given Child Record after the supplied record

Parameters:
newChild -
after -

addChildBefore

public void addChildBefore(Record newChild,
                           Record before)
Adds the given Child Record before the supplied record

Parameters:
newChild -
before -

moveChildBefore

public void moveChildBefore(Record child,
                            Record before)
Moves the given Child Record to before the supplied record


moveChildrenBefore

public void moveChildrenBefore(Record firstChild,
                               int number,
                               Record before)
Moves the given Child Records to before the supplied record


moveChildrenAfter

public void moveChildrenAfter(Record firstChild,
                              int number,
                              Record after)
Moves the given Child Records to after the supplied record


setChildRecord

public void setChildRecord(Record[] records)
Set child records.

Parameters:
records - the new child records

writeOut

public void writeOut(byte headerA,
                     byte headerB,
                     long type,
                     Record[] children,
                     java.io.OutputStream out)
              throws java.io.IOException
Write out our header, and our children.

Parameters:
headerA - the first byte of the header
headerB - the second byte of the header
type - the record type
children - our child records
out - the stream to write to
Throws:
java.io.IOException

handleParentAwareRecords

public static void handleParentAwareRecords(RecordContainer br)
Find the records that are parent-aware, and tell them who their parent is



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