Package org.apache.poi.ss.formula
Class EvaluationConditionalFormatRule
java.lang.Object
org.apache.poi.ss.formula.EvaluationConditionalFormatRule
- All Implemented Interfaces:
Comparable<EvaluationConditionalFormatRule>
public class EvaluationConditionalFormatRule
extends Object
implements Comparable<EvaluationConditionalFormatRule>
Abstracted and cached version of a Conditional Format rule for use with a
ConditionalFormattingEvaluator
. This references a rule, its owning
ConditionalFormatting
, its priority order (lower index = higher priority in Excel),
and the information needed to evaluate the rule for a given cell.
Having this all combined and cached avoids repeated access calls to the underlying structural objects, XSSF CT* objects and HSSF raw byte structures. Those objects can be referenced from here. This object will be out of sync if anything modifies the referenced structures' evaluation properties.
The assumption is that consuming applications will read the display properties once and create whatever style objects they need, caching those at the application level. Thus this class only caches values needed for evaluation, not display.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enum
Not calling it OperatorType to avoid confusion for now with other classes.protected static class
Note: this class has a natural ordering that is inconsistent with equals.protected static interface
instances evaluate the values for a region and return the positive matches for the function type. -
Constructor Summary
ConstructorsConstructorDescriptionEvaluationConditionalFormatRule
(WorkbookEvaluator workbookEvaluator, Sheet sheet, ConditionalFormatting formatting, int formattingIndex, ConditionalFormattingRule rule, int ruleIndex, CellRangeAddress[] regions) -
Method Summary
-
Constructor Details
-
EvaluationConditionalFormatRule
public EvaluationConditionalFormatRule(WorkbookEvaluator workbookEvaluator, Sheet sheet, ConditionalFormatting formatting, int formattingIndex, ConditionalFormattingRule rule, int ruleIndex, CellRangeAddress[] regions) - Parameters:
workbookEvaluator
-sheet
-formatting
-formattingIndex
- for priority, zero basedrule
-ruleIndex
- for priority, zero based, if this is an HSSF rule. Unused for XSSF rulesregions
- could be read from formatting, but every call creates new objects in a new array. this allows calling it once per formatting instance, and re-using the array.
-
-
Method Details
-
getSheet
- Returns:
- sheet
-
getFormatting
- Returns:
- the formatting
-
getFormattingIndex
public int getFormattingIndex()- Returns:
- conditional formatting index
-
getNumberFormat
- Returns:
- Excel number format string to apply to matching cells, or null to keep the cell default
-
getRule
- Returns:
- the rule
-
getRuleIndex
public int getRuleIndex()- Returns:
- rule index
-
getRegions
- Returns:
- the regions
-
getPriority
public int getPriority()- Returns:
- the priority
-
getFormula1
- Returns:
- the formula1
-
getFormula2
- Returns:
- the formula2
-
getText
- Returns:
- condition text if any, or null
-
getOperator
- Returns:
- the operator
-
getType
- Returns:
- the type
-
equals
Defined as equal sheet name and formatting and rule indexes -
compareTo
Per Excel Help, XSSF rule priority is sheet-wide, not just within the owning ConditionalFormatting object. This can be seen by creating 4 rules applying to two different ranges and examining the XML.HSSF priority is based on definition/persistence order.
- Specified by:
compareTo
in interfaceComparable<EvaluationConditionalFormatRule>
- Parameters:
o
-- Returns:
- comparison based on sheet name, formatting index, and rule priority
-
hashCode
public int hashCode()
-