Class OverlapsEvaluatorDefinition

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

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

    The implementation of the overlaps evaluator definition.

    The overlaps evaluator correlates two events and matches when the current event starts before the correlated event starts and finishes after the correlated event starts, but before the correlated event finishes. In other words, both events have an overlapping period.

    Lets look at an example:

    $eventA : EventA( this overlaps $eventB )

    The previous pattern will match if and only if:

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

    The overlaps operator accepts 1 or 2 optional parameters as follow:

    • If one parameter is defined, this will be the maximum distance between the start timestamp of the correlated event and the end timestamp of the current event. Example:
    • $eventA : EventA( this overlaps[ 5s ] $eventB )
      Will match if and only if:
       
       $eventA.startTimestamp < $eventB.startTimestamp < $eventA.endTimestamp < $eventB.endTimestamp &&
       0 <= $eventA.endTimestamp - $eventB.startTimestamp <= 5s 
       
      • If two values are defined, the first value will be the minimum distance and the second value will be the maximum distance between the start timestamp of the correlated event and the end timestamp of the current event. Example:
      • $eventA : EventA( this overlaps[ 5s, 10s ] $eventB )
        Will match if and only if:
         
         $eventA.startTimestamp < $eventB.startTimestamp < $eventA.endTimestamp < $eventB.endTimestamp &&
         5s <= $eventA.endTimestamp - $eventB.startTimestamp <= 10s 
         
    See Also:
    Serialized Form
    • Field Detail

      • overlapsOp

        public static final String overlapsOp
      • OVERLAPS

        public static final org.drools.drl.parser.impl.Operator OVERLAPS
      • OVERLAPS_NOT

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

      • OverlapsEvaluatorDefinition

        public OverlapsEvaluatorDefinition()
    • 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