import org.apache.poi.hssf.record.CFHeaderRecord;
import org.apache.poi.hssf.record.CFRuleRecord;
import org.apache.poi.hssf.record.Record;
+import org.apache.poi.ss.formula.FormulaShifter;
import org.apache.poi.ss.formula.ptg.AreaErrPtg;
import org.apache.poi.ss.formula.ptg.AreaPtg;
-import org.apache.poi.ss.formula.FormulaShifter;
import org.apache.poi.ss.formula.ptg.Ptg;
import org.apache.poi.ss.util.CellRangeAddress;
/**
* CFRecordsAggregate - aggregates Conditional Formatting records CFHeaderRecord
* and number of up to three CFRuleRecord records together to simplify
- * access to them.
- *
- * @author Dmitriy Kumshayev
- *
+ * access to them.
*/
public final class CFRecordsAggregate extends RecordAggregate {
/** Excel allows up to 3 conditional formating rules */
private final CFHeaderRecord header;
/** List of CFRuleRecord objects */
- private final List rules;
+ private final List<CFRuleRecord> rules;
private CFRecordsAggregate(CFHeaderRecord pHeader, CFRuleRecord[] pRules) {
if(pHeader == null) {
throw new RuntimeException("Mismatch number of rules");
}
header = pHeader;
- rules = new ArrayList(3);
+ rules = new ArrayList<CFRuleRecord>(3);
for (int i = 0; i < pRules.length; i++) {
rules.add(pRules[i]);
}
}
public CFRuleRecord getRule(int idx) {
checkRuleIndex(idx);
- return (CFRuleRecord) rules.get(idx);
+ return rules.get(idx);
}
public void setRule(int idx, CFRuleRecord r) {
if (r == null) {
}
for(int i=0; i<rules.size(); i++)
{
- CFRuleRecord cfRule = (CFRuleRecord)rules.get(i);
+ CFRuleRecord cfRule = rules.get(i);
buffer.append(cfRule.toString());
}
buffer.append("[/CF]\n");
public void visitContainedRecords(RecordVisitor rv) {
rv.visitRecord(header);
for(int i=0; i<rules.size(); i++) {
- CFRuleRecord rule = (CFRuleRecord)rules.get(i);
+ CFRuleRecord rule = rules.get(i);
rv.visitRecord(rule);
}
}
public boolean updateFormulasAfterCellShift(FormulaShifter shifter, int currentExternSheetIx) {
CellRangeAddress[] cellRanges = header.getCellRanges();
boolean changed = false;
- List temp = new ArrayList();
+ List<CellRangeAddress> temp = new ArrayList<CellRangeAddress>();
for (int i = 0; i < cellRanges.length; i++) {
CellRangeAddress craOld = cellRanges[i];
CellRangeAddress craNew = shiftRange(shifter, craOld, currentExternSheetIx);
}
for(int i=0; i<rules.size(); i++) {
- CFRuleRecord rule = (CFRuleRecord)rules.get(i);
+ CFRuleRecord rule = rules.get(i);
Ptg[] ptgs;
ptgs = rule.getParsedExpression1();
if (ptgs != null && shifter.adjustFormula(ptgs, currentExternSheetIx)) {