Class IncludesEvaluatorDefinition

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

    public class IncludesEvaluatorDefinition
    extends java.lang.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
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  IncludesEvaluatorDefinition.IncludesEvaluator
      Implements the 'includes' evaluator itself
      • Nested classes/interfaces inherited from interface org.drools.compiler.rule.builder.EvaluatorDefinition

        org.drools.compiler.rule.builder.EvaluatorDefinition.Target
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static org.drools.drl.parser.impl.Operator INCLUDES  
      static org.drools.drl.parser.impl.Operator INCLUDES_NOT  
      static java.lang.String includesOp  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      org.drools.base.rule.accessor.Evaluator getEvaluator​(org.drools.base.base.ValueType type, java.lang.String operatorId, boolean isNegated, java.lang.String parameterText)  
      org.drools.base.rule.accessor.Evaluator getEvaluator​(org.drools.base.base.ValueType type, java.lang.String operatorId, boolean isNegated, java.lang.String parameterText, org.drools.compiler.rule.builder.EvaluatorDefinition.Target left, org.drools.compiler.rule.builder.EvaluatorDefinition.Target right)  
      org.drools.base.rule.accessor.Evaluator getEvaluator​(org.drools.base.base.ValueType type, org.drools.drl.parser.impl.Operator operator)  
      org.drools.base.rule.accessor.Evaluator getEvaluator​(org.drools.base.base.ValueType type, org.drools.drl.parser.impl.Operator operator, java.lang.String parameterText)  
      java.lang.String[] getEvaluatorIds()  
      org.drools.compiler.rule.builder.EvaluatorDefinition.Target getTarget()  
      boolean isNegatable()  
      void readExternal​(java.io.ObjectInput in)  
      boolean supportsType​(org.drools.base.base.ValueType type)  
      void writeExternal​(java.io.ObjectOutput out)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • includesOp

        public static final java.lang.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

      • readExternal

        public void readExternal​(java.io.ObjectInput in)
                          throws java.io.IOException,
                                 java.lang.ClassNotFoundException
        Specified by:
        readExternal in interface java.io.Externalizable
        Throws:
        java.io.IOException
        java.lang.ClassNotFoundException
      • writeExternal

        public void writeExternal​(java.io.ObjectOutput out)
                           throws java.io.IOException
        Specified by:
        writeExternal in interface java.io.Externalizable
        Throws:
        java.io.IOException
      • getEvaluator

        public org.drools.base.rule.accessor.Evaluator getEvaluator​(org.drools.base.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.base.rule.accessor.Evaluator getEvaluator​(org.drools.base.base.ValueType type,
                                                                    org.drools.drl.parser.impl.Operator operator,
                                                                    java.lang.String parameterText)
        Specified by:
        getEvaluator in interface org.drools.compiler.rule.builder.EvaluatorDefinition
      • getEvaluator

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

        public org.drools.base.rule.accessor.Evaluator getEvaluator​(org.drools.base.base.ValueType type,
                                                                    java.lang.String operatorId,
                                                                    boolean isNegated,
                                                                    java.lang.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 java.lang.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.base.base.ValueType type)
        Specified by:
        supportsType in interface org.drools.compiler.rule.builder.EvaluatorDefinition