1 19 20 package jxl.read.biff; 21 22 import common.Assert; 23 24 import jxl.BooleanCell; 25 import jxl.CellType; 26 import jxl.BooleanFormulaCell; 27 import jxl.biff.FormattingRecords; 28 import jxl.biff.FormulaData; 29 import jxl.biff.WorkbookMethods; 30 import jxl.biff.formula.FormulaParser; 31 import jxl.biff.formula.ExternalSheet; 32 import jxl.biff.formula.FormulaException; 33 34 37 class BooleanFormulaRecord extends CellValue 38 implements BooleanCell, FormulaData, BooleanFormulaCell 39 { 40 44 private boolean value; 45 46 49 private ExternalSheet externalSheet; 50 51 54 private WorkbookMethods nameTable; 55 56 59 private String formulaString; 60 61 64 private byte[] data; 65 66 75 public BooleanFormulaRecord(Record t, FormattingRecords fr, 76 ExternalSheet es, WorkbookMethods nt, 77 SheetImpl si) 78 { 79 super(t, fr, si); 80 externalSheet = es; 81 nameTable = nt; 82 value = false; 83 84 data = getRecord().getData(); 85 86 Assert.verify(data[6] != 2); 87 88 value = data[8] == 1 ? true : false; 89 } 90 91 99 public boolean getValue() 100 { 101 return value; 102 } 103 104 109 public String getContents() 110 { 111 return (new Boolean (value)).toString(); 113 } 114 115 120 public CellType getType() 121 { 122 return CellType.BOOLEAN_FORMULA; 123 } 124 125 131 public byte[] getFormulaData() throws FormulaException 132 { 133 if (!getSheet().getWorkbookBof().isBiff8()) 134 { 135 throw new FormulaException(FormulaException.biff8Supported); 136 } 137 138 byte[] d = new byte[data.length - 6]; 140 System.arraycopy(data, 6, d, 0, data.length - 6); 141 142 return d; 143 } 144 145 151 public String getFormula() throws FormulaException 152 { 153 if (formulaString == null) 154 { 155 byte[] tokens = new byte[data.length - 22]; 156 System.arraycopy(data, 22, tokens, 0, tokens.length); 157 FormulaParser fp = new FormulaParser 158 (tokens, this, externalSheet, nameTable, 159 getSheet().getWorkbook().getSettings()); 160 fp.parse(); 161 formulaString = fp.getFormula(); 162 } 163 164 return formulaString; 165 } 166 } 167 168 | Popular Tags |