<action dev="POI-DEVELOPERS" type="add">Created a common interface for handling Excel files, irrespective of if they are .xls or .xlsx</action>
</release>
<release version="3.2-alpha1" date="2008-??-??">
+ <action dev="POI-DEVELOPERS" type="fix">45876 - fixed BoundSheetRecord to allow sheet names longer than 31 chars</action>
<action dev="POI-DEVELOPERS" type="add">45890 - fixed HSSFSheet.shiftRows to also update conditional formats</action>
<action dev="POI-DEVELOPERS" type="add">45865 modified Formula Parser/Evaluator to handle cross-worksheet formulas</action>
<action dev="POI-DEVELOPERS" type="add">Optimised the FormulaEvaluator to take cell dependencies into account</action>
<action dev="POI-DEVELOPERS" type="add">Created a common interface for handling Excel files, irrespective of if they are .xls or .xlsx</action>
</release>
<release version="3.2-alpha1" date="2008-??-??">
+ <action dev="POI-DEVELOPERS" type="fix">45876 - fixed BoundSheetRecord to allow sheet names longer than 31 chars</action>
<action dev="POI-DEVELOPERS" type="add">45890 - fixed HSSFSheet.shiftRows to also update conditional formats</action>
<action dev="POI-DEVELOPERS" type="add">45865 modified Formula Parser/Evaluator to handle cross-worksheet formulas</action>
<action dev="POI-DEVELOPERS" type="add">Optimised the FormulaEvaluator to take cell dependencies into account</action>
package org.apache.poi.hssf.eventusermodel.dummyrecord;
import org.apache.poi.hssf.record.Record;
-import org.apache.poi.hssf.record.RecordInputStream;
/**
* A dummy record to indicate that we've now had the last
*/
public int getLastColumnNumber() { return lastColumnNumber; }
- protected void fillFields(RecordInputStream in) {
- }
public short getSid() {
return -1;
}
public int serialize(int offset, byte[] data) {
return -1;
}
- protected void validateSid(short id) {
- }
-
}
package org.apache.poi.hssf.eventusermodel.dummyrecord;
import org.apache.poi.hssf.record.Record;
-import org.apache.poi.hssf.record.RecordInputStream;
/**
* A dummy record for when we're missing a cell in a row,
this.column = column;
}
- protected void fillFields(RecordInputStream in) {
- }
public short getSid() {
return -1;
}
public int serialize(int offset, byte[] data) {
return -1;
}
- protected void validateSid(short id) {
- }
public int getRow() { return row; }
public int getColumn() { return column; }
this.rowNumber = rowNumber;
}
- protected void fillFields(RecordInputStream in) {
- }
public short getSid() {
return -1;
}
public int serialize(int offset, byte[] data) {
return -1;
}
- protected void validateSid(short id) {
- }
public int getRowNumber() {
return rowNumber;
* @version 1.0-pre
*/
public final class Workbook implements Model {
+ /**
+ * Excel silently truncates long sheet names to 31 chars.
+ * This constant is used to ensure uniqueness in the first 31 chars
+ */
+ private static final int MAX_SENSITIVE_SHEET_NAME_LEN = 31;
+
private static final int DEBUG = POILogger.DEBUG;
/**
/**
* sets the name for a given sheet. If the boundsheet record doesn't exist and
- * its only one more than we have, go ahead and create it. If its > 1 more than
+ * its only one more than we have, go ahead and create it. If it's > 1 more than
* we have, except
*
* @param sheetnum the sheet number (0 based)
* @param sheetname the name for the sheet
*/
- public void setSheetName(int sheetnum, String sheetname ) {
+ public void setSheetName(int sheetnum, String sheetname) {
checkSheets(sheetnum);
BoundSheetRecord sheet = (BoundSheetRecord)boundsheets.get( sheetnum );
sheet.setSheetname(sheetname);
}
/**
- * Determines whether a workbook contains the provided sheet name.
+ * Determines whether a workbook contains the provided sheet name. For the purpose of
+ * comparison, long names are truncated to 31 chars.
*
* @param name the name to test (case insensitive match)
* @param excludeSheetIdx the sheet to exclude from the check or -1 to include all sheets in the check.
* @return true if the sheet contains the name, false otherwise.
*/
- public boolean doesContainsSheetName( String name, int excludeSheetIdx )
- {
- for ( int i = 0; i < boundsheets.size(); i++ )
- {
+ public boolean doesContainsSheetName(String name, int excludeSheetIdx) {
+ String aName = name;
+ if (aName.length() > MAX_SENSITIVE_SHEET_NAME_LEN) {
+ aName = aName.substring(0, MAX_SENSITIVE_SHEET_NAME_LEN);
+ }
+ for (int i = 0; i < boundsheets.size(); i++) {
BoundSheetRecord boundSheetRecord = getBoundSheetRec(i);
- if (excludeSheetIdx != i && name.equalsIgnoreCase(boundSheetRecord.getSheetname()))
+ if (excludeSheetIdx == i) {
+ continue;
+ }
+ String bName = boundSheetRecord.getSheetname();
+ if (bName.length() > MAX_SENSITIVE_SHEET_NAME_LEN) {
+ bName = bName.substring(0, MAX_SENSITIVE_SHEET_NAME_LEN);
+ }
+ if (aName.equalsIgnoreCase(bName)) {
return true;
+ }
}
return false;
}
return (short)getOrCreateLinkTable().checkExternSheet(sheetNumber);
}
- public int getExternalSheetIndex(String workbookName, String sheetName) {
- return getOrCreateLinkTable().getExternalSheetIndex(workbookName, sheetName);
- }
+ public int getExternalSheetIndex(String workbookName, String sheetName) {
+ return getOrCreateLinkTable().getExternalSheetIndex(workbookName, sheetName);
+ }
/** gets the total number of names
escherRecords = new ArrayList();
}
- /**
- * Constructs a Bar record and sets its fields appropriately.
- *
- * @param in the RecordInputstream to read the record from
- */
public AbstractEscherHolderRecord(RecordInputStream in)
- {
- super(in);
-
- }
-
- /**
- * Checks the sid matches the expected side for this record
- *
- * @param id the expected sid.
- */
- protected void validateSid(short id)
- {
- if (id != getSid())
- {
- throw new RecordFormatException("Not an escher record! (sid was " + id + ", expecting " + getSid() + ")");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
escherRecords = new ArrayList();
if (! DESERIALISE )
}
- /**
- * Constructs a AreaFormat record and sets its fields appropriately.
- *
- * @param in the RecordInputstream to read the record from
- */
-
public AreaFormatRecord(RecordInputStream in)
- {
- super(in);
-
- }
-
- /**
- * Checks the sid matches the expected side for this record
- *
- * @param id the expected sid.
- */
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("Not a AreaFormat record");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_foregroundColor = in.readInt();
field_2_backgroundColor = in.readInt();
}
- /**
- * Constructs a Area record and sets its fields appropriately.
- *
- * @param in the RecordInputstream to read the record from
- */
-
public AreaRecord(RecordInputStream in)
- {
- super(in);
-
- }
-
- /**
- * Checks the sid matches the expected side for this record
- *
- * @param id the expected sid.
- */
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("Not a Area record");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_formatFlags = in.readShort();
}
- /**
- * Constructs a AxisLineFormat record and sets its fields appropriately.
- *
- * @param in the RecordInputstream to read the record from
- */
-
public AxisLineFormatRecord(RecordInputStream in)
- {
- super(in);
-
- }
-
- /**
- * Checks the sid matches the expected side for this record
- *
- * @param id the expected sid.
- */
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("Not a AxisLineFormat record");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_axisType = in.readShort();
}
}
- /**
- * Constructs a AxisOptions record and sets its fields appropriately.
- *
- * @param in the RecordInputstream to read the record from
- */
-
public AxisOptionsRecord(RecordInputStream in)
- {
- super(in);
-
- }
-
- /**
- * Checks the sid matches the expected side for this record
- *
- * @param id the expected sid.
- */
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("Not a AxisOptions record");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_minimumCategory = in.readShort();
field_2_maximumCategory = in.readShort();
}
- /**
- * Constructs a AxisParent record and sets its fields appropriately.
- *
- * @param in the RecordInputstream to read the record from
- */
-
public AxisParentRecord(RecordInputStream in)
- {
- super(in);
-
- }
-
- /**
- * Checks the sid matches the expected side for this record
- *
- * @param id the expected sid.
- */
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("Not a AxisParent record");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_axisType = in.readShort();
field_2_x = in.readInt();
}
- /**
- * Constructs a Axis record and sets its fields appropriately.
- *
- * @param in the RecordInputstream to read the record from
- */
-
public AxisRecord(RecordInputStream in)
- {
- super(in);
-
- }
-
- /**
- * Checks the sid matches the expected side for this record
- *
- * @param id the expected sid.
- */
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("Not a Axis record");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_axisType = in.readShort();
field_2_reserved1 = in.readInt();
}
- /**
- * Constructs a AxisUsed record and sets its fields appropriately.
- *
- * @param in the RecordInputstream to read the record from
- */
-
public AxisUsedRecord(RecordInputStream in)
- {
- super(in);
-
- }
-
- /**
- * Checks the sid matches the expected side for this record
- *
- * @param id the expected sid.
- */
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("Not a AxisUsed record");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_numAxis = in.readShort();
}
{
}
- /**
- * Constructs a BOFRecord and sets its fields appropriately
- * @param in the RecordInputstream to read the record from
- */
-
public BOFRecord(RecordInputStream in)
- {
- super(in);
-
- // fillFields(data,size);
- }
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT A BOF RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_version = in.readShort();
field_2_type = in.readShort();
{
}
- /**
- * Constructs a BackupRecord and sets its fields appropriately
- * @param in the RecordInputstream to read the record from
- */
-
public BackupRecord(RecordInputStream in)
- {
- super(in);
- }
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT A BACKUP RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_backup = in.readShort();
}
}
- /**
- * Constructs a Bar record and sets its fields appropriately.
- *
- * @param in the RecordInputstream to read the record from
- */
-
public BarRecord(RecordInputStream in)
- {
- super(in);
-
- }
-
- /**
- * Checks the sid matches the expected side for this record
- *
- * @param id the expected sid.
- */
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("Not a Bar record");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_barSpace = in.readShort();
field_2_categorySpace = in.readShort();
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
package org.apache.poi.hssf.record;
*
* @author Glen Stampoultzis (glens at apache.org)
*/
-
-public class BeginRecord
- extends Record
-{
+public class BeginRecord extends Record {
public static final short sid = 0x1033;
public BeginRecord()
}
/**
- * Constructs a BeginRecord record and sets its fields appropriately.
- * @param in the RecordInputstream to read the record from
+ * @param in unused (since this record has no data)
*/
-
public BeginRecord(RecordInputStream in)
- {
- super(in);
- }
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT A BEGIN RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
}
public int serialize(int offset, byte [] data)
{
- LittleEndian.putShort(data, 0 + offset, sid);
- LittleEndian.putShort(data, 2 + offset,
- (( short ) 0)); // no record info
+ LittleEndian.putUShort(data, 0 + offset, sid);
+ LittleEndian.putUShort(data, 2 + offset, 0); // no record info
return getRecordSize();
}
{
}
- /**
- * Constructs a BlankRecord and sets its fields appropriately
- * @param in the RecordInputstream to read the record from
- */
public BlankRecord(RecordInputStream in)
- {
- super(in);
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_row = in.readUShort();
field_2_col = in.readShort();
field_3_xf = in.readShort();
}
- /**
- * called by constructor, should throw runtime exception in the event of a
- * record passed with a differing ID.
- *
- * @param id alleged id for this record
- */
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT A BLANKRECORD!");
- }
- }
-
/**
* set the row this cell occurs on
* @param row the row this cell occurs within
{
}
- /**
- * Constructs a BookBoolRecord and sets its fields appropriately
- * @param in the RecordInputstream to read the record from
- */
-
public BookBoolRecord(RecordInputStream in)
- {
- super(in);
- }
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT A BOOKBOOL RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_save_link_values = in.readShort();
}
}
/**
- * Constructs a BoolErr record and sets its fields appropriately.
- *
* @param in the RecordInputstream to read the record from
*/
public BoolErrRecord(RecordInputStream in)
- {
- super(in);
- }
-
- /**
- * @param in the RecordInputstream to read the record from
- */
- protected void fillFields(RecordInputStream in)
{
//field_1_row = LittleEndian.getShort(data, 0 + offset);
field_1_row = in.readUShort();
return 12;
}
- /**
- * called by constructor, should throw runtime exception in the event of a
- * record passed with a differing ID.
- *
- * @param id alleged id for this record
- */
- protected void validateSid(short id)
- {
- if (id != BoolErrRecord.sid)
- {
- throw new RecordFormatException("Not a valid BoolErrRecord");
- }
- }
-
public short getSid()
{
return sid;
}
- /**
- * Constructs a BottomMargin record and sets its fields appropriately.
- *
- * @param in the RecordInputstream to read the record from
- */
public BottomMarginRecord( RecordInputStream in )
- {
- super( in );
- }
-
- /**
- * Checks the sid matches the expected side for this record
- *
- * @param id the expected sid.
- */
- protected void validateSid( short id )
- {
- if ( id != sid )
- {
- throw new RecordFormatException( "Not a BottomMargin record" );
- }
- }
-
- protected void fillFields( RecordInputStream in )
{
field_1_margin = in.readDouble();
}
return rec;
}
-} // END OF CLASS
+} // END OF CLAS
\ No newline at end of file
setSheetname(sheetname);
}
- /**
- * Constructs a BoundSheetRecord and sets its fields appropriately
- *
- * @param in the RecordInputstream to read the record from
- */
- public BoundSheetRecord(RecordInputStream in) {
- super(in);
- }
-
- protected void validateSid(short id) {
- if (id != sid) {
- throw new RecordFormatException("NOT A Bound Sheet RECORD");
- }
- }
-
/**
* UTF8: sid + len + bof + flags + len(str) + unicode + str 2 + 2 + 4 + 2 +
* 1 + 1 + len(str)
* 1 + 1 + 2 * len(str)
*
*/
- protected void fillFields(RecordInputStream in) {
+ public BoundSheetRecord(RecordInputStream in) {
field_1_position_of_BOF = in.readInt();
field_2_option_flags = in.readUShort();
int field_3_sheetname_length = in.readUByte();
throw new IllegalArgumentException("sheetName must not be null");
}
int len = sheetName.length();
- if (len < 1 || len > 31) {
- throw new IllegalArgumentException("sheetName '" + sheetName
- + "' is invalid - must be 1-30 characters long");
+ if (len < 1) {
+ throw new IllegalArgumentException("sheetName must not be empty string");
}
for (int i=0; i<len; i++) {
char ch = sheetName.charAt(i);
}
public CFHeaderRecord(RecordInputStream in)
- {
- super(in);
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_numcf = in.readShort();
field_2_need_recalculation = in.readShort();
return 4 + getDataSize();
}
- /**
- * called by constructor, should throw runtime exception in the event of a
- * record passed with a differing ID.
- *
- * @param id alleged id for this record
- */
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException(
- "NOT A ConditionalFormattingHeaderRecord RECORD");
- }
- }
-
public short getSid()
{
return sid;
}
public CFRuleRecord(RecordInputStream in) {
- super(in);
- }
-
- protected void fillFields(RecordInputStream in) {
field_1_condition_type = in.readByte();
field_2_comparison_operator = in.readByte();
int field_3_formula1_len = in.readUShort();
public void setParsedExpression2(Ptg[] ptgs) {
field_18_formula2 = safeClone(ptgs);
}
-
- /**
- * called by constructor, should throw runtime exception in the event of a
- * record passed with a differing ID.
- *
- * @param id alleged id for this record
- */
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT A CFRULE RECORD");
- }
- }
public short getSid()
{
throw new RuntimeException("incomplete code");
}
- public CRNCountRecord(RecordInputStream in) {
- super(in);
- }
-
- protected void validateSid(short id) {
- if (id != sid) {
- throw new RecordFormatException("NOT An XCT RECORD");
- }
- }
-
public int getNumberOfCRNs() {
return field_1_number_crn_records;
}
- protected void fillFields(RecordInputStream in) {
+ public CRNCountRecord(RecordInputStream in) {
field_1_number_crn_records = in.readShort();
if(field_1_number_crn_records < 0) {
// TODO - seems like the sign bit of this field might be used for some other purpose
throw new RuntimeException("incomplete code");
}
- public CRNRecord(RecordInputStream in) {
- super(in);
- }
-
- protected void validateSid(short id) {
- if (id != sid) {
- throw new RecordFormatException("NOT An XCT RECORD");
- }
- }
-
public int getNumberOfCRNs() {
return field_1_last_column_index;
}
- protected void fillFields(RecordInputStream in) {
+ public CRNRecord(RecordInputStream in) {
field_1_last_column_index = in.readByte() & 0x00FF;
field_2_first_column_index = in.readByte() & 0x00FF;
field_3_row_index = in.readShort();
{
}
- /**
- * Constructs a CalcCountRecord and sets its fields appropriately
- * @param in the RecordInputstream to read the record from
- *
- */
-
public CalcCountRecord(RecordInputStream in)
- {
- super(in);
- }
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT An Calc Count RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_iterations = in.readShort();
}
{
}
- /**
- * Constructs a CalcModeRecord and sets its fields appropriately
- * @param in the RecordInputstream to read the record from
- */
-
public CalcModeRecord(RecordInputStream in)
- {
- super(in);
- }
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT An Calc Mode RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_calcmode = in.readShort();
}
}
- /**
- * Constructs a CategorySeriesAxis record and sets its fields appropriately.
- *
- * @param in the RecordInputstream to read the record from
- */
-
public CategorySeriesAxisRecord(RecordInputStream in)
- {
- super(in);
-
- }
-
- /**
- * Checks the sid matches the expected side for this record
- *
- * @param id the expected sid.
- */
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("Not a CategorySeriesAxis record");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_crossingPoint = in.readShort();
field_2_labelFrequency = in.readShort();
{
}
- /**
- * Constructs a ChartFormatRecord record and sets its fields appropriately.
- * @param in the RecordInputstream to read the record from
- */
-
public ChartFormatRecord(RecordInputStream in)
- {
- super(in);
- }
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT A CHARTFORMAT RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field1_x_position = in.readInt();
field2_y_position = in.readInt();
}
- /**
- * Constructs a Chart record and sets its fields appropriately.
- *
- * @param in the RecordInputstream to read the record from
- */
-
public ChartRecord(RecordInputStream in)
- {
- super(in);
-
- }
-
- /**
- * Checks the sid matches the expected side for this record
- *
- * @param id the expected sid.
- */
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("Not a Chart record");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_x = in.readInt();
field_2_y = in.readInt();
}
public ChartTitleFormatRecord(RecordInputStream in) {
- super(in);
- }
-
- protected void validateSid(short id) {
- if (id != sid)
- {
- throw new RecordFormatException("NOT A CHARTTITLEFORMAT RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in) {
m_recs = in.readUShort();
int idx;
CTFormat ctf;
{
}
- /**
- * Constructs a CodepageRecord and sets its fields appropriately
- * @param in the RecordInputstream to read the record from
- */
-
public CodepageRecord(RecordInputStream in)
- {
- super(in);
- }
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT A CODEPAGE RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_codepage = in.readShort();
}
field_6_reserved = 2; // seems to be the most common value
}
- /**
- * Constructs a ColumnInfo record and sets its fields appropriately
- * @param in the RecordInputstream to read the record from
- */
-
public ColumnInfoRecord(RecordInputStream in)
- {
- super(in);
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_first_col = in.readUShort();
field_2_last_col = in.readUShort();
}
}
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT A COLINFO RECORD!!");
- }
- }
-
/**
* set the first column this record defines formatting info for
* @param fc - the first column index (0-based)
}
- /**
- * Constructs a CommonObjectData record and sets its fields appropriately.
- *
- * @param in the RecordInputstream to read the record from
- */
-
public CommonObjectDataSubRecord(RecordInputStream in)
- {
- super(in);
- }
-
- /**
- * Checks the sid matches the expected side for this record
- *
- * @param id the expected sid.
- */
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("Not a CommonObjectData record");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_objectType = in.readShort();
field_2_objectId = in.readShort();
{
}
- /**
- * Main constructor -- kinda dummy because we don't validate or fill fields
- *
- * @param in the RecordInputstream to read the record from
- */
-
- public ContinueRecord(RecordInputStream in)
- {
- super(in);
- }
-
/**
* USE ONLY within "processContinue"
*/
return field_1_data;
}
- /**
- * Make sure we have a good id
- *
- * @param id the alleged id
- */
-
- protected void validateSid(short id)
- {
- if (id != ContinueRecord.sid)
- {
- throw new RecordFormatException("Not a Continue Record");
- }
- }
-
/**
* Debugging toString
*
* @param in the RecordInputstream to read the record from
*/
- protected void fillFields(RecordInputStream in)
+ public ContinueRecord(RecordInputStream in)
{
field_1_data = in.readRemainder();
}
{
}
- /**
- * Constructs a CountryRecord and sets its fields appropriately
- * @param in the RecordInputstream to read the record from
- */
-
public CountryRecord(RecordInputStream in)
- {
- super(in);
- }
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT A Country RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_default_country = in.readShort();
field_2_current_country = in.readShort();
field_2_cell_offsets = new short[0];
}
- /**
- * Constructs a DBCellRecord and sets its fields appropriately
- * @param in the RecordInputstream to read the record from
- */
public DBCellRecord(RecordInputStream in)
- {
- super(in);
- }
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT A valid DBCell RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_row_offset = in.readUShort();
int size = in.remaining();
{
}
- /**
- * Constructs a DBCellRecord and sets its fields appropriately.
- * @param in the RecordInputstream to read the record from
- */
-
public DSFRecord(RecordInputStream in)
- {
- super(in);
- }
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT A DSF RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_dsf = in.readShort();
}
field_5_dv_no = 0x00000000;
}
- /**
- * Constructs a DVAL record and sets its fields appropriately.
- *
- * @param in the RecordInputstream to read the record from
- */
-
- public DVALRecord(RecordInputStream in)
- {
- super(in);
- }
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT A valid DVAL RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in)
+ public DVALRecord(RecordInputStream in)
{
this.field_1_options = in.readShort();
this.field_2_horiz_pos = in.readInt();
private static final BitField opt_show_error_on_invalid_value = new BitField(0x00080000);
private static final BitField opt_condition_operator = new BitField(0x00700000);
- /**
- * Constructs a DV record and sets its fields appropriately.
- *
- * @param in the RecordInputstream to read the record from
- */
- public DVRecord(RecordInputStream in) {
- super(in);
- }
-
public DVRecord(int validationType, int operator, int errorStyle, boolean emptyCellAllowed,
boolean suppressDropDownArrow, boolean isExplicitList,
boolean showPromptBox, String promptTitle, String promptText,
_regions = regions;
}
- protected void validateSid(short id) {
- if (id != sid) {
- throw new RecordFormatException("NOT a valid DV RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in) {
+ public DVRecord(RecordInputStream in) {
_option_flags = in.readInt();
}
- /**
- * Constructs a Dat record and sets its fields appropriately.
- *
- * @param in the RecordInputstream to read the record from
- */
-
public DatRecord(RecordInputStream in)
- {
- super(in);
-
- }
-
- /**
- * Checks the sid matches the expected side for this record
- *
- * @param id the expected sid.
- */
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("Not a Dat record");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_options = in.readShort();
}
}
- /**
- * Constructs a DataFormat record and sets its fields appropriately.
- *
- * @param in the RecordInputstream to read the record from
- */
-
public DataFormatRecord(RecordInputStream in)
- {
- super(in);
-
- }
-
- /**
- * Checks the sid matches the expected side for this record
- *
- * @param id the expected sid.
- */
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("Not a DataFormat record");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_pointNumber = in.readShort();
field_2_seriesIndex = in.readShort();
{
}
- /**
- * Constructs a DateWindow1904 record and sets its fields appropriately.
- * @param in the RecordInputstream to read the record from
- */
-
public DateWindow1904Record(RecordInputStream in)
- {
- super(in);
- }
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT A 1904 RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_window = in.readShort();
}
{
}
- /**
- * Constructs a DefaultColumnWidth record and sets its fields appropriately.
- * @param in the RecordInputstream to read the record from
- */
-
public DefaultColWidthRecord(RecordInputStream in)
- {
- super(in);
- }
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT A DefaultColWidth RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_col_width = in.readUShort();
}
}
- /**
- * Constructs a DefaultDataLabelTextProperties record and sets its fields appropriately.
- *
- * @param in the RecordInputstream to read the record from
- */
-
public DefaultDataLabelTextPropertiesRecord(RecordInputStream in)
- {
- super(in);
-
- }
-
- /**
- * Checks the sid matches the expected side for this record
- *
- * @param id the expected sid.
- */
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("Not a DefaultDataLabelTextProperties record");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_categoryDataType = in.readShort();
}
{
}
- /**
- * Constructs a DefaultRowHeight record and sets its fields appropriately.
- * @param in the RecordInputstream to read the record from
- */
-
public DefaultRowHeightRecord(RecordInputStream in)
- {
- super(in);
- }
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT A DefaultRowHeight RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_option_flags = in.readShort();
field_2_row_height = in.readShort();
{
}
- /**
- * Constructs a Delta record and sets its fields appropriately.
- * @param in the RecordInputstream to read the record from
- */
-
public DeltaRecord(RecordInputStream in)
- {
- super(in);
- }
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT A DELTA RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_max_change = in.readDouble();
}
{
}
- /**
- * Constructs a Dimensions record and sets its fields appropriately.
- * @param in the RecordInputstream to read the record from
- */
-
public DimensionsRecord(RecordInputStream in)
- {
- super(in);
- }
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT A valid DIMENSIONS RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_first_row = in.readInt();
field_2_last_row = in.readInt();
}
public DrawingRecord( RecordInputStream in )
- {
- super( in );
- }
-
- /**
- * Checks the sid matches the expected side for this record
- *
- * @param id the expected sid.
- */
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("Not a MSODRAWING record");
- }
- }
-
- protected void fillFields( RecordInputStream in )
{
recordData = in.readRemainder();
}
}
/**
- * Constructs a EOFRecord record and sets its fields appropriately.
- * @param in the RecordInputstream to read the record from
+ * @param in unused (since this record has no data)
*/
-
public EOFRecord(RecordInputStream in)
- {
- super(in);
- }
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT An EOF RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
}
field_5_ole_classname = "";
}
- /**
- * Constructs an EmbeddedObjectRef record and sets its fields appropriately.
- *
- * @param in the record input stream.
- */
- public EmbeddedObjectRefSubRecord(RecordInputStream in)
- {
- super(in);
- }
-
- /**
- * Checks the sid matches the expected side for this record
- *
- * @param id the expected sid.
- */
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("Not a EmbeddedObjectRef record");
- }
- }
-
public short getSid()
{
return sid;
}
- protected void fillFields(RecordInputStream in)
+ public EmbeddedObjectRefSubRecord(RecordInputStream in)
{
field_1_stream_id_offset = in.readShort();
field_2_unknown = in.readShortArray();
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
package org.apache.poi.hssf.record;
* @author Glen Stampoultzis (glens at apache.org)
*/
-public class EndRecord
- extends Record
-{
+public final class EndRecord extends Record {
public static final short sid = 0x1034;
public EndRecord()
}
/**
- * Constructs a EndRecord record and sets its fields appropriately.
- * @param in the RecordInputstream to read the record from
+ * @param in unused (since this record has no data)
*/
-
public EndRecord(RecordInputStream in)
- {
- super(in);
- }
-
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT An END RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
}
public int serialize(int offset, byte [] data)
{
- LittleEndian.putShort(data, 0 + offset, sid);
- LittleEndian.putShort(data, 2 + offset,
- (( short ) 0)); // no record info
+ LittleEndian.putUShort(data, 0 + offset, sid);
+ LittleEndian.putUShort(data, 2 + offset, 0); // no record info
return getRecordSize();
}
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
limitations under the License.
==================================================================== */
-
package org.apache.poi.hssf.record;
-
-
-import org.apache.poi.util.*;
+import org.apache.poi.util.LittleEndian;
/**
* The end data record is used to denote the end of the subrecords.
* @author Glen Stampoultzis (glens at apache.org)
*/
-public class EndSubRecord
- extends SubRecord
-{
- public final static short sid = 0x00;
+public final class EndSubRecord extends SubRecord {
+ public final static short sid = 0x00;
public EndSubRecord()
}
/**
- * Constructs a End record and sets its fields appropriately.
- *
- * @param in the RecordInputstream to read the record from
+ * @param in unused (since this record has no data)
*/
-
public EndSubRecord(RecordInputStream in)
- {
- super(in);
-
- }
-
- /**
- * Checks the sid matches the expected side for this record
- *
- * @param id the expected sid.
- */
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("Not a End record");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
}
package org.apache.poi.hssf.record;
-import org.apache.poi.ddf.*;
-import org.apache.poi.hssf.usermodel.*;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.poi.ddf.DefaultEscherRecordFactory;
+import org.apache.poi.ddf.EscherBoolProperty;
+import org.apache.poi.ddf.EscherClientAnchorRecord;
+import org.apache.poi.ddf.EscherClientDataRecord;
+import org.apache.poi.ddf.EscherContainerRecord;
+import org.apache.poi.ddf.EscherDgRecord;
+import org.apache.poi.ddf.EscherDggRecord;
+import org.apache.poi.ddf.EscherOptRecord;
+import org.apache.poi.ddf.EscherProperties;
+import org.apache.poi.ddf.EscherRecord;
+import org.apache.poi.ddf.EscherRecordFactory;
+import org.apache.poi.ddf.EscherSerializationListener;
+import org.apache.poi.ddf.EscherSpRecord;
+import org.apache.poi.ddf.EscherSpgrRecord;
+import org.apache.poi.ddf.EscherTextboxRecord;
import org.apache.poi.hssf.model.AbstractShape;
-import org.apache.poi.hssf.model.TextboxShape;
-import org.apache.poi.hssf.model.DrawingManager2;
-import org.apache.poi.hssf.model.ConvertAnchor;
import org.apache.poi.hssf.model.CommentShape;
+import org.apache.poi.hssf.model.ConvertAnchor;
+import org.apache.poi.hssf.model.DrawingManager2;
+import org.apache.poi.hssf.model.TextboxShape;
+import org.apache.poi.hssf.usermodel.HSSFClientAnchor;
+import org.apache.poi.hssf.usermodel.HSSFPatriarch;
+import org.apache.poi.hssf.usermodel.HSSFShape;
+import org.apache.poi.hssf.usermodel.HSSFShapeContainer;
+import org.apache.poi.hssf.usermodel.HSSFShapeGroup;
+import org.apache.poi.hssf.usermodel.HSSFTextbox;
import org.apache.poi.util.POILogFactory;
import org.apache.poi.util.POILogger;
-import java.util.*;
-
/**
* This class is used to aggregate the MSODRAWING and OBJ record
* combinations. This is necessary due to the bizare way in which
return sid;
}
- /**
- * Unused since this is an aggregate record. Use createAggregate().
- *
- * @see #createAggregate
- */
- protected void fillFields( byte[] data, short size, int offset )
- {
- throw new IllegalStateException( "Should not reach here" );
- }
-
/**
* Calculates the string representation of this record. This is
* simply a dump of all the records.
// The top level container ought to have
// the DgRecord and the container of one container
// per shape group (patriach overall first)
- EscherContainerRecord topContainer =
- (EscherContainerRecord)getEscherContainer();
+ EscherContainerRecord topContainer = getEscherContainer();
if(topContainer == null) {
return;
}
}
public ExtSSTInfoSubRecord(RecordInputStream in)
- {
- super(in);
- }
-
- protected void validateSid(short id)
- {
-
- // do nothing
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_stream_pos = in.readInt();
field_2_bucket_sst_offset = in.readShort();
field_2_sst_info = new ArrayList();
}
- /**
- * Constructs a EOFRecord record and sets its fields appropriately.
- * @param in the RecordInputstream to read the record from
- */
-
public ExtSSTRecord(RecordInputStream in)
- {
- super(in);
- }
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT An EXTSST RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_2_sst_info = new ArrayList();
field_1_strings_per_bucket = in.readShort();
{
}
- /**
- * Constructs an ExtendedFormat record and sets its fields appropriately.
- * @param in the RecordInputstream to read the record from
- */
-
public ExtendedFormatRecord(RecordInputStream in)
- {
- super(in);
- }
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT A EXTENDED FORMAT RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_font_index = in.readShort();
field_2_format_index = in.readShort();
_list = new ArrayList();
}
- /**
- * Constructs a Extern Sheet record and sets its fields appropriately.
- * @param in the RecordInputstream to read the record from
- */
-
- public ExternSheetRecord(RecordInputStream in) {
- super(in);
- }
-
- /**
- * called by constructor, should throw runtime exception in the event of a
- * record passed with a differing ID.
- *
- * @param id alleged id for this record
- */
- protected void validateSid(short id) {
- if (id != sid) {
- throw new RecordFormatException("NOT An ExternSheet RECORD");
- }
- }
-
/**
* called by the constructor, should set class level fields. Should throw
* runtime exception for bad/icomplete data.
*
* @param in the RecordInputstream to read the record from
*/
- protected void fillFields(RecordInputStream in) {
+ public ExternSheetRecord(RecordInputStream in) {
_list = new ArrayList();
int nItems = in.readShort();
private short field_2_index;
private short field_3_not_used;
private String field_4_name;
- private Ptg[] field_5_name_definition; // TODO - junits for name definition field
-
- public ExternalNameRecord(RecordInputStream in) {
- super(in);
- }
+ private Ptg[] field_5_name_definition;
/**
* Convenience Function to determine if the name is a built-in name
return field_4_name;
}
-
- /**
- * called by constructor, should throw runtime exception in the event of a
- * record passed with a differing ID.
- *
- * @param id alleged id for this record
- */
- protected void validateSid(short id) {
- if (id != sid) {
- throw new RecordFormatException("NOT A valid ExternalName RECORD");
- }
- }
-
private int getDataSize(){
int result = 3 * 2 // 3 short fields
+ 2 + field_4_name.length(); // nameLen and name
LittleEndian.putShort( data, 4 + offset, field_1_option_flag );
LittleEndian.putShort( data, 6 + offset, field_2_index );
LittleEndian.putShort( data, 8 + offset, field_3_not_used );
- short nameLen = (short) field_4_name.length();
- LittleEndian.putShort( data, 10 + offset, nameLen );
+ int nameLen = field_4_name.length();
+ LittleEndian.putUShort( data, 10 + offset, nameLen );
StringUtil.putCompressedUnicode( field_4_name, data, 12 + offset );
if(hasFormula()) {
- short defLen = (short) getNameDefinitionSize();
- LittleEndian.putShort( data, 12 + nameLen + offset, defLen );
- Ptg.serializePtgStack(toStack(field_5_name_definition), data, 14 + nameLen + offset );
+ int defLen = getNameDefinitionSize();
+ LittleEndian.putUShort( data, 12 + nameLen + offset, defLen );
+ Ptg.serializePtgs(field_5_name_definition, data, 14 + nameLen + offset );
}
return dataSize + 4;
}
}
- protected void fillFields(RecordInputStream in) {
+ public ExternalNameRecord(RecordInputStream in) {
field_1_option_flag = in.readShort();
field_2_index = in.readShort();
field_3_not_used = in.readShort();
throw readFail("Ran out of record data trying to read formula.");
}
short formulaLen = in.readShort();
- field_5_name_definition = toPtgArray(Ptg.createParsedExpressionTokens(formulaLen, in));
+ field_5_name_definition = Ptg.readTokens(formulaLen, in);
}
/*
* Makes better error messages (while hasFormula() is not reliable)
return true;
}
- private static Ptg[] toPtgArray(Stack s) {
- Ptg[] result = new Ptg[s.size()];
- s.toArray(result);
- return result;
- }
- private static Stack toStack(Ptg[] ptgs) {
- Stack result = new Stack();
- for (int i = 0; i < ptgs.length; i++) {
- result.push(ptgs[i]);
- }
- return result;
- }
-
public short getSid() {
return sid;
}
{
}
- /**
- * Constructs a FILEPASS record and sets its fields appropriately.
- * @param in the RecordInputstream to read the record from
- */
-
public FilePassRecord(RecordInputStream in)
- {
- super(in);
- }
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT A FILEPASS RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_encryptedpassword = in.readInt();
private String field_3_username_value;
public FileSharingRecord() {}
-
-
- /**
- * Constructs a FileSharing record and sets its fields appropriately.
- * @param in the RecordInputstream to read the record from
- */
public FileSharingRecord(RecordInputStream in) {
- super(in);
- }
-
- protected void validateSid(short id) {
- if (id != sid) {
- throw new RecordFormatException("NOT A FILESHARING RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in) {
field_1_readonly = in.readShort();
field_2_password = in.readShort();
{
}
- /**
- * Constructs a FnGroupCount record and sets its fields appropriately.
- * @param in the RecordInputstream to read the record from
- */
-
public FnGroupCountRecord(RecordInputStream in)
- {
- super(in);
- }
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT A FNGROUPCOUNT RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_count = in.readShort();
}
}
- /**
- * Constructs a FontBasis record and sets its fields appropriately.
- *
- * @param in the RecordInputstream to read the record from
- */
-
public FontBasisRecord(RecordInputStream in)
- {
- super(in);
-
- }
-
- /**
- * Checks the sid matches the expected side for this record
- *
- * @param id the expected sid.
- */
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("Not a FontBasis record");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_xBasis = in.readShort();
field_2_yBasis = in.readShort();
}
- /**
- * Constructs a FontIndex record and sets its fields appropriately.
- *
- * @param in the RecordInputstream to read the record from
- */
-
public FontIndexRecord(RecordInputStream in)
- {
- super(in);
-
- }
-
- /**
- * Checks the sid matches the expected side for this record
- *
- * @param id the expected sid.
- */
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("Not a FontIndex record");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_fontIndex = in.readShort();
}
{
}
- /**
- * Constructs a Font record and sets its fields appropriately.
- *
- * @param in the RecordInputstream to read the record from
- */
-
public FontRecord(RecordInputStream in)
- {
- super(in);
- }
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT A FONT RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_font_height = in.readShort();
field_2_attributes = in.readShort();
{
}
- /**
- * Constructs a FooterRecord record and sets its fields appropriately.
- * @param in the RecordInputstream to read the record from
- */
-
public FooterRecord(RecordInputStream in)
- {
- super(in);
- }
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT A FooterRECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
if (in.remaining() > 0)
{
{
}
- /**
- * Constructs a Format record and sets its fields appropriately.
- * @param in the RecordInputstream to read the record from
- */
-
public FormatRecord(RecordInputStream in)
- {
- super(in);
- }
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT A FORMAT RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_index_code = in.readShort();
field_3_unicode_len = in.readShort();
field_8_parsed_expr = Ptg.EMPTY_PTG_ARRAY;
}
- /**
- * Constructs a Formula record and sets its fields appropriately.
- * Note - id must be 0x06 (NOT 0x406 see MSKB #Q184647 for an
- * "explanation of this bug in the documentation) or an exception
- * will be throw upon validation
- *
- * @param in the RecordInputstream to read the record from
- */
-
public FormulaRecord(RecordInputStream in) {
- super(in);
- }
-
- protected void fillFields(RecordInputStream in) {
field_1_row = in.readUShort();
field_2_column = in.readShort();
field_3_xf = in.readShort();
field_8_parsed_expr = ptgs;
}
- /**
- * called by constructor, should throw runtime exception in the event of a
- * record passed with a differing ID.
- *
- * @param id alleged id for this record
- */
- protected void validateSid(short id) {
- if (id != sid) {
- throw new RecordFormatException("NOT A FORMULA RECORD");
- }
- }
-
public short getSid() {
return sid;
}
}
- /**
- * Constructs a Frame record and sets its fields appropriately.
- *
- * @param in the RecordInputstream to read the record from
- */
-
public FrameRecord(RecordInputStream in)
- {
- super(in);
-
- }
-
- /**
- * Checks the sid matches the expected side for this record
- *
- * @param id the expected sid.
- */
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("Not a Frame record");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_borderType = in.readShort();
field_2_options = in.readShort();
{
}
- /**
- * Constructs a GridSet record and sets its fields appropriately.
- * @param in the RecordInputstream to read the record from
- */
-
public GridsetRecord(RecordInputStream in)
- {
- super(in);
- }
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT A Gridset RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_gridset_flag = in.readShort();
}
}
- /**
- * Constructs a group marker record and sets its fields appropriately.
- *
- * @param in the RecordInputstream to read the record from
- */
-
public GroupMarkerSubRecord(RecordInputStream in)
- {
- super(in);
-
- }
-
- /**
- * Checks the sid matches the expected side for this record
- *
- * @param id the expected sid.
- */
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("Not a Group Marker record");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
// int pos = 0;
reserved = in.readRemainder();
{
}
- /**
- * Constructs a Guts record and sets its fields appropriately.
- * @param in the RecordInputstream to read the record from
- */
-
public GutsRecord(RecordInputStream in)
- {
- super(in);
- }
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT A Guts RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_left_row_gutter = in.readShort();
field_2_top_col_gutter = in.readShort();
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
package org.apache.poi.hssf.record;
import org.apache.poi.util.LittleEndian;
/**
- * Title: HCenter record<P>
+ * Title: HCenter record (0x0083)<P>
* Description: whether to center between horizontal margins<P>
* REFERENCE: PG 320 Microsoft Excel 97 Developer's Kit (ISBN: 1-57231-498-2)<P>
* @author Andrew C. Oliver (acoliver at apache dot org)
* @author Jason Height (jheight at chariot dot net dot au)
* @version 2.0-pre
*/
-
-public class HCenterRecord
- extends Record
-{
- public final static short sid = 0x83;
+public final class HCenterRecord extends Record {
+ public final static short sid = 0x0083;
private short field_1_hcenter;
public HCenterRecord()
{
}
- /**
- * Constructs an HCenter record and sets its fields appropriately.
- * @param in the RecordInputstream to read the record from
- */
-
public HCenterRecord(RecordInputStream in)
- {
- super(in);
- }
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT A HCenter RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_hcenter = in.readShort();
}
public int serialize(int offset, byte [] data)
{
LittleEndian.putShort(data, 0 + offset, sid);
- LittleEndian.putShort(data, 2 + offset, ( short ) 0x2);
- LittleEndian.putShort(data, 4 + offset, ( short ) field_1_hcenter);
+ LittleEndian.putUShort(data, 2 + offset, 0x2);
+ LittleEndian.putUShort(data, 4 + offset, field_1_hcenter);
return getRecordSize();
}
{
}
- /**
- * Constructs an Header record and sets its fields appropriately.
- * @param in the RecordInputstream to read the record from
- */
-
public HeaderRecord(RecordInputStream in)
- {
- super(in);
- }
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT A HEADERRECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
if (in.remaining() > 0)
{
{
}
- /**
- * Constructs an HideObj record and sets its fields appropriately.
- * @param in the RecordInputstream to read the record from
- */
-
public HideObjRecord(RecordInputStream in)
- {
- super(in);
- }
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT A HIDEOBJ RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_hide_obj = in.readShort();
}
super(in);
}
- protected void validateSid(short id) {
- if (id != getSid()) {
- throw new RecordFormatException(
- "NOT A HorizontalPageBreak or VerticalPageBreak RECORD!! " + id);
- }
- }
-
public short getSid() {
return sid;
}
}
- /**
- * Read hyperlink from input stream
- *
- * @param in the stream to read from
- */
- public HyperlinkRecord(RecordInputStream in)
- {
- super(in);
- }
-
/**
* Return the column of the first cell that contains the hyperlink
*
/**
* @param in the RecordInputstream to read the record from
*/
- protected void fillFields(RecordInputStream in)
+ public HyperlinkRecord(RecordInputStream in)
{
try {
rwFirst = in.readShort();
return HyperlinkRecord.sid;
}
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT A HYPERLINKRECORD!");
- }
- }
-
public int serialize(int offset, byte[] data)
{
int pos = offset;
{
}
- /**
- * Constructs an Index record and sets its fields appropriately.
- * @param in the RecordInputstream to read the record from
- */
-
public IndexRecord(RecordInputStream in)
- {
- super(in);
- }
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT An Index RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_5_dbcells =
new IntList(DBCELL_CAPACITY); // initial capacity of 30
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
package org.apache.poi.hssf.record;
import org.apache.poi.util.LittleEndian;
/**
- * Title: Interface End Record<P>
+ * Title: Interface End Record (0x00E2)<P>
* Description: Shows where the Interface Records end (MMS)
* (has no fields)<P>
* REFERENCE: PG 324 Microsoft Excel 97 Developer's Kit (ISBN: 1-57231-498-2)<P>
* @author Andrew C. Oliver (acoliver at apache dot org)
* @version 2.0-pre
*/
-
-public class InterfaceEndRecord
- extends Record
-{
- public final static short sid = 0xe2;
+public final class InterfaceEndRecord extends Record {
+ public final static short sid = 0x00E2;
public InterfaceEndRecord()
{
}
/**
- * Constructs an InterfaceEnd record and sets its fields appropriately.
- * @param in the RecordInputstream to read the record from
+ * @param in unused (since this record has no data)
*/
-
public InterfaceEndRecord(RecordInputStream in)
- {
- super(in);
- }
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT A INTERFACEEND RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
}
{
}
- /**
- * Constructs an Codepage record and sets its fields appropriately.
- * @param in the RecordInputstream to read the record from
- */
-
public InterfaceHdrRecord(RecordInputStream in)
- {
- super(in);
- }
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT A INTERFACEHDR RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_codepage = in.readShort();
}
{
}
- /**
- * Constructs an Iteration record and sets its fields appropriately.
- * @param in the RecordInputstream to read the record from
- */
-
public IterationRecord(RecordInputStream in)
- {
- super(in);
- }
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT An ITERATION RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_iteration = in.readShort();
}
}
/**
- * Constructs an Label record and sets its fields appropriately.
- *
* @param in the RecordInputstream to read the record from
*/
public LabelRecord(RecordInputStream in)
- {
- super(in);
- }
-
- /**
- * called by constructor, should throw runtime exception in the event of a
- * record passed with a differing ID.
- *
- * @param id alleged id for this record
- */
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("Not a valid LabelRecord");
- }
- }
-
- /**
- * @param in the RecordInputstream to read the record from
- */
- protected void fillFields(RecordInputStream in)
{
field_1_row = in.readUShort();
field_2_column = in.readShort();
{
}
- /**
- * Constructs an LabelSST record and sets its fields appropriately.
- * @param in the RecordInputstream to read the record from
- */
public LabelSSTRecord(RecordInputStream in)
- {
- super(in);
- }
-
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT A valid LabelSST RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_row = in.readUShort();
field_2_column = in.readUShort();
public LeftMarginRecord() { }
- /**
- * Constructs a LeftMargin record and sets its fields appropriately.
- *
- * @param in the RecordInputstream to read the record from
- */
public LeftMarginRecord(RecordInputStream in)
- { super(in); }
-
- /**
- * Checks the sid matches the expected side for this record
- *
- * @param id the expected sid.
- */
- protected void validateSid( short id )
- {
- if ( id != sid )
- {
- throw new RecordFormatException( "Not a LeftMargin record" );
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_margin = in.readDouble();
}
rec.field_1_margin = this.field_1_margin;
return rec;
}
-} // END OF CLASS
+} // END OF CLAS
\ No newline at end of file
}
- /**
- * Constructs a Legend record and sets its fields appropriately.
- *
- * @param in the RecordInputstream to read the record from
- */
-
public LegendRecord(RecordInputStream in)
- {
- super(in);
-
- }
-
- /**
- * Checks the sid matches the expected side for this record
- *
- * @param id the expected sid.
- */
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("Not a Legend record");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_xAxisUpperLeft = in.readInt();
field_2_yAxisUpperLeft = in.readInt();
}
- /**
- * Constructs a LineFormat record and sets its fields appropriately.
- *
- * @param in the RecordInputstream to read the record from
- */
-
public LineFormatRecord(RecordInputStream in)
- {
- super(in);
-
- }
-
- /**
- * Checks the sid matches the expected side for this record
- *
- * @param id the expected sid.
- */
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("Not a LineFormat record");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_lineColor = in.readInt();
field_2_linePattern = in.readShort();
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
package org.apache.poi.hssf.record;
*
* @author Glen Stampoultzis (glens at apache.org)
*/
-public class LinkedDataFormulaField
- implements CustomField
-{
+public final class LinkedDataFormulaField implements CustomField {
Stack formulaTokens = new Stack();
public int getSize()
}
- /**
- * Constructs a LinkedData record and sets its fields appropriately.
- *
- * @param in the RecordInputstream to read the record from
- */
-
public LinkedDataRecord(RecordInputStream in)
- {
- super(in);
-
- }
-
- /**
- * Checks the sid matches the expected side for this record
- *
- * @param id the expected sid.
- */
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("Not a LinkedData record");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_linkType = in.readByte();
field_2_referenceType = in.readByte();
rec.field_2_referenceType = field_2_referenceType;
rec.field_3_options = field_3_options;
rec.field_4_indexNumberFmtRecord = field_4_indexNumberFmtRecord;
- rec.field_5_formulaOfLink = ((LinkedDataFormulaField)field_5_formulaOfLink.clone());;
+ rec.field_5_formulaOfLink = ((LinkedDataFormulaField)field_5_formulaOfLink.clone());
return rec;
}
{
}
- /**
- * Constructs a MMS record and sets its fields appropriately.
- * @param in the RecordInputstream to read the record from
- */
-
public MMSRecord(RecordInputStream in)
- {
- super(in);
- }
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT A MMS RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_addMenuCount = in.readByte();
field_2_delMenuCount = in.readByte();
_startIndex = 0;
_regions = cras;
}
- protected void fillFields(RecordInputStream in) {
- throw new RuntimeException("obsolete");
- }
/**
* get the number of merged areas. If this drops down to 0 you should just go
* ahead and delete the record.
return retval.toString();
}
- protected void validateSid(short id) {
- if (id != sid) {
- throw new RecordFormatException("NOT A MERGEDCELLS RECORD!! "
- + id);
- }
- }
-
public Object clone() {
int nRegions = _numberOfRegions;
CellRangeAddress[] clonedRegions = new CellRangeAddress[nRegions];
{
}
- /**
- * Constructs a MulBlank record and sets its fields appropriately.
- *
- * @param in the RecordInputstream to read the record from
- */
-
- public MulBlankRecord(RecordInputStream in)
- {
- super(in);
- }
-
/**
* get the row number of the cells this represents
*
/**
* @param in the RecordInputstream to read the record from
*/
- protected void fillFields(RecordInputStream in)
+ public MulBlankRecord(RecordInputStream in)
{
//field_1_row = LittleEndian.getShort(data, 0 + offset);
field_1_row = in.readUShort();
return buffer.toString();
}
- /**
- * called by constructor, should throw runtime exception in the event of a
- * record passed with a differing ID.
- *
- * @param id alleged id for this record
- */
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("Not a MulBlankRecord!");
- }
- }
-
public short getSid()
{
return sid;
private RkRec[] field_3_rks;
private short field_4_last_col;
- /**
- * Constructs a MulRK record and sets its fields appropriately.
- *
- * @param in the RecordInputstream to read the record from
- */
- public MulRKRecord(RecordInputStream in) {
- super(in);
- }
-
public int getRow() {
return field_1_row;
}
/**
* @param in the RecordInputstream to read the record from
*/
- protected void fillFields(RecordInputStream in) {
+ public MulRKRecord(RecordInputStream in) {
field_1_row = in.readUShort();
field_2_first_col = in.readShort();
field_3_rks = RkRec.parseRKs(in);
return buffer.toString();
}
- /**
- * called by constructor, should throw runtime exception in the event of a
- * record passed with a differing ID.
- *
- * @param id alleged id for this record
- */
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("Not a MulRKRecord!");
- }
- }
-
public short getSid()
{
return sid;
field_17_status_bar_text = "";
}
- /**
- * Constructs a Name record and sets its fields appropriately.
- *
- * @param in the RecordInputstream to read the record from
- */
- public NameRecord(RecordInputStream in) {
- super(in);
- }
-
/**
* Constructor to create a built-in named region
* @param builtin Built-in byte representation for the name record, use the public constants
return field_17_status_bar_text;
}
- /**
- * called by constructor, should throw runtime exception in the event of a
- * record passed with a differing ID.
- *
- * @param id alleged id for this record
- */
- protected void validateSid(short id) {
- if (id != sid) {
- throw new RecordFormatException("NOT A valid Name RECORD");
- }
- }
-
/**
* called by the class that is responsible for writing this sucker.
*
* @param in the RecordInputstream to read the record from
*/
- protected void fillFields(RecordInputStream in) {
+ public NameRecord(RecordInputStream in) {
field_1_option_flag = in.readShort();
field_2_keyboard_shortcut = in.readByte();
int field_3_length_name_text = in.readByte();
field_3_flags = 0;
}
- /**
- * Constructs a <code>NoteRecord</code> and fills its fields
- * from the supplied <code>RecordInputStream</code>.
- *
- * @param in the stream to read from
- */
- public NoteRecord(RecordInputStream in)
- {
- super(in);
-
- }
-
/**
* @return id of this record.
*/
return sid;
}
- /**
- * Checks the sid matches the expected side for this record
- *
- * @param id the expected sid.
- */
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("Not a NoteRecord record");
- }
- }
-
/**
* Read the record data from the supplied <code>RecordInputStream</code>
*/
- protected void fillFields(RecordInputStream in)
+ public NoteRecord(RecordInputStream in)
{
field_1_row = in.readShort();
field_2_col = in.readShort();
reserved = new byte[22];
}
- /**
- * Constructs a NoteStructureSubRecord and sets its fields appropriately.
- *
- */
- public NoteStructureSubRecord(RecordInputStream in)
- {
- super(in);
-
- }
-
- /**
- * Checks the sid matches the expected side for this record
- *
- * @param id the expected sid.
- */
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("Not a Note Structure record");
- }
- }
-
/**
* Read the record data from the supplied <code>RecordInputStream</code>
*/
- protected void fillFields(RecordInputStream in)
+ public NoteStructureSubRecord(RecordInputStream in)
{
//just grab the raw data
reserved = in.readRemainder();
}
- /**
- * Constructs a NumberFormatIndex record and sets its fields appropriately.
- *
- * @param in the RecordInputstream to read the record from
- */
-
public NumberFormatIndexRecord(RecordInputStream in)
- {
- super(in);
-
- }
-
- /**
- * Checks the sid matches the expected side for this record
- *
- * @param id the expected sid.
- */
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("Not a NumberFormatIndex record");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_formatIndex = in.readShort();
}
}
/**
- * Constructs a Number record and sets its fields appropriately.
- *
* @param in the RecordInputstream to read the record from
*/
public NumberRecord(RecordInputStream in)
- {
- super(in);
- }
-
- /**
- * @param in the RecordInputstream to read the record from
- */
- protected void fillFields(RecordInputStream in)
{
field_1_row = in.readUShort();
field_2_col = in.readUShort();
return 18;
}
- /**
- * called by constructor, should throw runtime exception in the event of a
- * record passed with a differing ID.
- *
- * @param id alleged id for this record
- */
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT A Number RECORD");
- }
- }
-
public short getSid()
{
return sid;
// TODO - ensure 2 sub-records (ftCmo 15h, and ftEnd 00h) are always created
}
- /**
- * Constructs a OBJ record and sets its fields appropriately.
- *
- * @param in the RecordInputstream to read the record from
- */
-
public ObjRecord(RecordInputStream in)
- {
- super(in);
- }
-
- /**
- * Checks the sid matches the expected side for this record
- *
- * @param id the expected sid.
- */
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("Not an OBJ record");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
// TODO - problems with OBJ sub-records stream
// MS spec says first sub-records is always CommonObjectDataSubRecord, and last is
}
- /**
- * Constructs a ObjectLink record and sets its fields appropriately.
- *
- * @param in the RecordInputstream to read the record from
- */
-
public ObjectLinkRecord(RecordInputStream in)
- {
- super(in);
-
- }
-
- /**
- * Checks the sid matches the expected side for this record
- *
- * @param id the expected sid.
- */
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("Not a ObjectLink record");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_anchorId = in.readShort();
field_2_link1 = in.readShort();
{
}
- /**
- * Constructs a Protect record and sets its fields appropriately.
- * @param in the RecordInputstream to read the record from
- */
-
public ObjectProtectRecord(RecordInputStream in)
- {
- super(in);
- }
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT AN OBJECTPROTECT RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_protect = in.readShort();
}
_breakMap = new HashMap();
}
- protected PageBreakRecord(RecordInputStream in) {
- super(in);
- }
-
- protected void fillFields(RecordInputStream in)
+ public PageBreakRecord(RecordInputStream in)
{
int nBreaks = in.readShort();
_breaks = new ArrayList(nBreaks + 2);
createDefaultPalette();
}
- /**
- * Constructs a PaletteRecord record and sets its fields appropriately.
- * @param in the RecordInputstream to read the record from
- */
-
public PaletteRecord(RecordInputStream in)
- {
- super(in);
- }
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT An Palette RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_numcolors = in.readShort();
field_2_colors = new ArrayList(field_1_numcolors);
}
- /**
- * Constructs a Pane record and sets its fields appropriately.
- *
- * @param in the RecordInputstream to read the record from
- */
-
public PaneRecord(RecordInputStream in)
- {
- super(in);
-
- }
-
- /**
- * Checks the sid matches the expected side for this record
- *
- * @param id the expected sid.
- */
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("Not a Pane record");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_x = in.readShort();
field_2_y = in.readShort();
public PasswordRecord() {
}
- /**
- * Constructs a Password record and sets its fields appropriately.
- * @param in the RecordInputstream to read the record from
- */
-
public PasswordRecord(RecordInputStream in) {
- super(in);
- }
-
- protected void validateSid(short id) {
- if (id != sid) {
- throw new RecordFormatException("NOT A PASSWORD RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in) {
field_1_password = in.readShort();
}
{
}
- /**
- * Constructs a PasswordRev4 (PROT4REVPASS) record and sets its fields appropriately.
- * @param in the RecordInputstream to read the record from
- */
-
public PasswordRev4Record(RecordInputStream in)
- {
- super(in);
- }
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT A PROT4REVPASSWORD RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_password = in.readShort();
}
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
package org.apache.poi.hssf.record;
-
-
-import org.apache.poi.util.*;
+import org.apache.poi.util.LittleEndian;
/**
* preceeds and identifies a frame as belonging to the plot area.
* @author Andrew C. Oliver (acoliver at apache.org)
*/
-public class PlotAreaRecord
- extends Record
-{
+public final class PlotAreaRecord extends Record {
public final static short sid = 0x1035;
}
/**
- * Constructs a PlotArea record and sets its fields appropriately.
- *
- * @param in the RecordInputstream to read the record from
+ * @param in unused (since this record has no data)
*/
-
public PlotAreaRecord(RecordInputStream in)
- {
- super(in);
-
- }
-
- /**
- * Checks the sid matches the expected side for this record
- *
- * @param id the expected sid.
- */
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("Not a PlotArea record");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
}
}
- /**
- * Constructs a PlotGrowth record and sets its fields appropriately.
- *
- * @param in the RecordInputstream to read the record from
- */
-
public PlotGrowthRecord(RecordInputStream in)
- {
- super(in);
-
- }
-
- /**
- * Checks the sid matches the expected side for this record
- *
- * @param id the expected sid.
- */
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("Not a PlotGrowth record");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_horizontalScale = in.readInt();
field_2_verticalScale = in.readInt();
{
}
- /**
- * Constructs a Precision record and sets its fields appropriately.
- * @param in the RecordInputstream to read the record from
- */
-
public PrecisionRecord(RecordInputStream in)
- {
- super(in);
- }
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT A PRECISION RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_precision = in.readShort();
}
{
}
- /**
- * Constructs a PrintGridlines record and sets its fields appropriately.
- * @param in the RecordInputstream to read the record from
- */
-
public PrintGridlinesRecord(RecordInputStream in)
- {
- super(in);
- }
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT A PrintGridlines RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_print_gridlines = in.readShort();
}
{
}
- /**
- * Constructs a PrintHeaders record and sets its fields appropriately.
- * @param in the RecordInputstream to read the record from
- */
-
public PrintHeadersRecord(RecordInputStream in)
- {
- super(in);
- }
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT A PrintHeaders RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_print_headers = in.readShort();
}
{
}
- /**
- * Constructs a PrintSetup (SETUP) record and sets its fields appropriately.
- * @param in the RecordInputstream to read the record from
- */
-
public PrintSetupRecord(RecordInputStream in)
- {
- super(in);
- }
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException(
- "NOT A valid PrintSetup record RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_paper_size = in.readShort();
field_2_scale = in.readShort();
{
}
- /**
- * Constructs a Protect record and sets its fields appropriately.
- * @param in the RecordInputstream to read the record from
- */
-
public ProtectRecord(RecordInputStream in)
- {
- super(in);
- }
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT A PROTECT RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_protect = in.readShort();
}
{
}
- /**
- * Constructs a ProtectionRev4 record and sets its fields appropriately.
- * @param in the RecordInputstream to read the record from
- */
-
public ProtectionRev4Record(RecordInputStream in)
- {
- super(in);
- }
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT A PROTECTION REV 4 RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_protect = in.readShort();
}
{
}
- /**
- * Constructs a RK record and sets its fields appropriately.
- * @param in the RecordInputstream to read the record from
- */
public RKRecord(RecordInputStream in)
- {
- super(in);
- }
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT A valid RK RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_row = in.readUShort();
field_2_col = in.readUShort();
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
package org.apache.poi.hssf.record;
* @see org.apache.poi.hssf.model.Workbook
*/
-public class RecalcIdRecord
- extends Record
-{
+public final class RecalcIdRecord extends Record {
public final static short sid = 0x1c1;
public short[] field_1_recalcids;
{
}
- /**
- * Constructs a RECALCID record and sets its fields appropriately.
- * @param in the RecordInputstream to read the record from
- */
-
public RecalcIdRecord(RecordInputStream in)
- {
- super(in);
- }
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT A RECALCID RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_recalcids = new short[ in.remaining() / 2 ];
for (int k = 0; k < field_1_recalcids.length; k++)
short length = ( short ) (tabids.length * 2);
int byteoffset = 4;
- LittleEndian.putShort(data, 0 + offset, sid);
- LittleEndian.putShort(data, 2 + offset,
- (( short ) length));
+ LittleEndian.putUShort(data, 0 + offset, sid);
+ LittleEndian.putUShort(data, 2 + offset, length);
// 2 (num bytes in a short)
for (int k = 0; k < (length / 2); k++)
{
}
- /**
- * Constructor Record
- *
- * @param in the RecordInputstream to read the record from
- */
- protected Record(RecordInputStream in)
- {
- validateSid(in.getSid());
- fillFields(in);
- }
-
- /**
- * called by constructor, should throw runtime exception in the event of a
- * record passed with a differing ID.
- *
- * @param id alleged id for this record
- */
-
- protected abstract void validateSid(short id);
-
- /**
- * called by the constructor, should set class level fields. Should throw
- * runtime exception for bad/icomplete data.
- *
- * @param in the RecordInputstream to read the record from
- */
-
- protected abstract void fillFields(RecordInputStream in);
-
/**
* called by the class that is responsible for writing this sucker.
* Subclasses should implement this so that their data is passed back in a
{
}
- /**
- * Constructs a RefMode record and sets its fields appropriately.
- * @param in the RecordInputstream to read the record from
- */
-
public RefModeRecord(RecordInputStream in)
- {
- super(in);
- }
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT An RefMode RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_mode = in.readShort();
}
{
}
- /**
- * Constructs a RefreshAll record and sets its fields appropriately.
- * @param in the RecordInputstream to read the record from
- */
-
public RefreshAllRecord(RecordInputStream in)
- {
- super(in);
- }
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT A REFRESHALL RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_refreshall = in.readShort();
}
public RightMarginRecord() { }
- /**
- * Constructs a RightMargin record and sets its fields appropriately. * * @param id id must be 0x27 or an exception * will be throw upon validation * @param size size the size of the data area of the record * @param data data of the record (should not contain sid/len)
- */
public RightMarginRecord( RecordInputStream in )
- { super( in ); }
-
- /**
- * Checks the sid matches the expected side for this record * * @param id the expected sid.
- */
- protected void validateSid( short id )
- {
- if ( id != sid )
- {
- throw new RecordFormatException( "Not a RightMargin record" );
- }
- }
-
- protected void fillFields( RecordInputStream in )
{
field_1_margin = in.readDouble();
}
rec.field_1_margin = this.field_1_margin;
return rec;
}
-} // END OF CLASS
\ No newline at end of file
+} // END OF CLA
\ No newline at end of file
field_8_xf_index = ( short ) 0xf;
}
- /**
- * Constructs a Row record and sets its fields appropriately.
- * @param in the RecordInputstream to read the record from
- */
public RowRecord(RecordInputStream in)
- {
- super(in);
- }
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT A valid ROW RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_row_number = in.readUShort();
field_2_first_col = in.readShort();
}
- /**
- * Constructs a SCL record and sets its fields appropriately.
- *
- * @param in the RecordInputstream to read the record from
- */
-
public SCLRecord(RecordInputStream in)
- {
- super(in);
-
- }
-
- /**
- * Checks the sid matches the expected side for this record
- *
- * @param id the expected sid.
- */
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("Not a SCL record");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_numerator = in.readShort();
field_2_denominator = in.readShort();
deserializer = new SSTDeserializer(field_3_strings);
}
- /**
- * Constructs an SST record and sets its fields appropriately.
- *
- * @param in the RecordInputstream to read the record from
- */
-
- public SSTRecord( RecordInputStream in )
- {
- super( in );
- }
-
/**
* Add a string.
*
.equals( other.field_3_strings ) );
}
- /**
- * validate SID
- *
- * @param id the alleged SID
- *
- * @exception RecordFormatException if validation fails
- */
-
- protected void validateSid( final short id )
- throws RecordFormatException
- {
- if ( id != sid )
- {
- throw new RecordFormatException( "NOT An SST RECORD" );
- }
- }
-
/**
* Fill the fields from the data
* <P>
* @param in the RecordInputstream to read the record from
*/
- protected void fillFields( RecordInputStream in )
+ public SSTRecord( RecordInputStream in )
{
// this method is ALWAYS called after construction -- using
// the nontrivial constructor, of course -- so this is where
{
}
- /**
- * Constructs an SaveRecalc record and sets its fields appropriately.
- * @param in the RecordInputstream to read the record from
- */
-
public SaveRecalcRecord(RecordInputStream in)
- {
- super(in);
- }
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT A Save Recalc RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_recalc = in.readShort();
}
{
}
- /**
- * Constructs a Protect record and sets its fields appropriately.
- * @param in the RecordInputstream to read the record from
- */
-
public ScenarioProtectRecord(RecordInputStream in)
- {
- super(in);
- }
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT A SCENARIOPROTECT RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_protect = in.readShort();
}
};
}
- /**
- * Constructs a Selection record and sets its fields appropriately.
- * @param in the RecordInputstream to read the record from
- */
public SelectionRecord(RecordInputStream in) {
- super(in);
- }
-
- protected void validateSid(short id) {
- if (id != sid) {
- throw new RecordFormatException("NOT A valid Selection RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in) {
field_1_pane = in.readByte();
field_2_row_active_cell = in.readUShort();
field_3_col_active_cell = in.readShort();
}
- /**
- * Constructs a SeriesChartGroupIndex record and sets its fields appropriately.
- *
- * @param in the RecordInputstream to read the record from
- */
-
public SeriesChartGroupIndexRecord(RecordInputStream in)
- {
- super(in);
-
- }
-
- /**
- * Checks the sid matches the expected side for this record
- *
- * @param id the expected sid.
- */
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("Not a SeriesChartGroupIndex record");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_chartGroupIndex = in.readShort();
}
}
- /**
- * Constructs a SeriesIndex record and sets its fields appropriately.
- *
- * @param in the RecordInputstream to read the record from
- */
-
public SeriesIndexRecord(RecordInputStream in)
- {
- super(in);
-
- }
-
- /**
- * Checks the sid matches the expected side for this record
- *
- * @param id the expected sid.
- */
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("Not a SeriesIndex record");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_index = in.readShort();
}
}
- /**
- * Constructs a SeriesLabels record and sets its fields appropriately.
- *
- * @param in the RecordInputstream to read the record from
- */
-
public SeriesLabelsRecord(RecordInputStream in)
- {
- super(in);
-
- }
-
- /**
- * Checks the sid matches the expected side for this record
- *
- * @param id the expected sid.
- */
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("Not a SeriesLabels record");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_formatFlags = in.readShort();
}
}
- /**
- * Constructs a SeriesList record and sets its fields appropriately.
- *
- * @param in the RecordInputstream to read the record from
- */
-
public SeriesListRecord(RecordInputStream in)
- {
- super(in);
-
- }
-
- /**
- * Checks the sid matches the expected side for this record
- *
- * @param id the expected sid.
- */
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("Not a SeriesList record");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_seriesNumbers = in.readShortArray();
}
}
- /**
- * Constructs a Series record and sets its fields appropriately.
- *
- * @param in the RecordInputstream to read the record from
- */
-
public SeriesRecord(RecordInputStream in)
- {
- super(in);
-
- }
-
- /**
- * Checks the sid matches the expected side for this record
- *
- * @param id the expected sid.
- */
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("Not a Series record");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_categoryDataType = in.readShort();
field_2_valuesDataType = in.readShort();
}
- /**
- * Constructs a SeriesText record and sets its fields appropriately.
- *
- * @param in the RecordInputstream to read the record from
- */
-
public SeriesTextRecord(RecordInputStream in)
- {
- super(in);
-
- }
-
- /**
- * Checks the sid matches the expected side for this record
- *
- * @param id the expected sid.
- */
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("Not a SeriesText record");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_id = in.readShort();
field_2_textLength = in.readByte();
}
- /**
- * Constructs a SeriesToChartGroup record and sets its fields appropriately.
- *
- * @param in the RecordInputstream to read the record from
- */
-
public SeriesToChartGroupRecord(RecordInputStream in)
- {
- super(in);
-
- }
-
- /**
- * Checks the sid matches the expected side for this record
- *
- * @param id the expected sid.
- */
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("Not a SeriesToChartGroup record");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_chartGroupIndex = in.readShort();
}
_range = new CellRangeAddress8Bit(in);
}
- protected final void validateSid(short id) {
- if (id != getSid()) {
- throw new RecordFormatException("Not a valid SharedFormula");
- }
- }
-
public final CellRangeAddress8Bit getRange() {
return _range;
}
return dataSize + 4;
}
- protected final void fillFields(RecordInputStream in) {
- throw new RuntimeException("Should not be called. Fields are filled in constructor");
- }
-
/**
* @return <code>true</code> if (rowIx, colIx) is within the range ({@link #getRange()})
* of this shared value object.
}
- /**
- * Constructs a SheetProperties record and sets its fields appropriately.
- *
- * @param in the RecordInputstream to read the record from
- */
-
public SheetPropertiesRecord(RecordInputStream in)
- {
- super(in);
-
- }
-
- /**
- * Checks the sid matches the expected side for this record
- *
- * @param id the expected sid.
- */
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("Not a SheetProperties record");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_flags = in.readShort();
field_2_empty = in.readByte();
{
}
- /**
- * Constructs a String record and sets its fields appropriately.
- *
- * @param in the RecordInputstream to read the record from
- */
- public StringRecord(RecordInputStream in)
- {
- super(in);
- }
-
-
- /**
- * Throw a runtime exception in the event of a
- * record passed with a differing ID.
- *
- * @param id alleged id for this record
- */
- protected void validateSid( short id )
- {
- if (id != sid)
- {
- throw new RecordFormatException("Not a valid StringRecord");
- }
- }
-
/**
* @param in the RecordInputstream to read the record from
*/
- protected void fillFields( RecordInputStream in)
+ public StringRecord( RecordInputStream in)
{
field_1_string_length = in.readShort();
field_2_unicode_flag = in.readByte();
{
}
- /**
- * Constructs a Style record and sets its fields appropriately.
- * @param in the RecordInputstream to read the record from
- */
-
public StyleRecord(RecordInputStream in)
- {
- super(in);
- }
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT A STYLE RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_xf_index = in.readShort();
if (getType() == STYLE_BUILT_IN)
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
package org.apache.poi.hssf.record;
/**
* Subrecords are part of the OBJ class.
*/
-abstract public class SubRecord
- extends Record
-{
- public SubRecord()
- {
- }
-
- public SubRecord( RecordInputStream in )
- {
- super( in );
+abstract public class SubRecord extends Record {
+ protected SubRecord() {
}
public static Record createSubRecord(RecordInputStream in)
_isAddInFunctions = false;
}
- /**
- * Constructs a Extern Sheet record and sets its fields appropriately.
- *
- * @param id id must be 0x16 or an exception will be throw upon validation
- * @param size the size of the data area of the record
- * @param data data of the record (should not contain sid/len)
- */
- public SupBookRecord(RecordInputStream in) {
- super(in);
- }
-
- protected void validateSid(short id) {
- if (id != sid) {
- throw new RecordFormatException("NOT An ExternSheet RECORD");
- }
- }
-
public boolean isExternalReferences() {
return field_3_sheet_names != null;
}
* @param size size of data
* @param offset of the record's data (provided a big array of the file)
*/
- protected void fillFields(RecordInputStream in) {
+ public SupBookRecord(RecordInputStream in) {
field_1_number_of_sheets = in.readShort();
if(in.getLength() > SMALL_RECORD_SIZE) {
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
package org.apache.poi.hssf.record;
* @author Andrew C. Oliver (acoliver at apache dot org)
* @version 2.0-pre
*/
-
-public class TabIdRecord
- extends Record
-{
+public final class TabIdRecord extends Record {
public final static short sid = 0x13d;
public short[] field_1_tabids;
{
}
- /**
- * Constructs a TabID record and sets its fields appropriately.
- * @param in the RecordInputstream to read the record from
- */
-
public TabIdRecord(RecordInputStream in)
- {
- super(in);
- }
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT A TABID RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_tabids = new short[ in.remaining() / 2 ];
for (int k = 0; k < field_1_tabids.length; k++)
public int serialize(int offset, byte [] data)
{
- short[] tabids = getTabIdArray();
- short length = ( short ) (tabids.length * 2);
- int byteoffset = 4;
+ short[] tabids = getTabIdArray();
+ int length = tabids.length * 2;
+ int byteoffset = 4;
- LittleEndian.putShort(data, 0 + offset, sid);
- LittleEndian.putShort(data, 2 + offset,
- (( short ) length)); // nubmer tabids *
+ LittleEndian.putUShort(data, 0 + offset, sid);
+ LittleEndian.putUShort(data, 2 + offset, length); // nubmer tabids *
// 2 (num bytes in a short)
for (int k = 0; k < (length / 2); k++)
}
- /**
- * Constructs a TextObjectBase record and sets its fields appropriately.
- *
- * @param in the RecordInputstream to read the record from
- */
-
public TextObjectBaseRecord(RecordInputStream in)
- {
- super(in);
-
- }
-
- /**
- * Checks the sid matches the expected side for this record
- *
- * @param id the expected sid.
- */
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("Not a TextObjectBase record");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_options = in.readShort();
field_2_textOrientation = in.readShort();
package org.apache.poi.hssf.record;
+import java.io.UnsupportedEncodingException;
+
import org.apache.poi.hssf.usermodel.HSSFRichTextString;
-import org.apache.poi.util.LittleEndian;
import org.apache.poi.util.HexDump;
-import java.io.UnsupportedEncodingException;
-import java.io.ByteArrayOutputStream;
+import org.apache.poi.util.LittleEndian;
public class TextObjectRecord
extends TextObjectBaseRecord
public TextObjectRecord( RecordInputStream in )
{
super( in );
- if (str == null)
- str = new HSSFRichTextString("");
- }
- protected void fillFields(RecordInputStream in)
- {
- super.fillFields(in);
if (getTextLength() > 0) {
if (in.isContinueNext() && in.remaining() == 0) {
//1st Continue
processFontRuns(in);
} else throw new RecordFormatException("Expected Continue Record to hold font runs for TextObjectRecord");
}
+ if (str == null)
+ str = new HSSFRichTextString("");
}
}
- /**
- * Constructs a Text record and sets its fields appropriately.
- *
- * @param in the RecordInputstream to read the record from
- */
-
public TextRecord(RecordInputStream in)
- {
- super(in);
-
- }
-
- /**
- * Checks the sid matches the expected side for this record
- *
- * @param id the expected sid.
- */
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("Not a Text record");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_horizontalAlignment = in.readByte();
field_2_verticalAlignment = in.readByte();
}
- /**
- * Constructs a Tick record and sets its fields appropriately.
- *
- * @param in the RecordInputstream to read the record from
- */
-
public TickRecord(RecordInputStream in)
- {
- super(in);
-
- }
-
- /**
- * Checks the sid matches the expected side for this record
- *
- * @param id the expected sid.
- */
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("Not a Tick record");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_majorTickType = in.readByte();
public TopMarginRecord() { }
/**
- * Constructs a TopMargin record and sets its fields appropriately.
- *
* @param in the RecordInputstream to read the record from
*/
public TopMarginRecord( RecordInputStream in )
- { super( in ); }
-
- /**
- * Checks the sid matches the expected side for this record
- *
- * @param id the expected sid.
- */
- protected void validateSid( short id )
- {
- if ( id != sid )
- {
- throw new RecordFormatException( "Not a TopMargin record" );
- }
- }
-
- /**
- * @param in the RecordInputstream to read the record from
- */
- protected void fillFields( RecordInputStream in )
{
field_1_margin = in.readDouble();
}
rec.field_1_margin = this.field_1_margin;
return rec;
}
-} // END OF CLASS
+} // END OF CLAS
\ No newline at end of file
*/
public UncalcedRecord() {
}
- /**
- * read constructor
- */
- public UncalcedRecord(RecordInputStream in) {
- super(in);
- }
public short getSid() {
return sid;
}
- protected void validateSid(short id) {
- if (id != sid) {
- throw new RecordFormatException("NOT AN UNCALCED RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in) {
- short unused = in.readShort();
+ public UncalcedRecord(RecordInputStream in) {
+ in.readShort(); // unused
}
public String toString() {
}
public int serialize(int offset, byte[] data) {
- LittleEndian.putShort(data, 0 + offset, sid);
- LittleEndian.putShort(data, 2 + offset, (short) 2);
- LittleEndian.putShort(data, 4 + offset, (short) 0); // unused
+ LittleEndian.putUShort(data, 0 + offset, sid);
+ LittleEndian.putUShort(data, 2 + offset, 2);
+ LittleEndian.putUShort(data, 4 + offset, 0); // unused
return getRecordSize();
}
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
package org.apache.poi.hssf.record;
public UnicodeString(RecordInputStream in)
{
- validateSid(in.getSid());
- fillFields(in);
+ fillFields(in); // TODO - inline
}
return true;
}
- /**
- * NO OP
- */
-
- protected void validateSid(short id)
- {
-
- // included only for interface compliance
- }
-
/**
* @param in the RecordInputstream to read the record from
*/
throw new RecordFormatException("Expected continue record.");
}
if (isCompressed) {
- //Typecast direct to char from byte with high bit set causes all ones
- //in the high byte of the char (which is of course incorrect)
- char ch = (char)( (short)0xff & (short)in.readByte() );
+ char ch = (char)in.readUByte(); // avoid sex
tmpString.append(ch);
} else {
char ch = (char) in.readShort();
}
- /**
- * Constructs a Units record and sets its fields appropriately.
- *
- * @param in the RecordInputstream to read the record from
- */
public UnitsRecord(RecordInputStream in)
- {
- super(in);
-
- }
-
- /**
- * Checks the sid matches the expected side for this record
- *
- * @param id the expected sid.
- */
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("Not a Units record");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_units = in.readShort();
return 4 + _rawData.length;
}
- /**
- * NO OP!
- */
- protected void validateSid(short id) {
- // if we had a valid sid we wouldn't be using the "Unknown Record" record now would we?
- }
-
/**
* print a sort of string representation ([UNKNOWN RECORD] id = x [/UNKNOWN RECORD])
*/
return false;
}
- protected final void fillFields(RecordInputStream in) {
- throw new RecordFormatException(
- "Unknown record cannot be constructed via offset -- we need a copy of the data");
- }
-
public final Object clone() {
// immutable - ok to return this
return this;
{
}
- /**
- * Constructs a UseSelFS record and sets its fields appropriately.
- * @param in the RecordInputstream to read the record from
- */
-
public UseSelFSRecord(RecordInputStream in)
- {
- super(in);
- }
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT A UseSelFS RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_flag = in.readShort();
}
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
package org.apache.poi.hssf.record;
* @version 2.0-pre
*/
-public class VCenterRecord
- extends Record
-{
+public final class VCenterRecord extends Record {
public final static short sid = 0x84;
- private short field_1_vcenter;
+ private int field_1_vcenter;
public VCenterRecord()
{
}
- /**
- * Constructs a VCENTER record and sets its fields appropriately.
- * @param in the RecordInputstream to read the record from
- */
-
public VCenterRecord(RecordInputStream in)
- {
- super(in);
- }
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT A VCenter RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_vcenter = in.readShort();
}
public void setVCenter(boolean hc)
{
- if (hc == true)
- {
- field_1_vcenter = 1;
- }
- else
- {
- field_1_vcenter = 0;
- }
+ field_1_vcenter = hc ? 1 : 0;
}
/**
public int serialize(int offset, byte [] data)
{
- LittleEndian.putShort(data, 0 + offset, sid);
- LittleEndian.putShort(data, 2 + offset, ( short ) 0x2);
- LittleEndian.putShort(data, 4 + offset, ( short ) field_1_vcenter);
+ LittleEndian.putUShort(data, 0 + offset, sid);
+ LittleEndian.putUShort(data, 2 + offset, 0x2);
+ LittleEndian.putUShort(data, 4 + offset, field_1_vcenter);
return getRecordSize();
}
}
- /**
- * Constructs a ValueRange record and sets its fields appropriately.
- *
- * @param in the RecordInputstream to read the record from
- */
-
public ValueRangeRecord(RecordInputStream in)
- {
- super(in);
-
- }
-
- /**
- * Checks the sid matches the expected side for this record
- *
- * @param id the expected sid.
- */
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("Not a ValueRange record");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_minimumAxisValue = in.readDouble();
field_2_maximumAxisValue = in.readDouble();
super(in);
}
- protected void validateSid(short id) {
- if (id != getSid()) {
- throw new RecordFormatException(
- "NOT A HorizontalPageBreak or VerticalPageBreak RECORD!! " + id);
- }
- }
-
public short getSid() {
return sid;
}
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
package org.apache.poi.hssf.record;
* @author Jason Height (jheight at chariot dot net dot au)
* @version 2.0-pre
*/
-
-public class WSBoolRecord
- extends Record
-{
+public final class WSBoolRecord extends Record {
public final static short sid = 0x81;
private byte field_1_wsbool; // crappy names are because this is really one big short field (2byte)
- private byte field_2_wsbool; // but the docs inconsistantly use it as 2 seperate bytes
+ private byte field_2_wsbool; // but the docs inconsistently use it as 2 separate bytes
- // I decided to be consistant in this way.
- static final private BitField autobreaks =
- BitFieldFactory.getInstance(0x01); // are automatic page breaks visible
+ // I decided to be consistent in this way.
+ private static final BitField autobreaks = BitFieldFactory.getInstance(0x01); // are automatic page breaks visible
// bits 1 to 3 unused
- static final private BitField dialog =
- BitFieldFactory.getInstance(0x10); // is sheet dialog sheet
- static final private BitField applystyles =
- BitFieldFactory.getInstance(0x20); // whether to apply automatic styles to outlines
- static final private BitField rowsumsbelow = BitFieldFactory.getInstance(
- 0x40); // whether summary rows will appear below detail in outlines
- static final private BitField rowsumsright = BitFieldFactory.getInstance(
- 0x80); // whether summary rows will appear right of the detail in outlines
- static final private BitField fittopage =
- BitFieldFactory.getInstance(0x01); // whether to fit stuff to the page
+ private static final BitField dialog = BitFieldFactory.getInstance(0x10); // is sheet dialog sheet
+ private static final BitField applystyles = BitFieldFactory.getInstance(0x20); // whether to apply automatic styles to outlines
+ private static final BitField rowsumsbelow = BitFieldFactory.getInstance(0x40); // whether summary rows will appear below detail in outlines
+ private static final BitField rowsumsright = BitFieldFactory.getInstance(0x80); // whether summary rows will appear right of the detail in outlines
+ private static final BitField fittopage = BitFieldFactory.getInstance(0x01); // whether to fit stuff to the page
// bit 2 reserved
- static final private BitField displayguts = BitFieldFactory.getInstance(
- 0x06); // whether to display outline symbols (in the gutters)
+ private static final BitField displayguts = BitFieldFactory.getInstance(0x06); // whether to display outline symbols (in the gutters)
// bits 4-5 reserved
- static final private BitField alternateexpression = // whether to use alternate expression eval
- BitFieldFactory.getInstance(0x40);
- static final private BitField alternateformula = // whether to use alternate formula entry
- BitFieldFactory.getInstance(0x80);
+ private static final BitField alternateexpression = BitFieldFactory.getInstance(0x40); // whether to use alternate expression eval
+ private static final BitField alternateformula = BitFieldFactory.getInstance(0x80); // whether to use alternate formula entry
public WSBoolRecord()
{
}
- /**
- * Constructs a WSBool record and sets its fields appropriately.
- * @param in the RecordInputstream to read the record from
- */
-
public WSBoolRecord(RecordInputStream in)
- {
- super(in);
- }
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT A WSBoolRECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
byte data[] = in.readRemainder();
field_1_wsbool =
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
package org.apache.poi.hssf.record;
* @author Andrew C. Oliver (acoliver at apache dot org)
* @version 2.0-pre
*/
-
-public class WindowOneRecord
- extends Record
-{
+public final class WindowOneRecord extends Record {
public final static short sid = 0x3d;
// our variable names stolen from old TV sets.
{
}
- /**
- * Constructs a WindowOne record and sets its fields appropriately.
- * @param in the RecordInputstream to read the record from
- */
-
public WindowOneRecord(RecordInputStream in)
- {
- super(in);
- }
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT A WINDOW1 RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_h_hold = in.readShort();
field_2_v_hold = in.readShort();
{
}
- /**
- * Constructs a WindowProtect record and sets its fields appropriately.
- * @param in the RecordInputstream to read the record from
- */
-
public WindowProtectRecord(RecordInputStream in)
- {
- super(in);
- }
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT A WINDOWPROTECT RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
field_1_protect = in.readShort();
}
{
}
- /**
- * Constructs a WindowTwo record and sets its fields appropriately.
- * @param in the RecordInputstream to read the record from
- */
-
public WindowTwoRecord(RecordInputStream in)
- {
- super(in);
- }
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT A valid WindowTwo RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
int size = in.remaining();
field_1_options = in.readShort();
{
}
- /**
- * Constructs a WriteAccess record and sets its fields appropriately.
- * @param in the RecordInputstream to read the record from
- */
-
public WriteAccessRecord(RecordInputStream in)
- {
- super(in);
- }
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT A WRITEACCESS RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
byte[] data = in.readRemainder();
//The string is always 112 characters (padded with spaces), therefore
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
package org.apache.poi.hssf.record;
import org.apache.poi.util.LittleEndian;
-import org.apache.poi.util.StringUtil;
/**
* Title: Write Protect Record<P>
* REFERENCE: PG 425 Microsoft Excel 97 Developer's Kit (ISBN: 1-57231-498-2)<P>
* @version 3.0-pre
*/
-
-public class WriteProtectRecord
- extends Record
-{
+public final class WriteProtectRecord extends Record {
public final static short sid = 0x86;
public WriteProtectRecord()
}
/**
- * Constructs a WriteAccess record and sets its fields appropriately.
- * @param in the RecordInputstream to read the record from
+ * @param in unused (since this record has no data)
*/
-
public WriteProtectRecord(RecordInputStream in)
- {
- super(in);
- }
-
- protected void validateSid(short id)
- {
- if (id != sid)
- {
- throw new RecordFormatException("NOT A WRITEPROTECT RECORD");
- }
- }
-
- protected void fillFields(RecordInputStream in)
{
}
public int serialize(int offset, byte [] data)
{
- LittleEndian.putShort(data, 0 + offset, sid);
- LittleEndian.putShort(data, 2 + offset, (short)0);
+ LittleEndian.putUShort(data, 0 + offset, sid);
+ LittleEndian.putUShort(data, 2 + offset, 0);
return getRecordSize();
}
\r
\r
/**\r
- * If cell contains formula, it evaluates the formula,\r
- * and saves the result of the formula. The cell\r
- * remains as a formula cell.\r
- * Else if cell does not contain formula, this method leaves\r
- * the cell unchanged.\r
- * Note that the type of the formula result is returned,\r
- * so you know what kind of value is also stored with\r
- * the formula.\r
+ * If cell contains formula, it evaluates the formula, and saves the result of the formula. The\r
+ * cell remains as a formula cell. If the cell does not contain formula, this method returns -1\r
+ * and leaves the cell unchanged.\r
+ * \r
+ * Note that the type of the <em>formula result</em> is returned, so you know what kind of \r
+ * cached formula result is also stored with the formula.\r
* <pre>\r
* int evaluatedCellType = evaluator.evaluateFormulaCell(cell);\r
* </pre>\r
- * Be aware that your cell will hold both the formula,\r
- * and the result. If you want the cell replaced with\r
- * the result of the formula, use {@link #evaluateInCell(HSSFCell)}\r
+ * Be aware that your cell will hold both the formula, and the result. If you want the cell \r
+ * replaced with the result of the formula, use {@link #evaluateInCell(HSSFCell)}\r
* @param cell The cell to evaluate\r
- * @return The type of the formula result (the cell's type remains as HSSFCell.CELL_TYPE_FORMULA however)\r
+ * @return -1 for non-formula cells, or the type of the <em>formula result</em>\r
*/\r
public int evaluateFormulaCell(Cell cell) {\r
if (cell == null || cell.getCellType() != HSSFCell.CELL_TYPE_FORMULA) {\r
}
/**
- * set the sheet name.
- * Will throw IllegalArgumentException if the name is greater than 31 chars
- * or contains /\?*[]
+ * Sets the sheet name.
+ * Will throw IllegalArgumentException if the name is duplicated or contains /\?*[]
+ * Note - Excel allows sheet names up to 31 chars in length but other applications allow more.
+ * Excel does not crash with names longer than 31 chars, but silently truncates such names to
+ * 31 chars. POI enforces uniqueness on the first 31 chars.
+ *
* @param sheetIx number (0 based)
*/
- public void setSheetName(int sheetIx, String name)
- {
- if (workbook.doesContainsSheetName( name, sheetIx )) {
- throw new IllegalArgumentException( "The workbook already contains a sheet with this name" );
+ public void setSheetName(int sheetIx, String name) {
+ if (workbook.doesContainsSheetName(name, sheetIx)) {
+ throw new IllegalArgumentException("The workbook already contains a sheet with this name");
}
validateSheetIndex(sheetIx);
workbook.setSheetName(sheetIx, name);
* create an HSSFSheet for this HSSFWorkbook, adds it to the sheets and
* returns the high level representation. Use this to create new sheets.
*
- * @param sheetname
- * sheetname to set for the sheet.
+ * @param sheetname the name for the new sheet. Note - certain length limits
+ * apply. See {@link #setSheetName(int, String)}.
+ *
* @return HSSFSheet representing the new sheet.
* @throws IllegalArgumentException
* if there is already a sheet present with a case-insensitive
* match for the specified name.
*/
-
public HSSFSheet createSheet(String sheetname)
{
if (workbook.doesContainsSheetName( sheetname, _sheets.size() ))
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
-
package org.apache.poi.hssf.record;
* @author Glen Stampoultzis (glens at apache.org)
*/
-public class TestAreaFormatRecord
- extends TestCase
-{
+public final class TestAreaFormatRecord extends TestCase {
byte[] data = new byte[] {
(byte)0xFF,(byte)0xFF,(byte)0xFF,(byte)0x00, // forecolor
(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00, // backcolor
};
- public TestAreaFormatRecord(String name)
- {
- super(name);
- }
-
- public void testLoad()
- throws Exception
- {
+ public void testLoad() {
AreaFormatRecord record = new AreaFormatRecord(new TestcaseRecordInputStream((short)0x100a, (short)data.length, data));
assertEquals( 0xFFFFFF, record.getForegroundColor());
assertEquals( 20, record.getRecordSize() );
-
- record.validateSid((short)0x100a);
}
public void testStore()
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
-
package org.apache.poi.hssf.record;
*
* @author Glen Stampoultzis (glens at apache.org)
*/
-public class TestAreaRecord
- extends TestCase
-{
+public final class TestAreaRecord extends TestCase {
byte[] data = new byte[] {
(byte)0x02,(byte)0x00 // format flags
};
- public TestAreaRecord(String name)
- {
- super(name);
- }
-
- public void testLoad()
- throws Exception
- {
+ public void testLoad() {
AreaRecord record = new AreaRecord(new TestcaseRecordInputStream((short)0x101A, (short)data.length, data));
assertEquals( 2, record.getFormatFlags());
assertEquals( 6, record.getRecordSize() );
-
- record.validateSid((short)0x101A);
}
public void testStore()
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
-
package org.apache.poi.hssf.record;
* @author Glen Stampoultzis (glens at apache.org)
*/
-public class TestAxisLineFormatRecord
- extends TestCase
-{
+public final class TestAxisLineFormatRecord extends TestCase {
byte[] data = new byte[] {
(byte)0x01,(byte)0x00
};
- public TestAxisLineFormatRecord(String name)
- {
- super(name);
- }
-
- public void testLoad()
- throws Exception
- {
+ public void testLoad() {
AxisLineFormatRecord record = new AxisLineFormatRecord(new TestcaseRecordInputStream((short)0x1021, (short)data.length, data));
assertEquals( AxisLineFormatRecord.AXIS_TYPE_MAJOR_GRID_LINE, record.getAxisType());
-
assertEquals( 6, record.getRecordSize() );
-
- record.validateSid((short)0x1021);
}
public void testStore()
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
-
package org.apache.poi.hssf.record;
* @author Andrew C. Oliver(acoliver at apache.org)
*/
-public class TestAxisOptionsRecord
- extends TestCase
-{
+public final class TestAxisOptionsRecord extends TestCase {
byte[] data = new byte[] {
(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x01,
(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x01,(byte)0x00,
(byte)0x00,(byte)0xEF,(byte)0x00
};
- public TestAxisOptionsRecord(String name)
- {
- super(name);
- }
-
- public void testLoad()
- throws Exception
- {
+ public void testLoad() {
AxisOptionsRecord record = new AxisOptionsRecord(new TestcaseRecordInputStream((short)0x1062, (short)data.length, data));
assertEquals( 0, record.getMinimumCategory());
assertEquals( 0, record.getMaximumCategory());
assertEquals( true, record.isDefaultCross() );
assertEquals( true, record.isDefaultDateSettings() );
-
assertEquals( 22, record.getRecordSize() );
-
- record.validateSid((short)0x1062);
}
public void testStore()
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
-
package org.apache.poi.hssf.record;
*
* @author Glen Stampoultzis (glens at apache.org)
*/
-public class TestAxisParentRecord
- extends TestCase
-{
+public final class TestAxisParentRecord extends TestCase {
byte[] data = new byte[] {
(byte)0x00,(byte)0x00, // axis type
(byte)0x1D,(byte)0x02,(byte)0x00,(byte)0x00, // x
(byte)0x56,(byte)0x0B,(byte)0x00,(byte)0x00 // height
};
- public TestAxisParentRecord(String name)
- {
- super(name);
- }
-
- public void testLoad()
- throws Exception
- {
+ public void testLoad() {
AxisParentRecord record = new AxisParentRecord(new TestcaseRecordInputStream((short)0x1041, (short)data.length, data));
assertEquals( AxisParentRecord.AXIS_TYPE_MAIN, record.getAxisType());
assertEquals( 0x021d, record.getX());
assertEquals( 0x0b31, record.getWidth());
assertEquals( 0x0b56, record.getHeight());
-
assertEquals( 22, record.getRecordSize() );
-
- record.validateSid((short)0x1041);
}
public void testStore()
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
-
package org.apache.poi.hssf.record;
* @author Glen Stampoultzis (glens at apache.org)
*/
-public class TestAxisRecord
- extends TestCase
-{
+public final class TestAxisRecord extends TestCase {
byte[] data = new byte[] {
(byte)0x00,(byte)0x00, // type
(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,
(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,
(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,
(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00
-
};
- public TestAxisRecord(String name)
- {
- super(name);
- }
-
- public void testLoad()
- throws Exception
- {
+ public void testLoad() {
AxisRecord record = new AxisRecord(new TestcaseRecordInputStream((short)0x101d, (short)data.length, data));
assertEquals( AxisRecord.AXIS_TYPE_CATEGORY_OR_X_AXIS, record.getAxisType());
assertEquals( 0, record.getReserved3());
assertEquals( 0, record.getReserved4());
-
assertEquals( 4 + 18, record.getRecordSize() );
-
- record.validateSid((short)0x101d);
}
public void testStore()
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
-
package org.apache.poi.hssf.record;
* @author Glen Stampoultzis (glens at apache.org)
*/
-public class TestAxisUsedRecord
- extends TestCase
-{
+public final class TestAxisUsedRecord extends TestCase {
byte[] data = new byte[] {
(byte)0x01,(byte)0x00,
};
- public TestAxisUsedRecord(String name)
- {
- super(name);
- }
-
- public void testLoad()
- throws Exception
- {
+ public void testLoad() {
AxisUsedRecord record = new AxisUsedRecord(new TestcaseRecordInputStream((short)0x1046, (short)data.length, data));
assertEquals( 1, record.getNumAxis());
-
assertEquals( 6, record.getRecordSize() );
-
- record.validateSid((short)0x1046);
}
public void testStore()
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
-
package org.apache.poi.hssf.record;
* @author Glen Stampoultzis (glens at apache.org)
*/
-public class TestBarRecord
- extends TestCase
-{
+public final class TestBarRecord extends TestCase {
byte[] data = new byte[] {
(byte)0x00,(byte)0x00, // bar space
(byte)0x96,(byte)0x00, // category space
(byte)0x00,(byte)0x00 // format flags
};
- public TestBarRecord(String name)
- {
- super(name);
- }
-
- public void testLoad()
- throws Exception
- {
+ public void testLoad() {
BarRecord record = new BarRecord(new TestcaseRecordInputStream((short)0x1017, (short)data.length, data));
assertEquals( 0, record.getBarSpace());
assertEquals( false, record.isDisplayAsPercentage() );
assertEquals( false, record.isShadow() );
-
assertEquals( 10, record.getRecordSize() );
-
- record.validateSid((short)0x1017);
}
public void testStore()
public void testName() {
BoundSheetRecord record = new BoundSheetRecord("1234567890223456789032345678904");
- try {
- record.setSheetname("12345678902234567890323456789042");
- throw new AssertionFailedError("Should have thrown IllegalArgumentException, but didnt");
- } catch (IllegalArgumentException e) {
- // expected
- }
-
try {
record.setSheetname("s//*s");
throw new AssertionFailedError("Should have thrown IllegalArgumentException, but didnt");
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
-
package org.apache.poi.hssf.record;
* @author Glen Stampoultzis (glens at apache.org)
*/
-public class TestCategorySeriesAxisRecord
- extends TestCase
-{
+public final class TestCategorySeriesAxisRecord extends TestCase {
byte[] data = new byte[] {
(byte)0x01,(byte)0x00, // crossing point
(byte)0x01,(byte)0x00, // label frequency
(byte)0x01,(byte)0x00 // options
};
- public TestCategorySeriesAxisRecord(String name)
- {
- super(name);
- }
-
- public void testLoad()
- throws Exception
- {
+ public void testLoad() {
CategorySeriesAxisRecord record = new CategorySeriesAxisRecord(new TestcaseRecordInputStream((short)0x1020, (short)data.length, data));
assertEquals( 1, record.getCrossingPoint());
assertEquals( false, record.isCrossesFarRight() );
assertEquals( false, record.isReversed() );
-
assertEquals( 4 + 8, record.getRecordSize() );
-
- record.validateSid((short)0x1020);
}
public void testStore()
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
-
package org.apache.poi.hssf.record;
* @author Glen Stampoultzis (glens at apache.org)
*/
-public class TestChartRecord
- extends TestCase
-{
+public final class TestChartRecord extends TestCase {
byte[] data = new byte[] {
(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,
(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,
(byte)0xC8,(byte)0xCC,(byte)0xE5,(byte)0x00
};
- public TestChartRecord(String name)
- {
- super(name);
- }
-
- public void testLoad()
- throws Exception
- {
+ public void testLoad() {
ChartRecord record = new ChartRecord(new TestcaseRecordInputStream((short)0x1002, (short)data.length, data));
assertEquals( 0, record.getX());
assertEquals( 30474216, record.getWidth());
assertEquals( 15060168, record.getHeight());
-
assertEquals( 20, record.getRecordSize() );
-
- record.validateSid((short)0x1002);
}
public void testStore()
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
-
package org.apache.poi.hssf.record;
* @author Glen Stampoultzis (glens at apache.org)
*/
-public class TestCommonObjectDataSubRecord
- extends TestCase
-{
+public final class TestCommonObjectDataSubRecord extends TestCase {
byte[] data = new byte[] {
(byte)0x12,(byte)0x00,(byte)0x01,(byte)0x00,
(byte)0x01,(byte)0x00,(byte)0x11,(byte)0x60,
(byte)0x00,(byte)0x00,
};
- public TestCommonObjectDataSubRecord(String name)
- {
- super(name);
- }
-
- public void testLoad()
- throws Exception
- {
+ public void testLoad() {
CommonObjectDataSubRecord record = new CommonObjectDataSubRecord(new TestcaseRecordInputStream((short)0x15, (short)data.length, data));
-
assertEquals( CommonObjectDataSubRecord.OBJECT_TYPE_LIST_BOX, record.getObjectType());
assertEquals( (short)1, record.getObjectId());
assertEquals( (int)218103808, record.getReserved2());
assertEquals( (int)294, record.getReserved3());
assertEquals( 22 , record.getRecordSize() );
-
- record.validateSid((short)0x15);
}
public void testStore()
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
-
package org.apache.poi.hssf.record;
* @author Glen Stampoultzis (glens at apache.org)
*/
-public class TestDatRecord
- extends TestCase
-{
+public final class TestDatRecord extends TestCase {
byte[] data = new byte[] {
(byte)0x0D,(byte)0x00 // options
};
- public TestDatRecord(String name)
- {
- super(name);
- }
-
- public void testLoad()
- throws Exception
- {
+ public void testLoad() {
DatRecord record = new DatRecord(new TestcaseRecordInputStream((short)0x1063, (short)data.length, data));
assertEquals( 0xD, record.getOptions());
assertEquals( true, record.isBorder() );
assertEquals( true, record.isShowSeriesKey() );
-
assertEquals( 6, record.getRecordSize() );
-
- record.validateSid((short)0x1063);
}
public void testStore()
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
-
package org.apache.poi.hssf.record;
* @author Glen Stampoultzis (glens at apache.org)
*/
-public class TestDataFormatRecord
- extends TestCase
-{
+public final class TestDataFormatRecord extends TestCase {
byte[] data = new byte[] {
(byte)0xFF,(byte)0xFF, // point number
(byte)0x00,(byte)0x00, // series index
(byte)0x00,(byte)0x00 // format flags
};
- public TestDataFormatRecord(String name)
- {
- super(name);
- }
-
- public void testLoad()
- throws Exception
- {
+ public void testLoad() {
DataFormatRecord record = new DataFormatRecord(new TestcaseRecordInputStream((short)0x1006, (short)data.length, data));
assertEquals( (short)0xFFFF, record.getPointNumber());
assertEquals( 0, record.getFormatFlags());
assertEquals( false, record.isUseExcel4Colors() );
-
assertEquals( 12, record.getRecordSize() );
-
- record.validateSid((short)0x1006);
}
public void testStore()
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
-
package org.apache.poi.hssf.record;
* @author Glen Stampoultzis (glens at apache.org)
*/
-public class TestDefaultDataLabelTextPropertiesRecord
- extends TestCase
-{
+public final class TestDefaultDataLabelTextPropertiesRecord extends TestCase {
byte[] data = new byte[] {
(byte)0x02,(byte)0x00
};
- public TestDefaultDataLabelTextPropertiesRecord(String name)
- {
- super(name);
- }
-
- public void testLoad()
- throws Exception
- {
+ public void testLoad() {
DefaultDataLabelTextPropertiesRecord record = new DefaultDataLabelTextPropertiesRecord(new TestcaseRecordInputStream((short)0x1024, (short)data.length, data));
assertEquals( 2, record.getCategoryDataType());
-
assertEquals( 6, record.getRecordSize() );
-
- record.validateSid((short)0x1024);
}
public void testStore()
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
-
package org.apache.poi.hssf.record;
*
* @author Glen Stampoultzis (glens at apache.org)
*/
-public class TestEndSubRecord
- extends TestCase
-{
+public final class TestEndSubRecord extends TestCase {
byte[] data = new byte[] {
};
- public TestEndSubRecord(String name)
- {
- super(name);
- }
-
- public void testLoad()
- throws Exception
- {
+ public void testLoad() {
EndSubRecord record = new EndSubRecord(new TestcaseRecordInputStream((short)0x00, (short)data.length, data));
-
-
assertEquals( 4, record.getRecordSize() );
-
- record.validateSid((short)0x00);
}
public void testStore()
0xC0-256, 0x20 // Fill Palette 20c0
};
- public TestExtendedFormatRecord(String name)
- {
- super(name);
- }
-
- public void testLoad()
- throws Exception
- {
+ public void testLoad() {
ExtendedFormatRecord record = new ExtendedFormatRecord(new TestcaseRecordInputStream((short)0xe0, (short)data.length, data));
assertEquals(0, record.getFontIndex());
assertEquals(0, record.getFormatIndex());
assertEquals(0x20c0, record.getFillPaletteOptions());
assertEquals( 20 + 4, record.getRecordSize() );
- record.validateSid((short)0xe0);
}
public void testStore()
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
* @author Glen Stampoultzis (glens at apache.org)
*/
-public class TestFontBasisRecord
- extends TestCase
-{
+public final class TestFontBasisRecord extends TestCase {
byte[] data = new byte[] {
(byte)0x28,(byte)0x1A, // x basis
(byte)0x9C,(byte)0x0F, // y basis
(byte)0x05,(byte)0x00 // index to font table
};
- public TestFontBasisRecord(String name)
- {
- super(name);
- }
-
- public void testLoad()
- throws Exception
- {
+ public void testLoad() {
FontBasisRecord record = new FontBasisRecord(new TestcaseRecordInputStream((short)0x1060, (short)data.length, data));
assertEquals( 0x1a28, record.getXBasis());
assertEquals( 0x00, record.getScale());
assertEquals( 0x05, record.getIndexToFontTable());
-
assertEquals( 14, record.getRecordSize() );
-
- record.validateSid((short)0x1060);
}
public void testStore()
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
-
package org.apache.poi.hssf.record;
* @author Glen Stampoultzis (glens at apache.org)
*/
-public class TestFontIndexRecord
- extends TestCase
-{
+public final class TestFontIndexRecord extends TestCase {
byte[] data = new byte[] {
(byte)0x05,(byte)0x00
};
- public TestFontIndexRecord(String name)
- {
- super(name);
- }
-
- public void testLoad()
- throws Exception
- {
+ public void testLoad() {
FontIndexRecord record = new FontIndexRecord(new TestcaseRecordInputStream((short)0x1026, (short)data.length, data));
assertEquals( 5, record.getFontIndex());
-
assertEquals( 6, record.getRecordSize() );
-
- record.validateSid((short)0x1026);
}
public void testStore()
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
* class works correctly. Test data taken directly from a real
* Excel file.
*/
-public class TestFontRecord
- extends TestCase
-{
+public final class TestFontRecord extends TestCase {
byte[] header = new byte[] {
0x31, 00, 0x1a, 00, // sid=31, 26 bytes long
};
0x00, 0x61, 0x00, 0x6C, 0x00
};
- public TestFontRecord(String name)
- {
- super(name);
- }
-
- public void testLoad()
- throws Exception
- {
+ public void testLoad() {
FontRecord record = new FontRecord(new TestcaseRecordInputStream((short)0x31, (short)data.length, data));
assertEquals( 0xc8, record.getFontHeight());
assertEquals( 26 + 4, record.getRecordSize() );
- record.validateSid((short)0x31);
}
public void testStore()
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
-
package org.apache.poi.hssf.record;
* @author Glen Stampoultzis (glens at apache.org)
*/
-public class TestFrameRecord
- extends TestCase
-{
+public final class TestFrameRecord extends TestCase {
byte[] data = new byte[] {
(byte)0x00,(byte)0x00, // border type
(byte)0x02,(byte)0x00 // options
};
- public TestFrameRecord(String name)
- {
- super(name);
- }
-
- public void testLoad()
- throws Exception
- {
+ public void testLoad() {
FrameRecord record = new FrameRecord(new TestcaseRecordInputStream((short)0x1032, (short)data.length, data));
assertEquals( FrameRecord.BORDER_TYPE_REGULAR, record.getBorderType());
assertEquals( false, record.isAutoSize() );
assertEquals( true, record.isAutoPosition() );
-
assertEquals( 8, record.getRecordSize() );
-
- record.validateSid((short)0x1032);
}
public void testStore()
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
-
package org.apache.poi.hssf.record;
* @author Andrew C. Oliver (acoliver at apache.org)
*/
-public class TestLegendRecord
- extends TestCase
-{
+public class TestLegendRecord extends TestCase {
byte[] data = new byte[] {
(byte)0x76,(byte)0x0E,(byte)0x00,(byte)0x00,(byte)0x86,(byte)0x07,(byte)0x00,(byte)0x00,(byte)0x19,(byte)0x01,(byte)0x00,(byte)0x00,(byte)0x8B,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x03,(byte)0x01,(byte)0x1F,(byte)0x00
};
- public TestLegendRecord(String name)
- {
- super(name);
- }
-
- public void testLoad()
- throws Exception
- {
+ public void testLoad() {
LegendRecord record = new LegendRecord(new TestcaseRecordInputStream((short)0x1015, (short)data.length, data));
assertEquals( 24, record.getRecordSize() );
-
- record.validateSid((short)0x1015);
}
public void testStore()
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
-
package org.apache.poi.hssf.record;
* @author Glen Stampoultzis (glens at apache.org)
*/
-public class TestLineFormatRecord
- extends TestCase
-{
+public class TestLineFormatRecord extends TestCase {
byte[] data = new byte[] {
(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00, // colour
(byte)0x00,(byte)0x00, // pattern
(byte)0x4D,(byte)0x00 // index
};
- public TestLineFormatRecord(String name)
- {
- super(name);
- }
-
- public void testLoad()
- throws Exception
- {
+ public void testLoad() {
LineFormatRecord record = new LineFormatRecord(new TestcaseRecordInputStream((short)0x1007, (short)data.length, data));
assertEquals( 0, record.getLineColor());
assertEquals( 0, record.getLinePattern());
assertEquals( false, record.isDrawTicks() );
assertEquals( 0x4d, record.getColourPaletteIndex());
-
assertEquals( 16, record.getRecordSize() );
-
- record.validateSid((short)0x1007);
}
public void testStore()
assertEquals(ptgExpected.toString(), ptgActual.toString());
assertEquals( data.length + 4, record.getRecordSize() );
-
- record.validateSid((short)0x1051);
-
}
public void testStore() {
0x6E, 0x64, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x00
};
- public TestNoteRecord(String name)
- {
- super(name);
- }
-
- public void testRead()
- throws Exception
- {
+ public void testRead() {
NoteRecord record = new NoteRecord(new TestcaseRecordInputStream(NoteRecord.sid, (short)data.length, data));
assertEquals(NoteRecord.sid, record.getSid());
- record.validateSid(NoteRecord.sid);
assertEquals(6, record.getRow());
assertEquals(1, record.getColumn());
assertEquals(NoteRecord.NOTE_VISIBLE, record.getFlags());
}
- public void testWrite()
- {
+ public void testWrite() {
NoteRecord record = new NoteRecord();
assertEquals(NoteRecord.sid, record.getSid());
- record.validateSid(NoteRecord.sid);
record.setRow((short)6);
record.setColumn((short)1);
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
+
package org.apache.poi.hssf.record;
*
* @author Yegor Kozlov
*/
-public class TestNoteStructureSubRecord
- extends TestCase
-{
+public final class TestNoteStructureSubRecord extends TestCase {
private byte[] data = new byte[] {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, (byte)0x80, 0x00, 0x00, 0x00,
0x00, 0x00, (byte)0xBF, 0x00, 0x00, 0x00, 0x00, 0x00, (byte)0x81, 0x01,
(byte)0xCC, (byte)0xEC
};
- public TestNoteStructureSubRecord(String name)
- {
- super(name);
- }
-
- public void testRead()
- throws Exception
- {
+ public void testRead() {
NoteStructureSubRecord record = new NoteStructureSubRecord(new TestcaseRecordInputStream(NoteStructureSubRecord.sid, (short)data.length, data));
assertEquals(NoteStructureSubRecord.sid, record.getSid());
- record.validateSid(NoteStructureSubRecord.sid);
assertEquals(data.length + 4, record.getRecordSize());
-
}
- public void testWrite()
- {
+ public void testWrite() {
NoteStructureSubRecord record = new NoteStructureSubRecord();
assertEquals(NoteStructureSubRecord.sid, record.getSid());
- record.validateSid(NoteStructureSubRecord.sid);
assertEquals(data.length + 4, record.getRecordSize());
byte [] ser = record.serialize();
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
-
package org.apache.poi.hssf.record;
* @author Glen Stampoultzis (glens at apache.org)
*/
-public class TestNumberFormatIndexRecord
- extends TestCase
-{
+public final class TestNumberFormatIndexRecord extends TestCase {
byte[] data = new byte[] {
0x05,0x00
};
- public TestNumberFormatIndexRecord(String name)
- {
- super(name);
- }
-
- public void testLoad()
- throws Exception
- {
+ public void testLoad() {
NumberFormatIndexRecord record = new NumberFormatIndexRecord(new TestcaseRecordInputStream((short)0x104e, (short)data.length, data));
assertEquals( 5, record.getFormatIndex());
-
assertEquals( 6, record.getRecordSize() );
-
- record.validateSid((short)0x104e);
}
public void testStore()
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
-
package org.apache.poi.hssf.record;
* @author Andrew C. Oliver (acoliver at apache.org)
*/
-public class TestObjectLinkRecord
- extends TestCase
-{
+public final class TestObjectLinkRecord extends TestCase {
byte[] data = new byte[] {
(byte)0x03,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00
};
- public TestObjectLinkRecord(String name)
- {
- super(name);
- }
-
- public void testLoad()
- throws Exception
- {
+ public void testLoad() {
ObjectLinkRecord record = new ObjectLinkRecord(new TestcaseRecordInputStream((short)0x1027, (short)data.length, data));
-
assertEquals( (short)3, record.getAnchorId());
-
assertEquals( (short)0x00, record.getLink1());
-
assertEquals( (short)0x00, record.getLink2());
-
assertEquals( 10, record.getRecordSize() );
-
- record.validateSid((short)0x1027);
}
- public void testStore()
- {
+ public void testStore() {
ObjectLinkRecord record = new ObjectLinkRecord();
-
-
record.setAnchorId( (short)3 );
-
record.setLink1( (short)0x00 );
-
record.setLink2( (short)0x00 );
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
-
package org.apache.poi.hssf.record;
*
* @author Glen Stampoultzis (glens at apache.org)
*/
-public class TestPaneRecord
- extends TestCase
-{
+public final class TestPaneRecord extends TestCase {
byte[] data = new byte[] {
(byte)0x01, (byte)0x00,
(byte)0x02, (byte)0x00,
(byte)0x02, (byte)0x00,
};
- public TestPaneRecord(String name)
- {
- super(name);
- }
-
- public void testLoad()
- throws Exception
- {
+ public void testLoad() {
PaneRecord record = new PaneRecord(new TestcaseRecordInputStream((short)0x41, (short)data.length, data));
-
assertEquals( (short)1, record.getX());
assertEquals( (short)2, record.getY());
assertEquals( PaneRecord.ACTIVE_PANE_LOWER_LEFT, record.getActivePane());
assertEquals( 14, record.getRecordSize() );
-
- record.validateSid((short)0x41);
}
public void testStore()
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
-
package org.apache.poi.hssf.record;
* @author Andrew C. Oliver (acoliver at apache.org)
*/
-public class TestPlotAreaRecord
- extends TestCase
-{
+public final class TestPlotAreaRecord extends TestCase {
byte[] data = new byte[] {
};
- public TestPlotAreaRecord(String name)
- {
- super(name);
- }
-
- public void testLoad()
- throws Exception
- {
+ public void testLoad() {
PlotAreaRecord record = new PlotAreaRecord(new TestcaseRecordInputStream((short)0x1035, (short)data.length, data));
-
-
assertEquals( 4, record.getRecordSize() );
-
- record.validateSid((short)0x1035);
}
- public void testStore()
- {
+ public void testStore() {
PlotAreaRecord record = new PlotAreaRecord();
-
-
-
byte [] recordBytes = record.serialize();
assertEquals(recordBytes.length - 4, data.length);
for (int i = 0; i < data.length; i++)
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
-
package org.apache.poi.hssf.record;
*
* @author Glen Stampoultzis (glens at apache.org)
*/
-public class TestPlotGrowthRecord
- extends TestCase
-{
+public final class TestPlotGrowthRecord extends TestCase {
byte[] data = new byte[] {
(byte)0x00,(byte)0x00,(byte)0x01,(byte)0x00, // horizontal
(byte)0x00,(byte)0x00,(byte)0x01,(byte)0x00 // vertical
};
- public TestPlotGrowthRecord(String name)
- {
- super(name);
- }
-
- public void testLoad()
- throws Exception
- {
+ public void testLoad() {
PlotGrowthRecord record = new PlotGrowthRecord(new TestcaseRecordInputStream((short)0x1064, (short)data.length, data));
assertEquals( 65536, record.getHorizontalScale());
assertEquals( 65536, record.getVerticalScale());
-
assertEquals( 12, record.getRecordSize() );
-
- record.validateSid((short)0x1064);
}
public void testStore()
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
-
package org.apache.poi.hssf.record;
* @author Andrew C. Oliver (acoliver at apache.org)
*/
-public class TestSCLRecord
- extends TestCase
-{
+public final class TestSCLRecord extends TestCase {
byte[] data = new byte[] {
(byte)0x3,(byte)0x0,(byte)0x4,(byte)0x0
};
- public TestSCLRecord(String name)
- {
- super(name);
- }
-
- public void testLoad()
- throws Exception
- {
+ public void testLoad() {
SCLRecord record = new SCLRecord(new TestcaseRecordInputStream((short)0xa0, (short)data.length, data));
assertEquals( 3, record.getNumerator());
assertEquals( 4, record.getDenominator());
-
assertEquals( 8, record.getRecordSize() );
-
- record.validateSid((short)0xa0);
}
public void testStore()
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
-
package org.apache.poi.hssf.record;
*
* @author Glen Stampoultzis (glens at apache.org)
*/
-public class TestSeriesChartGroupIndexRecord
- extends TestCase
-{
+public final class TestSeriesChartGroupIndexRecord extends TestCase {
byte[] data = new byte[] {
(byte)0x00,(byte)0x00
};
- public TestSeriesChartGroupIndexRecord(String name)
- {
- super(name);
- }
-
- public void testLoad()
- throws Exception
- {
+ public void testLoad() {
SeriesChartGroupIndexRecord record = new SeriesChartGroupIndexRecord(new TestcaseRecordInputStream((short)0x1045, (short)data.length, data));
assertEquals( 0, record.getChartGroupIndex());
-
assertEquals( 6, record.getRecordSize() );
-
- record.validateSid((short)0x1045);
-
}
public void testStore()
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
-
package org.apache.poi.hssf.record;
* @author Andrew C. Oliver (acoliver at apache.org)
*/
-public class TestSeriesIndexRecord
- extends TestCase
-{
+public final class TestSeriesIndexRecord extends TestCase {
byte[] data = new byte[] {
(byte)0x03,(byte)0x00
};
- public TestSeriesIndexRecord(String name)
- {
- super(name);
- }
-
- public void testLoad()
- throws Exception
- {
+ public void testLoad() {
SeriesIndexRecord record = new SeriesIndexRecord(new TestcaseRecordInputStream((short)0x1065, (short)data.length, data));
-
assertEquals( (short)3, record.getIndex());
-
-
assertEquals( 6, record.getRecordSize() );
-
- record.validateSid((short)0x1065);
}
public void testStore()
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
-
package org.apache.poi.hssf.record;
* @author Glen Stampoultzis (glens at apache.org)
*/
-public class TestSeriesLabelsRecord
- extends TestCase
-{
+public final class TestSeriesLabelsRecord extends TestCase {
byte[] data = new byte[] {
(byte)0x03,(byte)0x00
};
- public TestSeriesLabelsRecord(String name)
- {
- super(name);
- }
-
- public void testLoad()
- throws Exception
- {
+ public void testLoad() {
SeriesLabelsRecord record = new SeriesLabelsRecord(new TestcaseRecordInputStream((short)0x100c, (short)data.length, data));
assertEquals( 3, record.getFormatFlags());
assertEquals( true, record.isShowActual() );
assertEquals( 2+4, record.getRecordSize() );
-
- record.validateSid((short)0x100c);
}
public void testStore()
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
-
package org.apache.poi.hssf.record;
* @author Glen Stampoultzis (glens at apache.org)
*/
-public class TestSeriesListRecord
- extends TestCase
-{
+public final class TestSeriesListRecord extends TestCase {
byte[] data = new byte[] {
(byte)0x02,(byte)0x00,(byte)0x01,(byte)0x20,(byte)0xff,(byte)0xf0
};
- public TestSeriesListRecord(String name)
- {
- super(name);
- }
-
- public void testLoad()
- throws Exception
- {
+ public void testLoad() {
SeriesListRecord record = new SeriesListRecord(new TestcaseRecordInputStream((short)0x1016, (short)data.length, data));
assertEquals( (short)0x2001, record.getSeriesNumbers()[0]);
assertEquals( 2, record.getSeriesNumbers().length);
assertEquals( 4 + 6, record.getRecordSize() );
-
- record.validateSid((short)0x1016);
}
public void testStore()
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
-
package org.apache.poi.hssf.record;
*
* @author Glen Stampoultzis (glens at apache.org)
*/
-public class TestSeriesRecord
- extends TestCase
-{
+public final class TestSeriesRecord extends TestCase {
byte[] data = new byte[] {
(byte)0x01,(byte)0x00, // category data type
(byte)0x01,(byte)0x00, // values data type
(byte)0x00,(byte)0x00 // num bubble values
};
- public TestSeriesRecord(String name)
- {
- super(name);
- }
-
- public void testLoad()
- throws Exception
- {
+ public void testLoad() {
SeriesRecord record = new SeriesRecord(new TestcaseRecordInputStream((short)0x1003, (short)data.length, data));
assertEquals( SeriesRecord.CATEGORY_DATA_TYPE_NUMERIC, record.getCategoryDataType());
assertEquals( 16, record.getRecordSize() );
-
- record.validateSid((short)0x1003);
}
public void testStore()
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
-
package org.apache.poi.hssf.record;
* @author Andrew C. Oliver (acoliver at apache.org)
*/
-public class TestSeriesTextRecord
- extends TestCase
-{
+public final class TestSeriesTextRecord extends TestCase {
byte[] data = new byte[] {
(byte)0x00,(byte)0x00,(byte)0x0C,(byte)0x01,(byte)0x56,(byte)0x00,(byte)0x61,(byte)0x00,(byte)0x6C,(byte)0x00,(byte)0x75,(byte)0x00,(byte)0x65,(byte)0x00,(byte)0x20,(byte)0x00,(byte)0x4E,(byte)0x00,(byte)0x75,(byte)0x00,(byte)0x6D,(byte)0x00,(byte)0x62,(byte)0x00,(byte)0x65,(byte)0x00,(byte)0x72,(byte)0x00
};
- public TestSeriesTextRecord(String name)
- {
- super(name);
- }
-
- public void testLoad()
- throws Exception
- {
+ public void testLoad() {
SeriesTextRecord record = new SeriesTextRecord(new TestcaseRecordInputStream((short)0x100d, (short)data.length, data));
-
assertEquals( (short)0, record.getId());
-
assertEquals( (byte)0x0C, record.getTextLength());
-
assertEquals( (byte)0x01, record.getUndocumented());
-
assertEquals( "Value Number", record.getText());
-
assertEquals( 32, record.getRecordSize() );
-
- record.validateSid((short)0x100d);
}
public void testStore()
{
SeriesTextRecord record = new SeriesTextRecord();
-
-
record.setId( (short)0 );
-
record.setTextLength( (byte)0x0C );
-
record.setUndocumented( (byte)0x01 );
-
record.setText( "Value Number" );
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
-
package org.apache.poi.hssf.record;
* @author Andrew C. Oliver (acoliver at apache.org)
*/
-public class TestSeriesToChartGroupRecord
- extends TestCase
-{
+public final class TestSeriesToChartGroupRecord extends TestCase {
byte[] data = new byte[] {
(byte)0x0, (byte)0x0
};
- public TestSeriesToChartGroupRecord(String name)
- {
- super(name);
- }
-
- public void testLoad()
- throws Exception
- {
+ public void testLoad() {
SeriesToChartGroupRecord record = new SeriesToChartGroupRecord(new TestcaseRecordInputStream((short)0x1045, (short)data.length, data));
assertEquals( 0x0, record.getChartGroupIndex());
-
assertEquals( 0x6, record.getRecordSize() );
-
- record.validateSid((short)0x1045);
}
public void testStore()
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
-
package org.apache.poi.hssf.record;
* @author Glen Stampoultzis (glens at apache.org)
*/
-public class TestSheetPropertiesRecord
- extends TestCase
-{
+public final class TestSheetPropertiesRecord extends TestCase {
byte[] data = new byte[] {
(byte)0x0A,(byte)0x00,
(byte)0x00
//,(byte)0x00 // not sure where that last byte comes from
};
- public TestSheetPropertiesRecord(String name)
- {
- super(name);
- }
-
- public void testLoad()
- throws Exception
- {
+ public void testLoad() {
SheetPropertiesRecord record = new SheetPropertiesRecord(new TestcaseRecordInputStream((short)0x1044, (short)data.length, data));
assertEquals( 10, record.getFlags());
assertEquals( false, record.isChartTypeManuallyFormatted() );
assertEquals( 7, record.getRecordSize() );
-
- record.validateSid((short)0x1044);
}
public void testStore()
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
-
package org.apache.poi.hssf.record;
*
* @author Glen Stampoultzis (glens at apache.org)
*/
-public class TestStringRecord
- extends TestCase
-{
+public class TestStringRecord extends TestCase {
byte[] data = new byte[] {
(byte)0x0B,(byte)0x00, // length
(byte)0x00, // option
(byte)0x46,(byte)0x61,(byte)0x68,(byte)0x72,(byte)0x7A,(byte)0x65,(byte)0x75,(byte)0x67,(byte)0x74,(byte)0x79,(byte)0x70
};
- public TestStringRecord(String name)
- {
- super(name);
- }
-
- public void testLoad()
- throws Exception
- {
+ public void testLoad() {
StringRecord record = new StringRecord(new TestcaseRecordInputStream((short)0x207, (short)data.length, data));
assertEquals( "Fahrzeugtyp", record.getString());
assertEquals( 18, record.getRecordSize() );
-
- record.validateSid((short)0x207);
}
public void testStore()
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
-
package org.apache.poi.hssf.record;
(byte)'S', (byte)'h', (byte)'e', (byte)'e', (byte)'t', (byte)'2',
};
- public TestSupBookRecord(String name)
- {
- super(name);
- }
-
/**
* tests that we can load the record
*/
assertEquals( 0x4, record.getNumberOfSheets() ); //expected # of sheets
assertEquals( 8, record.getRecordSize() ); //sid+size+data
-
- record.validateSid((short)0x01AE);
}
/**
* tests that we can load the record
assertEquals(2, sheetNames.length);
assertEquals("Sheet1", sheetNames[0].getString());
assertEquals("Sheet2", sheetNames[1].getString());
-
- record.validateSid((short)0x01AE);
}
/**
assertTrue( record.isAddInFunctions() ); //expected flag
assertEquals( 0x1, record.getNumberOfSheets() ); //expected # of sheets
assertEquals( 8, record.getRecordSize() ); //sid+size+data
- record.validateSid((short)0x01AE);
}
/**
TestcaseRecordInputStream.confirmRecordEncoding(0x01AE, dataER, record.serialize());
}
-
- public static void main(String [] args) {
- System.out
- .println("Testing org.apache.poi.hssf.record.SupBookRecord");
- junit.textui.TestRunner.run(TestSupBookRecord.class);
- }
}
assertEquals(0, record.getColInputCol());
assertEquals( 16 + 4, record.getRecordSize() );
- record.validateSid((short)0x236);
}
public void testStore()
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
-
package org.apache.poi.hssf.record;
* @author Glen Stampoultzis (glens at apache.org)
*/
-public class TestTextObjectBaseRecord
- extends TestCase
-{
+public class TestTextObjectBaseRecord extends TestCase {
byte[] data = new byte[] {
0x44, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00,
0x00, 0x00,
};
- public TestTextObjectBaseRecord(String name)
- {
- super(name);
- }
-
- public void testLoad()
- throws Exception
- {
+ public void testLoad() {
TextObjectBaseRecord record = new TextObjectBaseRecord(new TestcaseRecordInputStream((short)0x1B6, (short)data.length, data));
assertEquals( 22, record.getRecordSize() );
-
- record.validateSid((short)0x1B6);
}
public void testStore()
-\r
/* ====================================================================\r
Licensed to the Apache Software Foundation (ASF) under one or more\r
contributor license agreements. See the NOTICE file distributed with\r
\r
package org.apache.poi.hssf.record;\r
\r
-import junit.framework.*;\r
-\r
-import java.util.Arrays;\r
-import java.util.List;\r
import java.io.ByteArrayInputStream;\r
+import java.util.Arrays;\r
+\r
+import junit.framework.TestCase;\r
\r
import org.apache.poi.hssf.usermodel.HSSFRichTextString;\r
\r
*\r
* @author Yegor Kozlov\r
*/\r
-public class TestTextObjectRecord extends TestCase {\r
+public final class TestTextObjectRecord extends TestCase {\r
\r
byte[] data = {(byte)0xB6, 0x01, 0x12, 0x00, 0x12, 0x02, 0x00, 0x00, 0x00, 0x00,\r
0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00,\r
0x00, 0x08, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };\r
\r
\r
- public void testRead()\r
- throws Exception\r
- {\r
-\r
+ public void testRead() {\r
\r
RecordInputStream is = new RecordInputStream(new ByteArrayInputStream(data));\r
is.nextRecord();\r
TextObjectRecord record = new TextObjectRecord(is);\r
\r
assertEquals(TextObjectRecord.sid, record.getSid());\r
- record.validateSid(TextObjectRecord.sid);\r
assertEquals(TextObjectRecord.HORIZONTAL_TEXT_ALIGNMENT_LEFT_ALIGNED, record.getHorizontalTextAlignment());\r
assertEquals(TextObjectRecord.VERTICAL_TEXT_ALIGNMENT_TOP, record.getVerticalTextAlignment());\r
assertEquals(TextObjectRecord.TEXT_ORIENTATION_NONE, record.getTextOrientation());\r
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
-
package org.apache.poi.hssf.record;
*
* @author Glen Stampoultzis (glens at apache.org)
*/
-public class TestTextRecord
- extends TestCase
-{
+public class TestTextRecord extends TestCase {
byte[] data = new byte[] {
(byte)0x02, // horiz align
(byte)0x02, // vert align
(byte)0x00,(byte)0x00 // text rotation
};
- public TestTextRecord(String name)
- {
- super(name);
- }
-
- public void testLoad()
- throws Exception
- {
+ public void testLoad() {
TextRecord record = new TextRecord(new TestcaseRecordInputStream((short)0x1025, (short)data.length, data));
assertEquals( TextRecord.HORIZONTAL_ALIGNMENT_CENTER, record.getHorizontalAlignment());
assertEquals( 36, record.getRecordSize() );
-
- record.validateSid((short)0x1025);
-
}
public void testStore()
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
-
package org.apache.poi.hssf.record;
* @author Andrew C. Oliver(acoliver at apache.org)
*/
-public class TestTickRecord
- extends TestCase
-{
+public final class TestTickRecord extends TestCase {
byte[] data = new byte[] {
(byte)0x02, (byte)0x00, (byte)0x03, (byte)0x01,
(byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00,
(byte)0x4D, (byte)0x00, (byte)0x00, (byte)0x00
};
- public TestTickRecord(String name)
- {
- super(name);
- }
-
- public void testLoad()
- throws Exception
- {
+ public void testLoad() {
TickRecord record = new TickRecord(new TestcaseRecordInputStream((short)0x101e, (short)data.length, data));
assertEquals( (byte)2, record.getMajorTickType());
assertEquals( (byte)0, record.getMinorTickType());
assertEquals( 34, record.getRecordSize() );
-
- record.validateSid((short)0x101e);
}
public void testStore()
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
-
package org.apache.poi.hssf.record;
* @author Glen Stampoultzis (glens at apache.org)
*/
-public class TestUnitsRecord
- extends TestCase
-{
+public final class TestUnitsRecord extends TestCase {
byte[] data = new byte[] {
(byte)0x00, (byte)0x00
};
- public TestUnitsRecord(String name)
- {
- super(name);
- }
-
- public void testLoad()
- throws Exception
- {
+ public void testLoad() {
UnitsRecord record = new UnitsRecord(new TestcaseRecordInputStream((short)0x1001, (short)data.length, data));
assertEquals( 0, record.getUnits());
-
assertEquals( 6, record.getRecordSize() );
-
- record.validateSid((short)0x1001);
}
public void testStore()
-
/* ====================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
-
package org.apache.poi.hssf.record;
*
* @author Glen Stampoultzis (glens at apache.org)
*/
-public class TestValueRangeRecord
- extends TestCase
-{
+public final class TestValueRangeRecord extends TestCase {
byte[] data = new byte[] {
(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00, // min axis value
(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00, // max axis value
(byte)0x1F,(byte)0x01 // options
};
- public TestValueRangeRecord(String name)
- {
- super(name);
- }
-
- public void testLoad()
- throws Exception
- {
+ public void testLoad() {
ValueRangeRecord record = new ValueRangeRecord(new TestcaseRecordInputStream((short)0x101f, (short)data.length, data));
assertEquals( 0.0, record.getMinimumAxisValue(), 0.001);
assertEquals( true, record.isReserved() );
assertEquals( 42+4, record.getRecordSize() );
-
- record.validateSid((short)0x101f);
}
public void testStore()
//TODO: check shapeId in the cloned sheet
}
+
+ /**
+ * POI now (Sep 2008) allows sheet names longer than 31 chars (for other apps besides Excel).
+ * Since Excel silently truncates to 31, make sure that POI enforces uniqueness on the first
+ * 31 chars.
+ */
+ public void testLongSheetNames() {
+ HSSFWorkbook wb = new HSSFWorkbook();
+ final String SAME_PREFIX = "A123456789B123456789C123456789"; // 30 chars
+
+ wb.createSheet(SAME_PREFIX + "Dxxxx");
+ try {
+ wb.createSheet(SAME_PREFIX + "Dyyyy"); // identical up to the 32nd char
+ throw new AssertionFailedError("Expected exception not thrown");
+ } catch (IllegalArgumentException e) {
+ assertEquals("The workbook already contains a sheet of this name", e.getMessage());
+ }
+ wb.createSheet(SAME_PREFIX + "Exxxx"); // OK - differs in the 31st char
+ }
}
public BadlyBehavedRecord() {
//
}
- protected void fillFields(RecordInputStream in) {
- throw new RuntimeException("Should not be called");
- }
public short getSid() {
return 0x777;
}
public int serialize(int offset, byte[] data) {
return 4;
}
- protected void validateSid(short id) {
- throw new RuntimeException("Should not be called");
- }
public int getRecordSize() {
return 8;
}