Class MVELConstraint

  • All Implemented Interfaces:
    Externalizable, Serializable, Cloneable, org.drools.core.rule.IndexableConstraint, org.drools.core.spi.Acceptor, org.drools.core.spi.AcceptsReadAccessor, org.drools.core.spi.AlphaNodeFieldConstraint, org.drools.core.spi.BetaNodeFieldConstraint, org.drools.core.spi.Constraint, org.drools.core.spi.RuleComponent

    public class MVELConstraint
    extends org.drools.core.rule.MutableTypeConstraint
    implements org.drools.core.rule.IndexableConstraint, org.drools.core.spi.AcceptsReadAccessor
    See Also:
    Serialized Form
    • Field Detail

      • invocationCounter

        protected final transient AtomicInteger invocationCounter
      • jitted

        protected transient volatile boolean jitted
      • expression

        protected String expression
      • isDynamic

        protected boolean isDynamic
      • conditionEvaluator

        protected transient volatile org.drools.core.rule.constraint.ConditionEvaluator conditionEvaluator
    • Constructor Detail

      • MVELConstraint

        public MVELConstraint()
      • MVELConstraint

        public MVELConstraint​(String packageName,
                              String expression,
                              MVELCompilationUnit compilationUnit,
                              org.drools.core.util.index.IndexUtil.ConstraintType constraintType,
                              org.drools.core.spi.FieldValue fieldValue,
                              org.drools.core.spi.InternalReadAccessor extractor,
                              org.drools.core.base.EvaluatorWrapper[] operators)
      • MVELConstraint

        public MVELConstraint​(String packageName,
                              String expression,
                              org.drools.core.rule.Declaration[] declarations,
                              org.drools.core.base.EvaluatorWrapper[] operators,
                              MVELCompilationUnit compilationUnit,
                              boolean isDynamic)
      • MVELConstraint

        public MVELConstraint​(Collection<String> packageNames,
                              String expression,
                              org.drools.core.rule.Declaration[] declarations,
                              org.drools.core.base.EvaluatorWrapper[] operators,
                              MVELCompilationUnit compilationUnit,
                              org.drools.core.util.index.IndexUtil.ConstraintType constraintType,
                              org.drools.core.spi.TupleValueExtractor indexingDeclaration,
                              org.drools.core.spi.InternalReadAccessor extractor,
                              boolean isUnification)
    • Method Detail

      • getAccessedClass

        protected String getAccessedClass()
      • setReadAccessor

        public void setReadAccessor​(org.drools.core.spi.InternalReadAccessor readAccessor)
        Specified by:
        setReadAccessor in interface org.drools.core.spi.AcceptsReadAccessor
      • getPackageNames

        public Collection<String> getPackageNames()
        Specified by:
        getPackageNames in interface org.drools.core.spi.Constraint
      • addPackageNames

        public void addPackageNames​(Collection<String> otherPkgs)
        Specified by:
        addPackageNames in interface org.drools.core.spi.Constraint
      • getExpression

        public String getExpression()
      • isDynamic

        public boolean isDynamic()
      • isUnification

        public boolean isUnification()
        Specified by:
        isUnification in interface org.drools.core.rule.IndexableConstraint
      • unsetUnification

        public void unsetUnification()
        Specified by:
        unsetUnification in interface org.drools.core.rule.IndexableConstraint
      • isIndexable

        public boolean isIndexable​(short nodeType,
                                   org.drools.core.RuleBaseConfiguration config)
        Specified by:
        isIndexable in interface org.drools.core.rule.IndexableConstraint
      • getConstraintType

        public org.drools.core.util.index.IndexUtil.ConstraintType getConstraintType()
        Specified by:
        getConstraintType in interface org.drools.core.rule.IndexableConstraint
      • getField

        public org.drools.core.spi.FieldValue getField()
        Specified by:
        getField in interface org.drools.core.rule.IndexableConstraint
      • isAllowed

        public boolean isAllowed​(org.drools.core.common.InternalFactHandle handle,
                                 org.drools.core.common.InternalWorkingMemory workingMemory)
        Specified by:
        isAllowed in interface org.drools.core.spi.AlphaNodeFieldConstraint
      • isAllowedCachedLeft

        public boolean isAllowedCachedLeft​(org.drools.core.rule.ContextEntry context,
                                           org.drools.core.common.InternalFactHandle handle)
        Specified by:
        isAllowedCachedLeft in interface org.drools.core.spi.BetaNodeFieldConstraint
      • isAllowedCachedRight

        public boolean isAllowedCachedRight​(org.drools.core.spi.Tuple tuple,
                                            org.drools.core.rule.ContextEntry context)
        Specified by:
        isAllowedCachedRight in interface org.drools.core.spi.BetaNodeFieldConstraint
      • evaluate

        protected boolean evaluate​(org.drools.core.common.InternalFactHandle handle,
                                   org.drools.core.common.InternalWorkingMemory workingMemory,
                                   org.drools.core.spi.Tuple tuple)
      • createMvelConditionEvaluator

        protected org.drools.core.rule.constraint.ConditionEvaluator createMvelConditionEvaluator​(org.drools.core.common.InternalWorkingMemory workingMemory)
      • forceJitEvaluator

        protected org.drools.core.rule.constraint.ConditionEvaluator forceJitEvaluator​(org.drools.core.common.InternalFactHandle handle,
                                                                                       org.drools.core.common.InternalWorkingMemory workingMemory,
                                                                                       org.drools.core.spi.Tuple tuple)
      • jitEvaluator

        protected void jitEvaluator​(org.drools.core.common.InternalFactHandle handle,
                                    org.drools.core.common.InternalWorkingMemory workingMemory,
                                    org.drools.core.spi.Tuple tuple)
      • createContextEntry

        public org.drools.core.rule.ContextEntry createContextEntry()
        Specified by:
        createContextEntry in interface org.drools.core.spi.BetaNodeFieldConstraint
      • getFieldIndex

        public org.drools.core.util.AbstractHashTable.FieldIndex getFieldIndex()
        Specified by:
        getFieldIndex in interface org.drools.core.rule.IndexableConstraint
      • getFieldExtractor

        public org.drools.core.spi.InternalReadAccessor getFieldExtractor()
        Specified by:
        getFieldExtractor in interface org.drools.core.rule.IndexableConstraint
      • getIndexExtractor

        public org.drools.core.spi.TupleValueExtractor getIndexExtractor()
        Specified by:
        getIndexExtractor in interface org.drools.core.rule.IndexableConstraint
      • getRequiredDeclarations

        public org.drools.core.rule.Declaration[] getRequiredDeclarations()
        Specified by:
        getRequiredDeclarations in interface org.drools.core.spi.Constraint
      • getOperators

        public org.drools.core.base.EvaluatorWrapper[] getOperators()
      • replaceDeclaration

        public void replaceDeclaration​(org.drools.core.rule.Declaration oldDecl,
                                       org.drools.core.rule.Declaration newDecl)
        Specified by:
        replaceDeclaration in interface org.drools.core.spi.Constraint
      • getListenedPropertyMask

        public org.drools.core.util.bitmask.BitMask getListenedPropertyMask​(Class modifiedClass,
                                                                            List<String> settableProperties)
        Specified by:
        getListenedPropertyMask in interface org.drools.core.spi.Constraint
      • isTemporal

        public boolean isTemporal()
        Specified by:
        isTemporal in interface org.drools.core.spi.Constraint
      • cloneIfInUse

        public MVELConstraint cloneIfInUse()
        Specified by:
        cloneIfInUse in interface org.drools.core.spi.AlphaNodeFieldConstraint
        Specified by:
        cloneIfInUse in interface org.drools.core.spi.BetaNodeFieldConstraint
        Overrides:
        cloneIfInUse in class org.drools.core.rule.MutableTypeConstraint
      • clone

        public MVELConstraint clone()
        Specified by:
        clone in interface org.drools.core.spi.Constraint
        Specified by:
        clone in class org.drools.core.rule.MutableTypeConstraint
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object
      • equals

        public boolean equals​(Object object,
                              org.drools.core.impl.InternalKnowledgeBase kbase)
        Specified by:
        equals in interface org.drools.core.spi.Constraint
      • getParserConfiguration

        protected org.mvel2.ParserConfiguration getParserConfiguration​(org.drools.core.common.InternalWorkingMemory workingMemory)
      • getMVELDialectRuntimeData

        protected MVELDialectRuntimeData getMVELDialectRuntimeData​(org.drools.core.common.InternalWorkingMemory workingMemory)
      • getMVELDialectRuntimeData

        protected MVELDialectRuntimeData getMVELDialectRuntimeData​(org.drools.core.impl.InternalKnowledgeBase kbase)
      • registerEvaluationContext

        public void registerEvaluationContext​(org.drools.core.reteoo.builder.BuildContext buildContext)
        Specified by:
        registerEvaluationContext in interface org.drools.core.spi.Constraint
      • mergeEvaluationContext

        public void mergeEvaluationContext​(org.drools.core.spi.Constraint other)
        Specified by:
        mergeEvaluationContext in interface org.drools.core.spi.Constraint