Class IncludesEvaluatorDefinition

  • All Implemented Interfaces:
    Externalizable, Serializable, org.drools.compiler.rule.builder.EvaluatorDefinition, org.kie.api.runtime.rule.EvaluatorDefinition

    public class IncludesEvaluatorDefinition
    extends Object
    implements org.drools.compiler.rule.builder.EvaluatorDefinition

    The implementation of the includes evaluator definition.

    The includes evaluator correlates two events and matches when the event being correlated happens during the current event. It is the symmetrical opposite of during evaluator.

    Lets look at an example:

    $eventA : EventA( this includes $eventB )

    The previous pattern will match if and only if the $eventB starts after $eventA starts and finishes before $eventA finishes. In other words:

     $eventA.startTimestamp < $eventB.startTimestamp <= $eventB.endTimestamp < $eventA.endTimestamp 

    The includes operator accepts 1, 2 or 4 optional parameters as follow:

    • If one value is defined, this will be the maximum distance between the start timestamp of both event and the maximum distance between the end timestamp of both events in order to operator match. Example:
    • $eventA : EventA( this includes[ 5s ] $eventB )
      Will match if and only if:
       
       0 < $eventB.startTimestamp - $eventA.startTimestamp <= 5s &&
       0 < $eventA.endTimestamp - $eventB.endTimestamp <= 5s
       
      • If two values are defined, the first value will be the minimum distance between the timestamps of both events, while the second value will be the maximum distance between the timestamps of both events. Example:
      • $eventA : EventA( this includes[ 5s, 10s ] $eventB )
        Will match if and only if:
         
         5s <= $eventB.startTimestamp - $eventA.startTimestamp <= 10s &&
         5s <= $eventA.endTimestamp - $eventB.endTimestamp <= 10s
         
        • If four values are defined, the first two values will be the minimum and maximum distances between the start timestamp of both events, while the last two values will be the minimum and maximum distances between the end timestamp of both events. Example:
        • $eventA : EventA( this includes[ 2s, 6s, 4s, 10s ] $eventB )
          Will match if and only if:
           
           2s <= $eventB.startTimestamp - $eventA.startTimestamp <= 6s &&
           4s <= $eventA.endTimestamp - $eventB.endTimestamp <= 10s
           
    See Also:
    Serialized Form
    • Field Detail

      • includesOp

        public static final String includesOp
      • INCLUDES

        public static final org.drools.drl.parser.impl.Operator INCLUDES
      • INCLUDES_NOT

        public static final org.drools.drl.parser.impl.Operator INCLUDES_NOT
    • Constructor Detail

      • IncludesEvaluatorDefinition

        public IncludesEvaluatorDefinition()
    • Method Detail

      • getEvaluator

        public org.drools.core.rule.accessor.Evaluator getEvaluator​(org.drools.core.base.ValueType type,
                                                                    org.drools.drl.parser.impl.Operator operator)
        Specified by:
        getEvaluator in interface org.drools.compiler.rule.builder.EvaluatorDefinition
      • getEvaluator

        public org.drools.core.rule.accessor.Evaluator getEvaluator​(org.drools.core.base.ValueType type,
                                                                    org.drools.drl.parser.impl.Operator operator,
                                                                    String parameterText)
        Specified by:
        getEvaluator in interface org.drools.compiler.rule.builder.EvaluatorDefinition
      • getEvaluator

        public org.drools.core.rule.accessor.Evaluator getEvaluator​(org.drools.core.base.ValueType type,
                                                                    String operatorId,
                                                                    boolean isNegated,
                                                                    String parameterText)
        Specified by:
        getEvaluator in interface org.drools.compiler.rule.builder.EvaluatorDefinition
      • getEvaluator

        public org.drools.core.rule.accessor.Evaluator getEvaluator​(org.drools.core.base.ValueType type,
                                                                    String operatorId,
                                                                    boolean isNegated,
                                                                    String parameterText,
                                                                    org.drools.compiler.rule.builder.EvaluatorDefinition.Target left,
                                                                    org.drools.compiler.rule.builder.EvaluatorDefinition.Target right)
        Specified by:
        getEvaluator in interface org.drools.compiler.rule.builder.EvaluatorDefinition
      • getEvaluatorIds

        public String[] getEvaluatorIds()
        Specified by:
        getEvaluatorIds in interface org.drools.compiler.rule.builder.EvaluatorDefinition
      • isNegatable

        public boolean isNegatable()
        Specified by:
        isNegatable in interface org.drools.compiler.rule.builder.EvaluatorDefinition
      • getTarget

        public org.drools.compiler.rule.builder.EvaluatorDefinition.Target getTarget()
        Specified by:
        getTarget in interface org.drools.compiler.rule.builder.EvaluatorDefinition
      • supportsType

        public boolean supportsType​(org.drools.core.base.ValueType type)
        Specified by:
        supportsType in interface org.drools.compiler.rule.builder.EvaluatorDefinition