public int serialize(int offset, byte[] data, EscherSerializationListener listener) {listener.beforeRecordSerialize( offset, getRecordId(), this );LittleEndian.putShort(data, offset, getOptions());LittleEndian.putShort(data, offset+2, getRecordId());int remainingBytes = thedata.length;for (EscherRecord r : _childRecords) {remainingBytes += r.getRecordSize();}LittleEndian.putInt(data, offset+4, remainingBytes);System.arraycopy(thedata, 0, data, offset+8, thedata.length);int pos = offset+8+thedata.length;for (EscherRecord r : _childRecords) {pos += r.serialize(pos, data, listener );}listener.afterRecordSerialize( pos, getRecordId(), pos - offset, this );return pos - offset;}

public int serialize ( int offset , byte [ ] data , EscherSerializationListener listener ) { listener . beforeRecordSerialize ( offset , getRecordId ( ) , this ) ; LittleEndian . putShort ( data , offset , getOptions ( ) ) ; LittleEndian . putShort ( data , offset + 2 , getRecordId ( ) ) ; int remainingBytes = thedata . length ; for ( EscherRecord r : _childRecords ) { remainingBytes += r . getRecordSize ( ) ; } LittleEndian . putInt ( data , offset + 4 , remainingBytes ) ; System . arraycopy ( thedata , 0 , data , offset + 8 , thedata . length ) ; int pos = offset + 8 + thedata . length ; for ( EscherRecord r : _childRecords ) { pos += r . serialize ( pos , data , listener ) ; } listener . afterRecordSerialize ( pos , getRecordId ( ) , pos - offset , this ) ; return pos - offset ; }
public override int Serialize(int offset, byte[] data, EscherSerializationListener listener){listener.BeforeRecordSerialize(offset, RecordId, this);LittleEndian.PutShort(data, offset, Options);LittleEndian.PutShort(data, offset + 2, RecordId);int remainingBytes = _thedata.Length;for (IEnumerator iterator = ChildRecords.GetEnumerator(); iterator.MoveNext(); ){EscherRecord r = (EscherRecord)iterator.Current;remainingBytes += r.RecordSize;}LittleEndian.PutInt(data, offset + 4, remainingBytes);Array.Copy(_thedata, 0, data, offset + 8, _thedata.Length);int pos = offset + 8 + _thedata.Length;for (IEnumerator iterator = ChildRecords.GetEnumerator(); iterator.MoveNext(); ){EscherRecord r = (EscherRecord)iterator.Current;pos += r.Serialize(pos, data);}listener.AfterRecordSerialize(pos, RecordId, pos - offset, this);return pos - offset;}
