Top Description Inners Fields Constructors Methods
org.apache.poi.ss.formula.functions

public final Class DStarRunner

extends Object
implements Function3Arg
Class Inheritance
All Implemented Interfaces
org.apache.poi.ss.formula.functions.Function3Arg, org.apache.poi.ss.formula.functions.Function
Annotations
@Internal
Imports
java.util.function.Supplier, java.util.regex.Pattern, org.apache.poi.ss.formula.eval.AreaEval, .BlankEval, .ErrorEval, .EvaluationException, .NotImplementedException, .NumberEval, .NumericValueEval, .OperandResolver, .StringEval, .StringValueEval, .ValueEval, org.apache.poi.ss.util.NumberComparer, org.apache.poi.util.Internal, .LocaleUtil

This class performs a D* calculation. It takes an IDStarAlgorithm object and uses it for calculating the result value. Iterating a database and checking the entries against the set of conditions is done here.

Todo

- functions as conditions

Nested and Inner Type Summary

Modifier and TypeClass and Description
public static enum
DStarRunner.DStarAlgorithmEnum

Enum for convenience to identify and source implementations of the D* functions

private static enum

Field Summary

Modifier and TypeField and Description
private final DStarRunner.DStarAlgorithmEnum

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public ValueEval
evaluate(ValueEval[]
the evaluated function arguments. Empty values are represented with BlankEval or MissingArgEval, never null.
args
,
int
row index of the cell containing the formula under evaluation
srcRowIndex
,
int
column index of the cell containing the formula under evaluation
srcColumnIndex
)

Implements org.apache.poi.ss.formula.functions.Function.evaluate.

public ValueEval
evaluate(int srcRowIndex, int srcColumnIndex, ValueEval database, ValueEval filterColumn, ValueEval conditionDatabase)

Implements org.apache.poi.ss.formula.functions.Function3Arg.evaluate.

see Function#evaluate(ValueEval[], int, int)

private static boolean

Returns:

Whether the row matches the conditions.
fulfillsConditions
(AreaEval
Database.
db
,
int
The row in the database to check.
row
,
AreaEval
The condition database to use for checking.
cdb
)

Checks a row in a database against a condition database.

private static int

Returns:

Corresponding column number.
getColumnForName
(ValueEval
Must not be a RefEval or AreaEval. Thus make sure resolveReference() is called on the value first!
nameValueEval
,
AreaEval
Database
db
)

private static int

Returns:

Corresponding column number.
getColumnForString
(AreaEval
Database.
db
,
String
Column heading.
name
)

For a given database returns the column number for a column heading.

private static Double
private static ValueEval

Returns:

A ValueEval that is a NumberEval, StringEval, BoolEval, BlankEval or ErrorEval.
resolveReference
(AreaEval
AreaEval from which the cell to resolve is retrieved.
db
,
int
Relative row in the AreaEval.
dbRow
,
int
Relative column in the AreaEval.
dbCol
)

Resolve a ValueEval that's in an AreaEval.

private static boolean

Returns:

Whether the condition holds.
testNormalCondition
(ValueEval
The value to check.
value
,
ValueEval
The condition to check for.
condition
)

Test a value against a simple (< > <= >= = starts-with) condition string.

private static boolean

Returns:

whether the condition holds.
testNumericCondition
(ValueEval
Value to check.
valueEval
,
DStarRunner.operator
Comparator to use.
op
,
String
Value to check against.
condition
)

Test whether a value matches a numeric condition.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

algoTypeback to summary
private final DStarRunner.DStarAlgorithmEnum algoType

Constructor Detail

DStarRunnerback to summary
public DStarRunner(DStarRunner.DStarAlgorithmEnum algorithm)
Parameters
algorithm:DStarRunner.DStarAlgorithmEnum

to implement

Method Detail

evaluateback to summary
public ValueEval evaluate(ValueEval[] args, int srcRowIndex, int srcColumnIndex)

Implements org.apache.poi.ss.formula.functions.Function.evaluate.

Parameters
args:ValueEval[]

Doc from org.apache.poi.ss.formula.functions.Function.evaluate.

the evaluated function arguments. Empty values are represented with BlankEval or MissingArgEval, never null.

srcRowIndex:int

Doc from org.apache.poi.ss.formula.functions.Function.evaluate.

row index of the cell containing the formula under evaluation

srcColumnIndex:int

Doc from org.apache.poi.ss.formula.functions.Function.evaluate.

column index of the cell containing the formula under evaluation

Returns:ValueEval

Doc from org.apache.poi.ss.formula.functions.Function.evaluate.

The evaluated result, possibly an ErrorEval, never null

Note

- Excel uses the error code #NUM! instead of IEEE NaN, so when numeric functions evaluate to Double#NaN be sure to translate the result to ErrorEval#NUM_ERROR.

evaluateback to summary
public ValueEval evaluate(int srcRowIndex, int srcColumnIndex, ValueEval database, ValueEval filterColumn, ValueEval conditionDatabase)

Implements org.apache.poi.ss.formula.functions.Function3Arg.evaluate.

Doc from org.apache.poi.ss.formula.functions.Function3Arg.evaluate.

see Function#evaluate(ValueEval[], int, int)

fulfillsConditionsback to summary
private static boolean fulfillsConditions(AreaEval db, int row, AreaEval cdb) throws EvaluationException

Checks a row in a database against a condition database.

Parameters
db:AreaEval

Database.

row:int

The row in the database to check.

cdb:AreaEval

The condition database to use for checking.

Returns:boolean

Whether the row matches the conditions.

Exceptions
EvaluationException:
If references could not be resolved or comparison operators and operands didn't match.
getColumnForNameback to summary
private static int getColumnForName(ValueEval nameValueEval, AreaEval db) throws EvaluationException
Parameters
nameValueEval:ValueEval

Must not be a RefEval or AreaEval. Thus make sure resolveReference() is called on the value first!

db:AreaEval

Database

Returns:int

Corresponding column number.

Exceptions
EvaluationException:
If it's not possible to turn all headings into strings.
getColumnForStringback to summary
private static int getColumnForString(AreaEval db, String name)

For a given database returns the column number for a column heading. Comparison is case-insensitive.

Parameters
db:AreaEval

Database.

name:String

Column heading.

Returns:int

Corresponding column number.

getNumberFromValueEvalback to summary
private static Double getNumberFromValueEval(ValueEval value)
resolveReferenceback to summary
private static ValueEval resolveReference(AreaEval db, int dbRow, int dbCol)

Resolve a ValueEval that's in an AreaEval.

Parameters
db:AreaEval

AreaEval from which the cell to resolve is retrieved.

dbRow:int

Relative row in the AreaEval.

dbCol:int

Relative column in the AreaEval.

Returns:ValueEval

A ValueEval that is a NumberEval, StringEval, BoolEval, BlankEval or ErrorEval.

testNormalConditionback to summary
private static boolean testNormalCondition(ValueEval value, ValueEval condition) throws EvaluationException

Test a value against a simple (< > <= >= = starts-with) condition string.

Parameters
value:ValueEval

The value to check.

condition:ValueEval

The condition to check for.

Returns:boolean

Whether the condition holds.

Exceptions
EvaluationException:
If comparison operator and operands don't match.
testNumericConditionback to summary
private static boolean testNumericCondition(ValueEval valueEval, DStarRunner.operator op, String condition) throws EvaluationException

Test whether a value matches a numeric condition.

Parameters
valueEval:ValueEval

Value to check.

op:DStarRunner.operator

Comparator to use.

condition:String

Value to check against.

Returns:boolean

whether the condition holds.

Exceptions
EvaluationException:
If it's impossible to turn the condition into a number.
org.apache.poi.ss.formula.functions back to summary

public final Enum DStarRunner.DStarAlgorithmEnum

extends Enum<DStarRunner.DStarAlgorithmEnum>
Class Inheritance

Enum for convenience to identify and source implementations of the D* functions

Field Summary

Modifier and TypeField and Description
public static final DStarRunner.DStarAlgorithmEnum
public static final DStarRunner.DStarAlgorithmEnum
public static final DStarRunner.DStarAlgorithmEnum
public static final DStarRunner.DStarAlgorithmEnum
public static final DStarRunner.DStarAlgorithmEnum
public static final DStarRunner.DStarAlgorithmEnum
public static final DStarRunner.DStarAlgorithmEnum
public static final DStarRunner.DStarAlgorithmEnum
public static final DStarRunner.DStarAlgorithmEnum
public static final DStarRunner.DStarAlgorithmEnum
public static final DStarRunner.DStarAlgorithmEnum
public static final DStarRunner.DStarAlgorithmEnum
private final Supplier<IDStarAlgorithm>

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
public IDStarAlgorithm

Returns:

a new function implementation instance
newInstance
()

public static DStarRunner.DStarAlgorithmEnum
public static DStarRunner.DStarAlgorithmEnum[]
Inherited from java.lang.Enum:
clonecompareTodescribeConstableequalsfinalizegetDeclaringClasshashCodenameordinaltoStringvalueOf

Field Detail

DAVERAGEback to summary
public static final DStarRunner.DStarAlgorithmEnum DAVERAGE
See Also
DAverage
DCOUNTback to summary
public static final DStarRunner.DStarAlgorithmEnum DCOUNT
See Also
DCount
DCOUNTAback to summary
public static final DStarRunner.DStarAlgorithmEnum DCOUNTA
See Also
DCountA
DGETback to summary
public static final DStarRunner.DStarAlgorithmEnum DGET
See Also
DGet
DMAXback to summary
public static final DStarRunner.DStarAlgorithmEnum DMAX
See Also
DMax
DMINback to summary
public static final DStarRunner.DStarAlgorithmEnum DMIN
See Also
DMin
DPRODUCTback to summary
public static final DStarRunner.DStarAlgorithmEnum DPRODUCT
See Also
DProduct
DSTDEVback to summary
public static final DStarRunner.DStarAlgorithmEnum DSTDEV
See Also
DStdev
DSTDEVPback to summary
public static final DStarRunner.DStarAlgorithmEnum DSTDEVP
See Also
DStdevp
DSUMback to summary
public static final DStarRunner.DStarAlgorithmEnum DSUM
See Also
DSum
DVARback to summary
public static final DStarRunner.DStarAlgorithmEnum DVAR
See Also
DVar
DVARPback to summary
public static final DStarRunner.DStarAlgorithmEnum DVARP
See Also
DVarp
implSupplierback to summary
private final Supplier<IDStarAlgorithm> implSupplier

Constructor Detail

DStarAlgorithmEnumback to summary
private DStarAlgorithmEnum(Supplier<IDStarAlgorithm> implSupplier)

Method Detail

newInstanceback to summary
public IDStarAlgorithm newInstance()
Returns:IDStarAlgorithm

a new function implementation instance

valueOfback to summary
public static DStarRunner.DStarAlgorithmEnum valueOf(String name)
valuesback to summary
public static DStarRunner.DStarAlgorithmEnum[] values()
org.apache.poi.ss.formula.functions back to summary

private final Enum DStarRunner.operator

extends Enum<DStarRunner.operator>
Class Inheritance

Field Summary

Modifier and TypeField and Description
public static final DStarRunner.operator
public static final DStarRunner.operator
public static final DStarRunner.operator
public static final DStarRunner.operator
public static final DStarRunner.operator

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
public static DStarRunner.operator
public static DStarRunner.operator[]
Inherited from java.lang.Enum:
clonecompareTodescribeConstableequalsfinalizegetDeclaringClasshashCodenameordinaltoStringvalueOf

Field Detail

equalback to summary
public static final DStarRunner.operator equal
largerEqualThanback to summary
public static final DStarRunner.operator largerEqualThan
largerThanback to summary
public static final DStarRunner.operator largerThan
smallerEqualThanback to summary
public static final DStarRunner.operator smallerEqualThan
smallerThanback to summary
public static final DStarRunner.operator smallerThan

Constructor Detail

operatorback to summary
private operator()

Method Detail

valueOfback to summary
public static DStarRunner.operator valueOf(String name)
valuesback to summary
public static DStarRunner.operator[] values()