Class MVELConstraint

java.lang.Object
org.drools.base.rule.MutableTypeConstraint<org.drools.base.rule.ContextEntry>
org.drools.mvel.MVELConstraint
All Implemented Interfaces:
Externalizable, Serializable, Cloneable, org.drools.base.rule.accessor.AcceptsReadAccessor, org.drools.base.rule.constraint.AlphaNodeFieldConstraint, org.drools.base.rule.constraint.BetaConstraint<org.drools.base.rule.ContextEntry>, 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<org.drools.base.rule.ContextEntry> implements org.drools.base.rule.IndexableConstraint, org.drools.base.rule.accessor.AcceptsReadAccessor
See Also:
  • Field Details

    • TEST_JITTING

      protected static final boolean TEST_JITTING
      See Also:
    • invocationCounter

      protected final transient AtomicInteger invocationCounter
    • jitted

      protected transient volatile boolean jitted
    • expression

      protected String expression
    • isDynamic

      protected boolean isDynamic
    • compilationUnit

      protected MVELCompilationUnit compilationUnit
    • conditionEvaluator

      protected transient volatile ConditionEvaluator conditionEvaluator
  • Constructor Details

    • MVELConstraint

      public MVELConstraint()
    • MVELConstraint

      public MVELConstraint(String packageName, 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, EvaluatorWrapper[] operators)
    • MVELConstraint

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

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

    • getAccessedClass

      protected 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 Collection<String> getPackageNames()
      Specified by:
      getPackageNames in interface org.drools.base.rule.constraint.Constraint
    • addPackageNames

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

      public 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(int nodeType, 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(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, FactHandle handle)
      Specified by:
      isAllowedCachedLeft in interface org.drools.base.rule.constraint.BetaConstraint<org.drools.base.rule.ContextEntry>
    • 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.BetaConstraint<org.drools.base.rule.ContextEntry>
    • evaluate

      protected boolean evaluate(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(FactHandle handle, org.drools.base.base.ValueResolver valueResolver, org.drools.base.reteoo.BaseTuple tuple)
    • jitEvaluator

      protected void jitEvaluator(FactHandle handle, org.drools.base.base.ValueResolver valueResolver, org.drools.base.reteoo.BaseTuple tuple)
    • createContext

      public org.drools.base.rule.ContextEntry createContext()
      Specified by:
      createContext in interface org.drools.base.rule.constraint.BetaConstraint<org.drools.base.rule.ContextEntry>
    • getFieldIndex

      public org.drools.base.util.IndexedValueReader 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
    • getRightIndexExtractor

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

      public org.drools.base.rule.accessor.TupleValueExtractor getLeftIndexExtractor()
      Specified by:
      getLeftIndexExtractor 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 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.util.bitmask.BitMask getListenedPropertyMask(Optional<org.drools.base.rule.Pattern> pattern, org.drools.base.base.ObjectType modifiedType, List<String> settableProperties)
      Specified by:
      getListenedPropertyMask in interface org.drools.base.rule.constraint.Constraint
    • writeExternal

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

      public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException
      Specified by:
      readExternal in interface Externalizable
      Overrides:
      readExternal in class org.drools.base.rule.MutableTypeConstraint<org.drools.base.rule.ContextEntry>
      Throws:
      IOException
      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.BetaConstraint<org.drools.base.rule.ContextEntry>
      Overrides:
      cloneIfInUse in class org.drools.base.rule.MutableTypeConstraint<org.drools.base.rule.ContextEntry>
    • 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<org.drools.base.rule.ContextEntry>
    • hashCode

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

      public boolean equals(Object object)
      Overrides:
      equals in class Object
    • equals

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

      public String toString()
      Overrides:
      toString in class 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
    • getEvaluationContext

      public MVELConstraint.EvaluationContext getEvaluationContext()