Class EvaluatorWrapper

  • All Implemented Interfaces:
    Serializable, Evaluator, org.kie.api.runtime.rule.Evaluator

    public class EvaluatorWrapper
    extends Object
    implements Evaluator
    An EvaluatorWrapper is used when executing MVEL expressions that have operator calls rewritten as: operator.evaluate( leftArg, rightArg )
    See Also:
    Serialized Form
    • Method Detail

      • evaluate

        public boolean evaluate​(ReteEvaluator reteEvaluator,
                                Object left,
                                Object right)
        This method is called when operators are rewritten as function calls. For instance, x after y Is rewritten as after.evaluate( _workingMemory_, x, y )
        Returns:
      • getOperator

        public org.kie.api.runtime.rule.Operator getOperator()
        Description copied from interface: Evaluator
        Returns the operator representation object for this evaluator
        Specified by:
        getOperator in interface Evaluator
        Specified by:
        getOperator in interface org.kie.api.runtime.rule.Evaluator
        Returns:
        See Also:
        Evaluator.getOperator()
      • getCoercedValueType

        public ValueType getCoercedValueType()
        Description copied from interface: Evaluator
        Returns the value type this evaluator will coerce operands to, during evaluation. This is useful for operators like "memberOf", that always convert to Object when evaluating, independently of the source operand value type.
        Specified by:
        getCoercedValueType in interface Evaluator
        Returns:
        See Also:
        Evaluator.getCoercedValueType()
      • evaluate

        public boolean evaluate​(ReteEvaluator reteEvaluator,
                                InternalReadAccessor extractor,
                                InternalFactHandle factHandle,
                                FieldValue value)
        Description copied from interface: Evaluator
        Evaluates the expression using the provided parameters. This method is used when evaluating alpha-constraints, i.e., a fact attribute against a constant value. For instance: Person( name == "Bob" ) So, it uses a constant value "Bob" that is sent into the method as the FieldValue (value), and compares it to the value of the name field, read by using the extractor on the fact instance (object1).
        Specified by:
        evaluate in interface Evaluator
        extractor - The extractor used to get the field value from the object
        factHandle - The source object to evaluate, i.e., the fact
        value - The actual value to compare to, i.e., the constant value.
        Returns:
        Returns true if evaluation is successful. false otherwise.
      • evaluate

        public boolean evaluate​(ReteEvaluator reteEvaluator,
                                InternalReadAccessor leftExtractor,
                                InternalFactHandle left,
                                InternalReadAccessor rightExtractor,
                                InternalFactHandle right)
        Description copied from interface: Evaluator
        Evaluates the expression using the provided parameters. This method is used for internal indexing and hashing, when drools needs to extract and evaluate both left and right values at once. For instance: Person( name == $someName ) This method will be used to extract and evaluate both the "name" attribute and the "$someName" variable at once.
        Specified by:
        evaluate in interface Evaluator
        leftExtractor - The extractor to read the left value. In the above example, the "$someName" variable value.
        left - The source object from where the value of the variable is extracted.
        rightExtractor - The extractor to read the right value. In the above example, the "name" attribute value.
        right - The right object from where to extract the value. In the above example, that is the "Person" instance from where to extract the "name" attribute.
        Returns:
        Returns true if evaluation is successful. false otherwise.
      • evaluateCachedLeft

        public boolean evaluateCachedLeft​(ReteEvaluator reteEvaluator,
                                          VariableRestriction.VariableContextEntry context,
                                          InternalFactHandle right)
        Description copied from interface: Evaluator
        Evaluates the expression using the provided parameters. This method is used when evaluating left-activated beta-constraints, i.e., a fact attribute against a variable value, that is activated from the left. For instance: Person( name == $someName ) This method will be used when a new $someName variable is bound. So it will cache the value of $someName and will iterate over the right memory (Person instances) evaluating each occurrence.
        Specified by:
        evaluateCachedLeft in interface Evaluator
        context - The previously cached context, including the left value and the extractor for the right value.
        right - The right object, from where to extract the value. In the above example, that is the "Person" instance from where to extract the "name" attribute.
        Returns:
        Returns true if evaluation is successful. false otherwise.
      • evaluateCachedRight

        public boolean evaluateCachedRight​(ReteEvaluator reteEvaluator,
                                           VariableRestriction.VariableContextEntry context,
                                           InternalFactHandle left)
        Description copied from interface: Evaluator
        Evaluates the expression using the provided parameters. This method is used when evaluating right-activated beta-constraints, i.e., a fact attribute against a variable value, that is activated from the right. For instance: Person( name == $someName ) This method will be used when a new Person instance is evaluated. So it will cache the value of the "Person" instance and will iterate over the left memory comparing it to each "$someName" bound values.
        Specified by:
        evaluateCachedRight in interface Evaluator
        context - The previously cached context, including the right value and the extractor for the left value.
        left - The left object, from where to extract the bound variable. In the above example, that is the "$someName" variable value.
        Returns:
        Returns true if evaluation is successful. false otherwise.
      • isTemporal

        public boolean isTemporal()
        Description copied from interface: Evaluator
        Returns true if this evaluator implements a temporal evaluation, i.e., a time sensitive evaluation whose properties of matching only events within an specific time interval can be used for determining event expirations automatically.
        Specified by:
        isTemporal in interface Evaluator
        Specified by:
        isTemporal in interface org.kie.api.runtime.rule.Evaluator
        Returns:
        See Also:
        Evaluator.isTemporal()
      • getBindingName

        public String getBindingName()
      • setBindingName

        public void setBindingName​(String bindingName)