Class IncludesEvaluatorDefinition

java.lang.Object
org.drools.mvel.evaluators.IncludesEvaluatorDefinition
All Implemented Interfaces:
Externalizable, Serializable, EvaluatorDefinition, EvaluatorDefinition

public class IncludesEvaluatorDefinition extends Object implements 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: