Class MVELConstraint

  • All Implemented Interfaces:
    java.io.Externalizable, java.io.Serializable, java.lang.Cloneable, org.drools.base.rule.accessor.AcceptsReadAccessor, org.drools.base.rule.constraint.AlphaNodeFieldConstraint, org.drools.base.rule.constraint.BetaNodeFieldConstraint, org.drools.base.rule.constraint.Constraint, org.drools.base.rule.IndexableConstraint, org.drools.base.rule.RuleComponent

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

      • invocationCounter

        protected final transient java.util.concurrent.atomic.AtomicInteger invocationCounter
      • jitted

        protected transient volatile boolean jitted
      • expression

        protected java.lang.String expression
      • isDynamic

        protected boolean isDynamic
    • Constructor Detail

      • MVELConstraint

        public MVELConstraint()
      • MVELConstraint

        public MVELConstraint​(java.lang.String packageName,
                              java.lang.String expression,
                              MVELCompilationUnit compilationUnit,
                              org.drools.base.util.index.ConstraintTypeOperator constraintType,
                              org.drools.base.rule.accessor.FieldValue fieldValue,
                              org.drools.base.rule.accessor.ReadAccessor extractor,
                              org.drools.compiler.rule.builder.EvaluatorWrapper[] operators)
      • MVELConstraint

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

        public MVELConstraint​(java.util.Collection<java.lang.String> packageNames,
                              java.lang.String expression,
                              org.drools.base.rule.Declaration[] declarations,
                              org.drools.compiler.rule.builder.EvaluatorWrapper[] operators,
                              MVELCompilationUnit compilationUnit,
                              org.drools.base.util.index.ConstraintTypeOperator constraintType,
                              org.drools.base.rule.accessor.TupleValueExtractor indexingDeclaration,
                              org.drools.base.rule.accessor.ReadAccessor extractor,
                              boolean isUnification)
    • Method Detail

      • getAccessedClass

        protected java.lang.String getAccessedClass()
      • setReadAccessor

        public void setReadAccessor​(org.drools.base.rule.accessor.ReadAccessor readAccessor)
        Specified by:
        setReadAccessor in interface org.drools.base.rule.accessor.AcceptsReadAccessor
      • getPackageNames

        public java.util.Collection<java.lang.String> getPackageNames()
        Specified by:
        getPackageNames in interface org.drools.base.rule.constraint.Constraint
      • addPackageNames

        public void addPackageNames​(java.util.Collection<java.lang.String> otherPkgs)
        Specified by:
        addPackageNames in interface org.drools.base.rule.constraint.Constraint
      • getExpression

        public java.lang.String getExpression()
      • isDynamic

        public boolean isDynamic()
      • isUnification

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

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

        public boolean isIndexable​(short nodeType,
                                   org.kie.api.KieBaseConfiguration config)
        Specified by:
        isIndexable in interface org.drools.base.rule.IndexableConstraint
      • getConstraintType

        public org.drools.base.util.index.ConstraintTypeOperator getConstraintType()
        Specified by:
        getConstraintType in interface org.drools.base.rule.IndexableConstraint
      • getField

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

        public boolean isAllowed​(org.kie.api.runtime.rule.FactHandle handle,
                                 org.drools.base.base.ValueResolver valueResolver)
        Specified by:
        isAllowed in interface org.drools.base.rule.constraint.AlphaNodeFieldConstraint
      • isAllowedCachedLeft

        public boolean isAllowedCachedLeft​(org.drools.base.rule.ContextEntry context,
                                           org.kie.api.runtime.rule.FactHandle handle)
        Specified by:
        isAllowedCachedLeft in interface org.drools.base.rule.constraint.BetaNodeFieldConstraint
      • isAllowedCachedRight

        public boolean isAllowedCachedRight​(org.drools.base.reteoo.BaseTuple tuple,
                                            org.drools.base.rule.ContextEntry context)
        Specified by:
        isAllowedCachedRight in interface org.drools.base.rule.constraint.BetaNodeFieldConstraint
      • evaluate

        protected boolean evaluate​(org.kie.api.runtime.rule.FactHandle handle,
                                   org.drools.base.base.ValueResolver valueResolver,
                                   org.drools.base.reteoo.BaseTuple tuple)
      • createMvelConditionEvaluator

        protected ConditionEvaluator createMvelConditionEvaluator​(org.drools.base.base.ValueResolver valueResolver)
      • forceJitEvaluator

        protected ConditionEvaluator forceJitEvaluator​(org.kie.api.runtime.rule.FactHandle handle,
                                                       org.drools.base.base.ValueResolver valueResolver,
                                                       org.drools.base.reteoo.BaseTuple tuple)
      • jitEvaluator

        protected void jitEvaluator​(org.kie.api.runtime.rule.FactHandle handle,
                                    org.drools.base.base.ValueResolver valueResolver,
                                    org.drools.base.reteoo.BaseTuple tuple)
      • createContextEntry

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

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

        public org.drools.base.rule.accessor.ReadAccessor getFieldExtractor()
        Specified by:
        getFieldExtractor in interface org.drools.base.rule.IndexableConstraint
      • getIndexExtractor

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

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

        public org.drools.compiler.rule.builder.EvaluatorWrapper[] getOperators()
      • replaceDeclaration

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

        public org.drools.core.util.bitmask.BitMask getListenedPropertyMask​(java.util.Optional<org.drools.base.rule.Pattern> pattern,
                                                                            org.drools.base.base.ObjectType modifiedType,
                                                                            java.util.List<java.lang.String> settableProperties)
        Specified by:
        getListenedPropertyMask in interface org.drools.base.rule.constraint.Constraint
      • writeExternal

        public void writeExternal​(java.io.ObjectOutput out)
                           throws java.io.IOException
        Specified by:
        writeExternal in interface java.io.Externalizable
        Overrides:
        writeExternal in class org.drools.base.rule.MutableTypeConstraint
        Throws:
        java.io.IOException
      • readExternal

        public void readExternal​(java.io.ObjectInput in)
                          throws java.io.IOException,
                                 java.lang.ClassNotFoundException
        Specified by:
        readExternal in interface java.io.Externalizable
        Overrides:
        readExternal in class org.drools.base.rule.MutableTypeConstraint
        Throws:
        java.io.IOException
        java.lang.ClassNotFoundException
      • isTemporal

        public boolean isTemporal()
        Specified by:
        isTemporal in interface org.drools.base.rule.constraint.Constraint
      • cloneIfInUse

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

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

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

        public boolean equals​(java.lang.Object object)
        Overrides:
        equals in class java.lang.Object
      • equals

        public boolean equals​(java.lang.Object object,
                              org.drools.base.RuleBase kbase)
        Specified by:
        equals in interface org.drools.base.rule.constraint.Constraint
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • getParserConfiguration

        protected org.mvel2.ParserConfiguration getParserConfiguration​(org.drools.base.base.ValueResolver valueResolver)
      • getMVELDialectRuntimeData

        protected MVELDialectRuntimeData getMVELDialectRuntimeData​(org.drools.base.base.ValueResolver valueResolver)
      • getMVELDialectRuntimeData

        protected MVELDialectRuntimeData getMVELDialectRuntimeData​(org.drools.base.RuleBase kbase)
      • registerEvaluationContext

        public void registerEvaluationContext​(org.drools.base.RuleBuildContext buildContext)
        Specified by:
        registerEvaluationContext in interface org.drools.base.rule.constraint.Constraint
      • mergeEvaluationContext

        public void mergeEvaluationContext​(org.drools.base.rule.constraint.Constraint other)
        Specified by:
        mergeEvaluationContext in interface org.drools.base.rule.constraint.Constraint