- java.lang.Object
-
- com.pervasive.datarush.functions.ConstantReference
-
- All Implemented Interfaces:
ScalarValuedFunction
public final class ConstantReference extends Object implements ScalarValuedFunction
A reference to a known value. The defined function returns the value. These can be used to combine constant values with other functions. Note however, that many of the built-in functions provide convenience signatures which do not require direct use of this class.
-
-
Constructor Summary
Constructors Constructor Description ConstantReference(ScalarValued v)
Defines a function evaluating to the specified value
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description static ScalarValuedFunction
constant(boolean value)
Creates a function evaluating to the specified boolean constant.static ScalarValuedFunction
constant(byte[] value)
Creates a function evaluating to the specified binary constant.static ScalarValuedFunction
constant(char value)
Creates a function evaluating to the specified char constant.static ScalarValuedFunction
constant(double value)
Creates a function evaluating to the specified double constant.static ScalarValuedFunction
constant(float value)
Creates a function evaluating to the specified float constant.static ScalarValuedFunction
constant(int value)
Creates a function evaluating to the specified int constant.static ScalarValuedFunction
constant(long value)
Creates a function evaluating to the specified long constant.static ScalarValuedFunction
constant(ScalarToken value)
Creates a function evaluating to the specified value.static ScalarValuedFunction
constant(String value)
Creates a function evaluating to the specified string constant.static ScalarValuedFunction
constant(BigDecimal value)
Creates a function evaluating to the specified numeric constant.static <O> ScalarValuedFunction
constant(O value)
Creates a function evaluating to the specified object constant.boolean
equals(Object obj)
FunctionEvaluator
getEvaluator(RecordValued input, ScalarSettable output)
Constructs an instance of an evaluator for the function.Collection<String>
getRequiredFields()
Get the input fields required in the function input.ScalarValued
getSubexpressionEvaluation(EvaluationContext ctx)
Constructs an instance of an evaluation of the function in the context of a larger expression.ScalarTokenType
getUpperBound()
Gets the upper bound on the output type of the function.int
hashCode()
ScalarValuedFunction
mapFieldsToFunctions(Map<String,ScalarValuedFunction> mapping)
Creates a new function, equivalent to the given function, but with specified field references mapped to functions.static ScalarValuedFunction
nullValue()
Creates a function evaluating to null.static ScalarValuedFunction
nullValue(ScalarValuedFunction expr)
Deprecated.Untyped null tokens are now supported.static ScalarValuedFunction
nullValue(String fieldName)
Deprecated.Untyped null tokens are now supported.ScalarValuedFunction
remapFieldReferences(Map<String,String> oldToNewMapping)
Creates a new function, equivalent to the given function, but with all field references renamed according to the given mapping.String
toString()
ScalarTokenType
validateInputType(RecordTokenType inputType)
Calculates the actual output type of the function given the specified input type.
-
-
-
Constructor Detail
-
ConstantReference
public ConstantReference(ScalarValued v)
Defines a function evaluating to the specified value- Parameters:
v
- the value to return from the function
-
-
Method Detail
-
getUpperBound
public ScalarTokenType getUpperBound()
Description copied from interface:ScalarValuedFunction
Gets the upper bound on the output type of the function. This need not be the exact type of the output, but is expected to be a type to which the actual output type is assignable, as according toTokenType#isAssignableFrom(TokenType)
.This value is used to detect type consistency issues as early as possible. It is always valid to return
TokenTypeConstant#SCALAR
, in which case no type consistency issues can be caught early.- Specified by:
getUpperBound
in interfaceScalarValuedFunction
- Returns:
- the most specific type to which any possible return type is assignable.
-
validateInputType
public ScalarTokenType validateInputType(RecordTokenType inputType)
Description copied from interface:ScalarValuedFunction
Calculates the actual output type of the function given the specified input type.The type returned must be assignable to the type returned by
ScalarValuedFunction.getUpperBound()
. If this is not the case, runtime type errors may arise.- Specified by:
validateInputType
in interfaceScalarValuedFunction
- Parameters:
inputType
- the type of the record used as input to the function- Returns:
- the return type of the function for the given input record schema
-
getEvaluator
public FunctionEvaluator getEvaluator(RecordValued input, ScalarSettable output)
Description copied from interface:ScalarValuedFunction
Constructs an instance of an evaluator for the function. The evaluator returns the result of the the function applied to the specified input into the given output target.Implementations may assume that the input and output are known to be compatible with the function. Normally, this method is only invoked by the DataRush framework, which guarantees this is the case. In general, to satisfy this requirement, callers are expected to:
- verify that
validateInputType(input.getType())
does not throw an exception - verify the output type returned is assignable to
result.getType()
- Specified by:
getEvaluator
in interfaceScalarValuedFunction
- Parameters:
input
- the record source to use as context for evaluating the functionoutput
- the buffer into which evaluation results are to be stored- Returns:
- an evaluator bound to the provided input and output
- verify that
-
getSubexpressionEvaluation
public ScalarValued getSubexpressionEvaluation(EvaluationContext ctx)
Description copied from interface:ScalarValuedFunction
Constructs an instance of an evaluation of the function in the context of a larger expression.- Specified by:
getSubexpressionEvaluation
in interfaceScalarValuedFunction
- Parameters:
ctx
- the expression context in which the function is being evaluated as a subexpression- Returns:
- an object representing the subexpression's current value
-
hashCode
public int hashCode()
Description copied from interface:ScalarValuedFunction
ScalarValuedFunctions should override this method in a manner consistent with
ScalarValuedFunction.equals(Object)
.- Specified by:
hashCode
in interfaceScalarValuedFunction
- Overrides:
hashCode
in classObject
-
equals
public boolean equals(Object obj)
Description copied from interface:ScalarValuedFunction
ScalarValuedFunctions should override this method to indicate whether they are equal to another ScalarValuedFunction.
- Specified by:
equals
in interfaceScalarValuedFunction
- Overrides:
equals
in classObject
-
constant
public static ScalarValuedFunction constant(byte[] value)
Creates a function evaluating to the specified binary constant.- Parameters:
value
- the constant value to return- Returns:
- the constant function
-
constant
public static ScalarValuedFunction constant(boolean value)
Creates a function evaluating to the specified boolean constant.- Parameters:
value
- the constant value to return- Returns:
- the constant function
-
constant
public static ScalarValuedFunction constant(char value)
Creates a function evaluating to the specified char constant.- Parameters:
value
- the constant value to return- Returns:
- the constant function
-
constant
public static ScalarValuedFunction constant(int value)
Creates a function evaluating to the specified int constant.- Parameters:
value
- the constant value to return- Returns:
- the constant function
-
constant
public static ScalarValuedFunction constant(long value)
Creates a function evaluating to the specified long constant.- Parameters:
value
- the constant value to return- Returns:
- the constant function
-
constant
public static ScalarValuedFunction constant(float value)
Creates a function evaluating to the specified float constant.- Parameters:
value
- the constant value to return- Returns:
- the constant function
-
constant
public static ScalarValuedFunction constant(double value)
Creates a function evaluating to the specified double constant.- Parameters:
value
- the constant value to return- Returns:
- the constant function
-
constant
public static ScalarValuedFunction constant(BigDecimal value)
Creates a function evaluating to the specified numeric constant.- Parameters:
value
- the constant value to return- Returns:
- the constant function
-
constant
public static ScalarValuedFunction constant(String value)
Creates a function evaluating to the specified string constant.- Parameters:
value
- the constant value to return- Returns:
- the constant function
-
constant
public static <O> ScalarValuedFunction constant(O value)
Creates a function evaluating to the specified object constant.- Type Parameters:
O
- the type of the object- Parameters:
value
- the constant value to return- Returns:
- the constant function
-
constant
public static ScalarValuedFunction constant(ScalarToken value)
Creates a function evaluating to the specified value.- Parameters:
value
- the constant value to return- Returns:
- the constant function
-
nullValue
@Deprecated public static ScalarValuedFunction nullValue(String fieldName)
Deprecated.Untyped null tokens are now supported. UsenullValue()
to generate a null token without an input type.Creates a function, of the same type as the specified field, evaluating to null.- Parameters:
fieldName
- an input field, the type of which will be used as the result type- Returns:
- the null function
-
nullValue
@Deprecated public static ScalarValuedFunction nullValue(ScalarValuedFunction expr)
Deprecated.Untyped null tokens are now supported. UsenullValue()
to generate a null token without an input type.Creates a function, of the same type as the specified expression, evaluating to null.- Parameters:
fieldName
- an expression, the type of which will be used as the result type- Returns:
- the null function
-
nullValue
public static ScalarValuedFunction nullValue()
Creates a function evaluating to null.- Returns:
- the null function
-
getRequiredFields
public Collection<String> getRequiredFields()
Description copied from interface:ScalarValuedFunction
Get the input fields required in the function input. An empty collection implies no specific fields are required.- Specified by:
getRequiredFields
in interfaceScalarValuedFunction
- Returns:
- the names of fields which must be present in the record input schema
-
remapFieldReferences
public ScalarValuedFunction remapFieldReferences(Map<String,String> oldToNewMapping)
Description copied from interface:ScalarValuedFunction
Creates a new function, equivalent to the given function, but with all field references renamed according to the given mapping.- Specified by:
remapFieldReferences
in interfaceScalarValuedFunction
- Parameters:
oldToNewMapping
- a mapping from old names to new names. If a name is not present in the given mapping, it will remain as-is.- Returns:
- a new function with all field reference renamed appropriately
-
mapFieldsToFunctions
public ScalarValuedFunction mapFieldsToFunctions(Map<String,ScalarValuedFunction> mapping)
Description copied from interface:ScalarValuedFunction
Creates a new function, equivalent to the given function, but with specified field references mapped to functions.- Specified by:
mapFieldsToFunctions
in interfaceScalarValuedFunction
- Parameters:
mapping
- a mapping from field names to functions. If a name is not present in the given mapping, it will remain as-is.- Returns:
- a new function with all field reference mapped appropriately
-
-