Package org.kie.dmn.feel.util
Class EvalHelper
- java.lang.Object
-
- org.kie.dmn.feel.util.EvalHelper
-
public class EvalHelper extends java.lang.Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classEvalHelper.PropertyValueResult
-
Field Summary
Fields Modifier and Type Field Description static org.slf4j.LoggerLOG
-
Constructor Summary
Constructors Constructor Description EvalHelper()
-
Method Summary
All Methods Static Methods Concrete Methods Deprecated Methods Modifier and Type Method Description static voidclearGenericAccessorCache()static java.lang.ObjectcoerceNumber(java.lang.Object value)static java.lang.Booleancompare(java.lang.Object left, java.lang.Object right, EvaluationContext ctx, java.util.function.BiPredicate<java.lang.Comparable,java.lang.Comparable> op)Compares left and right operands using the given predicate and returns TRUE/FALSE accordinglystatic java.lang.reflect.MethodgetAccessor(java.lang.Class<?> clazz, java.lang.String field)JavaBean -spec compliant accessor.static java.math.BigDecimalgetBigDecimalOrNull(java.lang.Object value)static java.lang.BooleangetBooleanOrNull(java.lang.Object value)static EvalHelper.PropertyValueResultgetDefinedValue(java.lang.Object current, java.lang.String property)static java.lang.reflect.MethodgetGenericAccessor(java.lang.Class<?> clazz, java.lang.String field)FEEL annotated or else Java accessor.static java.lang.ObjectgetValue(java.lang.Object current, java.lang.String property)Deprecated.this method cannot distinguish null because: 1. property undefined for current, 2. an error, 3. a properly defined property value valorized to null.static java.lang.BooleanisEqual(java.lang.Object left, java.lang.Object right, EvaluationContext ctx)Compares left and right for equality applying FEEL semantics to specific data typesstatic java.lang.BooleanisEqualDateTimeInSemanticD(java.time.temporal.TemporalAccessor left, java.time.temporal.TemporalAccessor right)DMNv1.2 Table 48: Specific semantics of equality DMNv1.3 Table 71: Semantic of date and time functionsstatic java.lang.BooleanisEqualTimeInSemanticD(java.time.temporal.TemporalAccessor left, java.time.temporal.TemporalAccessor right)DMNv1.2 Table 48: Specific semantics of equality DMNv1.3 Table 71: Semantic of date and time functionsstatic java.lang.StringlcFirst(java.lang.String name)static java.lang.StringnormalizeVariableName(java.lang.String name)static java.util.Optional<java.lang.String>propertyFromAccessor(java.lang.reflect.Method accessor)Inverse ofgetAccessor(Class, String)static java.lang.StringucFirst(java.lang.String name)static java.lang.StringunescapeString(java.lang.String text)
-
-
-
Method Detail
-
normalizeVariableName
public static java.lang.String normalizeVariableName(java.lang.String name)
-
getBigDecimalOrNull
public static java.math.BigDecimal getBigDecimalOrNull(java.lang.Object value)
-
coerceNumber
public static java.lang.Object coerceNumber(java.lang.Object value)
-
getBooleanOrNull
public static java.lang.Boolean getBooleanOrNull(java.lang.Object value)
-
unescapeString
public static java.lang.String unescapeString(java.lang.String text)
-
getDefinedValue
public static EvalHelper.PropertyValueResult getDefinedValue(java.lang.Object current, java.lang.String property)
-
getValue
public static java.lang.Object getValue(java.lang.Object current, java.lang.String property)Deprecated.this method cannot distinguish null because: 1. property undefined for current, 2. an error, 3. a properly defined property value valorized to null.getDefinedValue(Object, String)method instead.
-
getGenericAccessor
public static java.lang.reflect.Method getGenericAccessor(java.lang.Class<?> clazz, java.lang.String field)FEEL annotated or else Java accessor.- Parameters:
clazz-field-- Returns:
-
clearGenericAccessorCache
public static void clearGenericAccessorCache()
-
getAccessor
public static java.lang.reflect.Method getAccessor(java.lang.Class<?> clazz, java.lang.String field)JavaBean -spec compliant accessor.- Parameters:
clazz-field-- Returns:
-
propertyFromAccessor
public static java.util.Optional<java.lang.String> propertyFromAccessor(java.lang.reflect.Method accessor)
Inverse ofgetAccessor(Class, String)
-
ucFirst
public static java.lang.String ucFirst(java.lang.String name)
-
lcFirst
public static java.lang.String lcFirst(java.lang.String name)
-
compare
public static java.lang.Boolean compare(java.lang.Object left, java.lang.Object right, EvaluationContext ctx, java.util.function.BiPredicate<java.lang.Comparable,java.lang.Comparable> op)Compares left and right operands using the given predicate and returns TRUE/FALSE accordingly- Parameters:
left-right-ctx-op-- Returns:
-
isEqual
public static java.lang.Boolean isEqual(java.lang.Object left, java.lang.Object right, EvaluationContext ctx)Compares left and right for equality applying FEEL semantics to specific data types- Parameters:
left-right-ctx-- Returns:
-
isEqualDateTimeInSemanticD
public static java.lang.Boolean isEqualDateTimeInSemanticD(java.time.temporal.TemporalAccessor left, java.time.temporal.TemporalAccessor right)DMNv1.2 Table 48: Specific semantics of equality DMNv1.3 Table 71: Semantic of date and time functions
-
isEqualTimeInSemanticD
public static java.lang.Boolean isEqualTimeInSemanticD(java.time.temporal.TemporalAccessor left, java.time.temporal.TemporalAccessor right)DMNv1.2 Table 48: Specific semantics of equality DMNv1.3 Table 71: Semantic of date and time functions
-
-