org.apache.poi.hssf.record
Class MergeCellsRecord

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

public class MergeCellsRecord
extends Record

Title: Merged Cells Record
Description: Optional record defining a square area of cells to "merged" into one cell.
REFERENCE: NONE (UNDOCUMENTED PRESENTLY)

Version:
2.0-pre
Author:
Andrew C. Oliver (acoliver at apache dot org)

Nested Class Summary
 class MergeCellsRecord.MergedRegion
          this is a low level representation of a MergedRegion of cells.
 
Field Summary
static short sid
           
 
Constructor Summary
MergeCellsRecord()
           
MergeCellsRecord(RecordInputStream in)
          Constructs a MergedCellsRecord and sets its fields appropriately
 
Method Summary
 int addArea(int rowfrom, short colfrom, int rowto, short colto)
          Add an area to consider a merged cell.
 java.lang.Object clone()
           
protected  void fillFields(RecordInputStream in)
          called by the constructor, should set class level fields.
 MergeCellsRecord.MergedRegion getAreaAt(int index)
          return the MergedRegion at the given index.
 short getNumAreas()
          get the number of merged areas.
 int getRecordSize()
          gives the current serialized size of the record.
 short getSid()
          return the non static version of the id for this record.
 void removeAreaAt(int area)
          essentially unmerge the cells in the "area" stored at the passed in index
 int serialize(int offset, byte[] data)
          called by the class that is responsible for writing this sucker.
 void setNumAreas(short numareas)
          Deprecated. We now link the size to the actual array of merged regions
 java.lang.String toString()
          get a string representation of the record (for biffview/debugging)
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, isInValueSection, isValue, 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

MergeCellsRecord

public MergeCellsRecord()

MergeCellsRecord

public MergeCellsRecord(RecordInputStream in)
Constructs a MergedCellsRecord and sets its fields appropriately

Parameters:
in - the RecordInputstream to read the record from
Method Detail

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

getNumAreas

public short getNumAreas()
get the number of merged areas. If this drops down to 0 you should just go ahead and delete the record.

Returns:
number of areas

setNumAreas

public void setNumAreas(short numareas)
Deprecated. We now link the size to the actual array of merged regions

set the number of merged areas. You do not need to call this if you use addArea, it will be incremented automatically or decremented when an area is removed. If you are setting this to 0 then you are a terrible person. Just remove the record. (just kidding about you being a terrible person..hehe)

Parameters:
numareas - number of areas
See Also:
getNumAreas()

addArea

public int addArea(int rowfrom,
                   short colfrom,
                   int rowto,
                   short colto)
Add an area to consider a merged cell. The index returned is only gauranteed to be correct provided you do not add ahead of or remove ahead of it (in which case you should increment or decrement appropriately....in other words its an arrayList)

Parameters:
rowfrom - - the upper left hand corner's row
colfrom - - the upper left hand corner's col
rowto - - the lower right hand corner's row
colto - - the lower right hand corner's col
Returns:
new index of said area (don't depend on it if you add/remove)

removeAreaAt

public void removeAreaAt(int area)
essentially unmerge the cells in the "area" stored at the passed in index

Parameters:
area - index

getAreaAt

public MergeCellsRecord.MergedRegion getAreaAt(int index)
return the MergedRegion at the given index.

Returns:
MergedRegion representing the area that is Merged (r1,c1 - r2,c2)

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

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

serialize

public int serialize(int offset,
                     byte[] data)
Description copied from class: Record
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 Record
Parameters:
offset - to begin writing at
data - byte array containing instance data
Returns:
number of bytes written

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

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

clone

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


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