Class CoincidesEvaluatorDefinition

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

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

    The implementation of the 'coincides' evaluator definition.

    The coincides evaluator correlates two events and matches when both happen at the same time. Optionally, the evaluator accept thresholds for the distance between events' start and finish timestamps.

    Lets look at an example:

    $eventA : EventA( this coincides $eventB )

    The previous pattern will match if and only if the start timestamps of both $eventA and $eventB are the same AND the end timestamp of both $eventA and $eventB also are the same.

    Optionally, this operator accepts one or two parameters. These parameters are the thresholds for the distance between matching timestamps. If only one paratemer is given, it is used for both start and end timestamps. If two parameters are given, then the first is used as a threshold for the start timestamp and the second one is used as a threshold for the end timestamp. In other words:

     $eventA : EventA( this coincides[15s, 10s] $eventB ) 
    Above pattern will match if and only if:
     abs( $eventA.startTimestamp - $eventB.startTimestamp ) <= 15s &&
     abs( $eventA.endTimestamp - $eventB.endTimestamp ) <= 10s 
     

    NOTE: it makes no sense to use negative interval values for the parameters and the engine will raise an error if that happens.

    See Also:
    Serialized Form
    • Field Detail

      • coincidesOp

        protected static final String coincidesOp
      • COINCIDES

        public static final org.drools.drl.parser.impl.Operator COINCIDES
      • COINCIDES_NOT

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

      • CoincidesEvaluatorDefinition

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