Interface Evaluator

  • All Superinterfaces:
    org.kie.api.runtime.rule.Evaluator, java.io.Serializable

    public interface Evaluator
    extends java.io.Serializable, org.kie.api.runtime.rule.Evaluator
    A public interface to be implemented by all evaluators
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      boolean evaluate​(ValueResolver valueResolver, ReadAccessor extractor, org.kie.api.runtime.rule.FactHandle factHandle, FieldValue value)
      Evaluates the expression using the provided parameters.
      boolean evaluate​(ValueResolver valueResolver, ReadAccessor leftExtractor, org.kie.api.runtime.rule.FactHandle left, ReadAccessor rightExtractor, org.kie.api.runtime.rule.FactHandle right)
      Evaluates the expression using the provided parameters.
      ValueType getCoercedValueType()
      Returns the value type this evaluator will coerce operands to, during evaluation.
      Interval getInterval()
      In case this is a temporal evaluator, returns the interval in which this evaluator may match the target fact
      org.kie.api.runtime.rule.Operator getOperator()
      Returns the operator representation object for this evaluator
      ValueType getValueType()
      Returns the type of the values this evaluator operates upon.
      boolean isTemporal()
      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.
    • Method Detail

      • getValueType

        ValueType getValueType()
        Returns the type of the values this evaluator operates upon.
        Returns:
      • getOperator

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

        ValueType getCoercedValueType()
        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.
        Returns:
      • evaluate

        boolean evaluate​(ValueResolver valueResolver,
                         ReadAccessor extractor,
                         org.kie.api.runtime.rule.FactHandle factHandle,
                         FieldValue value)
        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).
        Parameters:
        valueResolver - The current working memory
        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

        boolean evaluate​(ValueResolver valueResolver,
                         ReadAccessor leftExtractor,
                         org.kie.api.runtime.rule.FactHandle left,
                         ReadAccessor rightExtractor,
                         org.kie.api.runtime.rule.FactHandle right)
        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.
        Parameters:
        valueResolver - The current working memory
        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.
      • isTemporal

        boolean isTemporal()
        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 org.kie.api.runtime.rule.Evaluator
        Returns:
        true if the evaluator is a temporal evaluator.
      • getInterval

        Interval getInterval()
        In case this is a temporal evaluator, returns the interval in which this evaluator may match the target fact
        Returns: