org.apache.poi.hssf.record
Class SharedFormulaRecord

java.lang.Object
  extended by org.apache.poi.hssf.record.Record
      extended by org.apache.poi.hssf.record.SharedFormulaRecord

public class SharedFormulaRecord
extends Record

Title: SharedFormulaRecord Description: Primarily used as an excel optimization so that multiple similar formulas are not written out too many times. We should recognize this record and serialize as is since this is used when reading templates.

Note: the documentation says that the SID is BC where biffviewer reports 4BC. The hex dump shows that the two byte sid representation to be 'BC 04' that is consistent with the other high byte record types.

Author:
Danny Mui at apache dot org

Field Summary
static short sid
           
 
Constructor Summary
SharedFormulaRecord()
           
SharedFormulaRecord(RecordInputStream in)
           
 
Method Summary
 java.lang.Object clone()
           
 void convertSharedFormulaRecord(FormulaRecord formula)
          Creates a non shared formula from the shared formula counter part
protected  void fillFields(RecordInputStream in)
          called by the constructor, should set class level fields.
 short getExpressionLength()
           
 short getFirstColumn()
           
 int getFirstRow()
           
 short getLastColumn()
           
 int getLastRow()
           
 int getRecordSize()
          gives the current serialized size of the record.
 short getSid()
          return the non static version of the id for this record.
 boolean isFormulaInShared(FormulaRecord formula)
          Are we shared by the supplied formula record?
 boolean isInValueSection()
          Mirroring formula records so it is registered in the ValueRecordsAggregate
 boolean isValue()
          Register it in the ValueRecordsAggregate so it can go into the FormulaRecordAggregate
 int serialize(int offset, byte[] data)
          spit the record out AS IS.
 java.lang.String toString()
          print a sort of string representation ([SHARED FORMULA RECORD] id = x [/SHARED FORMULA RECORD])
protected  void validateSid(short id)
          called by constructor, should throw runtime exception in the event of a record passed with a differing ID.
 
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
 

Field Detail

sid

public static final short sid
See Also:
Constant Field Values
Constructor Detail

SharedFormulaRecord

public SharedFormulaRecord()

SharedFormulaRecord

public SharedFormulaRecord(RecordInputStream in)
Parameters:
in - the RecordInputstream to read the record from
Method Detail

validateSid

protected void validateSid(short id)
Description copied from class: Record
called by constructor, should throw runtime exception in the event of a record passed with a differing ID.

Specified by:
validateSid in class Record
Parameters:
id - alleged id for this record

getFirstRow

public int getFirstRow()

getLastRow

public int getLastRow()

getFirstColumn

public short getFirstColumn()

getLastColumn

public short getLastColumn()

getExpressionLength

public short getExpressionLength()

serialize

public int serialize(int offset,
                     byte[] data)
spit the record out AS IS. no interperatation or identification

Specified by:
serialize in class Record
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: Record
gives the current serialized size of the record. Should include the sid and reclength (4 bytes).

Overrides:
getRecordSize in class Record

toString

public java.lang.String toString()
print a sort of string representation ([SHARED FORMULA RECORD] id = x [/SHARED FORMULA RECORD])

Overrides:
toString in class Record

getSid

public short getSid()
Description copied from class: Record
return the non static version of the id for this record.

Specified by:
getSid in class Record

fillFields

protected void fillFields(RecordInputStream in)
Description copied from class: Record
called by the constructor, should set class level fields. Should throw runtime exception for bad/icomplete data.

Specified by:
fillFields in class Record
Parameters:
in - the RecordInputstream to read the record from

isFormulaInShared

public boolean isFormulaInShared(FormulaRecord formula)
Are we shared by the supplied formula record?


convertSharedFormulaRecord

public void convertSharedFormulaRecord(FormulaRecord formula)
Creates a non shared formula from the shared formula counter part


isInValueSection

public boolean isInValueSection()
Mirroring formula records so it is registered in the ValueRecordsAggregate

Overrides:
isInValueSection in class Record

isValue

public boolean isValue()
Register it in the ValueRecordsAggregate so it can go into the FormulaRecordAggregate

Overrides:
isValue in class Record

clone

public java.lang.Object clone()
Overrides:
clone in class Record


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