Files
HRMS/hrmsEjb/jxl/read/biff/BooleanFormulaRecord.java
2025-07-28 13:56:49 +05:30

66 lines
1.9 KiB
Java

package jxl.read.biff;
import common.Assert;
import jxl.BooleanCell;
import jxl.BooleanFormulaCell;
import jxl.CellType;
import jxl.biff.FormattingRecords;
import jxl.biff.FormulaData;
import jxl.biff.WorkbookMethods;
import jxl.biff.formula.ExternalSheet;
import jxl.biff.formula.FormulaException;
import jxl.biff.formula.FormulaParser;
class BooleanFormulaRecord extends CellValue implements BooleanCell, FormulaData, BooleanFormulaCell {
private boolean value;
private ExternalSheet externalSheet;
private WorkbookMethods nameTable;
private String formulaString;
private byte[] data;
public BooleanFormulaRecord(Record t, FormattingRecords fr, ExternalSheet es, WorkbookMethods nt, SheetImpl si) {
super(t, fr, si);
this.externalSheet = es;
this.nameTable = nt;
this.value = false;
this.data = getRecord().getData();
Assert.verify((this.data[6] != 2));
this.value = (this.data[8] == 1);
}
public boolean getValue() {
return this.value;
}
public String getContents() {
return (new Boolean(this.value)).toString();
}
public CellType getType() {
return CellType.BOOLEAN_FORMULA;
}
public byte[] getFormulaData() throws FormulaException {
if (!getSheet().getWorkbookBof().isBiff8())
throw new FormulaException(FormulaException.biff8Supported);
byte[] d = new byte[this.data.length - 6];
System.arraycopy(this.data, 6, d, 0, this.data.length - 6);
return d;
}
public String getFormula() throws FormulaException {
if (this.formulaString == null) {
byte[] tokens = new byte[this.data.length - 22];
System.arraycopy(this.data, 22, tokens, 0, tokens.length);
FormulaParser fp = new FormulaParser(tokens, this, this.externalSheet, this.nameTable, getSheet().getWorkbook().getSettings());
fp.parse();
this.formulaString = fp.getFormula();
}
return this.formulaString;
}
}