Package org.drools.compiler.rule.builder
Class PatternBuilder
- java.lang.Object
-
- org.drools.compiler.rule.builder.PatternBuilder
-
- All Implemented Interfaces:
EngineElementBuilder
,RuleConditionBuilder<org.drools.drl.ast.descr.PatternDescr>
public class PatternBuilder extends java.lang.Object implements RuleConditionBuilder<org.drools.drl.ast.descr.PatternDescr>
A builder for patterns
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
PatternBuilder.ExprBindings
-
Constructor Summary
Constructors Constructor Description PatternBuilder()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description org.drools.base.rule.RuleConditionElement
build(RuleBuildContext context, org.drools.drl.ast.descr.PatternDescr descr)
org.drools.base.rule.RuleConditionElement
build(RuleBuildContext context, org.drools.drl.ast.descr.PatternDescr patternDescr, org.drools.base.rule.Pattern prefixPattern)
Build a pattern for the given descriptor in the current context and using the given utils objectstatic AnalysisResult
buildAnalysis(RuleBuildContext context, org.drools.base.rule.Pattern pattern, org.drools.drl.ast.descr.PredicateDescr predicateDescr, java.util.Map<java.lang.String,org.drools.drl.ast.descr.OperatorDescr> aliases)
protected org.drools.base.rule.constraint.Constraint
buildConstraintForPattern(RuleBuildContext context, org.drools.base.rule.Pattern pattern, org.drools.drl.ast.descr.RelationalExprDescr relDescr, java.lang.String expr, java.lang.String value1, java.lang.String value2, boolean isConstant, java.util.Map<java.lang.String,org.drools.drl.ast.descr.OperatorDescr> aliases)
protected org.drools.base.rule.constraint.Constraint
buildEval(RuleBuildContext context, org.drools.base.rule.Pattern pattern, org.drools.drl.ast.descr.PredicateDescr predicateDescr, java.util.Map<java.lang.String,org.drools.drl.ast.descr.OperatorDescr> aliases, java.lang.String expr, boolean isEvalExpression)
protected org.drools.drl.ast.descr.LiteralRestrictionDescr
buildLiteralRestrictionDescr(RuleBuildContext context, org.drools.drl.ast.descr.RelationalExprDescr exprDescr, java.lang.String rightValue, boolean isRightLiteral)
static java.util.Map<java.lang.String,EvaluatorWrapper>
buildOperators(RuleBuildContext context, org.drools.base.rule.Pattern pattern, org.drools.drl.ast.descr.BaseDescr predicateDescr, java.util.Map<java.lang.String,org.drools.drl.ast.descr.OperatorDescr> aliases)
protected org.drools.base.rule.constraint.Constraint
buildRelationalExpression(RuleBuildContext context, org.drools.base.rule.Pattern pattern, org.drools.drl.ast.descr.RelationalExprDescr relDescr, java.lang.String expr, java.util.Map<java.lang.String,org.drools.drl.ast.descr.OperatorDescr> aliases)
protected void
buildRuleBindings(RuleBuildContext context, org.drools.drl.ast.descr.PatternDescr patternDescr, org.drools.base.rule.Declaration xpathStartDeclaration, org.drools.base.rule.Pattern pattern, org.drools.drl.ast.descr.BindingDescr fieldBindingDescr)
protected void
buildRuleBindings(RuleBuildContext context, org.drools.drl.ast.descr.PatternDescr patternDescr, org.drools.base.rule.Declaration xpathStartDeclaration, org.drools.base.rule.Pattern pattern, org.drools.drl.ast.descr.BindingDescr fieldBindingDescr, org.drools.base.rule.TypeDeclaration typeDeclaration)
protected org.drools.base.rule.constraint.Constraint
createAndBuildPredicate(RuleBuildContext context, org.drools.base.rule.Pattern pattern, org.drools.drl.ast.descr.BaseDescr base, java.lang.String expr, java.util.Map<java.lang.String,org.drools.drl.ast.descr.OperatorDescr> aliases)
protected static org.drools.base.rule.Declaration
createDeclarationObject(RuleBuildContext context, java.lang.String identifier, java.lang.String expr, org.drools.base.rule.Pattern pattern)
protected static org.drools.base.rule.Declaration
createDeclarationObject(RuleBuildContext context, java.lang.String identifier, org.drools.base.rule.Pattern pattern)
Creates a declaration object for the field identified by the given identifier on the give pattern objectstatic void
createImplicitBindings(RuleBuildContext context, org.drools.base.rule.Pattern pattern, java.util.Set<java.lang.String> unboundIdentifiers, BoundIdentifiers boundIdentifiers, java.util.List<org.drools.base.rule.Declaration> factDeclarations)
static org.drools.base.rule.accessor.ReadAccessor
getFieldReadAccessor(RuleBuildContext context, org.drools.drl.ast.descr.BaseDescr descr, org.drools.base.rule.Pattern pattern, java.lang.String fieldName, org.drools.base.rule.accessor.AcceptsReadAccessor target, boolean reportError)
static org.drools.base.rule.accessor.ReadAccessor
getFieldReadAccessor(RuleBuildContext context, org.drools.drl.ast.descr.BaseDescr descr, org.drools.base.rule.Pattern pattern, org.drools.base.base.ObjectType objectType, java.lang.String fieldName, org.drools.base.rule.accessor.AcceptsReadAccessor target, boolean reportError)
static EvaluatorWrapper[]
getOperators(java.util.Map<java.lang.String,EvaluatorWrapper> operatorMap)
protected java.util.Collection<java.lang.String>
getSettableProperties(RuleBuildContext context, org.drools.drl.ast.descr.PatternDescr patternDescr, org.drools.base.rule.Pattern pattern)
static org.drools.base.rule.Declaration[][]
getUsedDeclarations(RuleBuildContext context, org.drools.base.rule.Pattern pattern, AnalysisResult analysis)
boolean
isInternalFact(org.drools.drl.ast.descr.PatternDescr patternDescr, RuleBuildContext context)
protected boolean
isSimpleExpr(org.drools.drl.ast.descr.RelationalExprDescr relDescr)
static java.util.Collection<java.lang.String>
lookAheadFieldsOfIdentifier(org.drools.drl.ast.descr.RuleDescr ruleDescr, org.drools.drl.ast.descr.PatternDescr patternDescr)
protected org.drools.drl.ast.descr.ConstraintConnectiveDescr
parseExpression(RuleBuildContext context, org.drools.drl.ast.descr.PatternDescr patternDescr, org.drools.drl.ast.descr.BaseDescr original, java.lang.String expression)
protected void
processAnnotations(RuleBuildContext context, org.drools.drl.ast.descr.PatternDescr patternDescr, org.drools.base.rule.Pattern pattern)
protected org.drools.base.rule.constraint.Constraint
processAtomicExpression(RuleBuildContext context, org.drools.base.rule.Pattern pattern, org.drools.drl.ast.descr.BaseDescr d, java.lang.String expr, java.util.Map<java.lang.String,org.drools.drl.ast.descr.OperatorDescr> aliases)
protected void
processListenedPropertiesAnnotation(RuleBuildContext context, org.drools.drl.ast.descr.PatternDescr patternDescr, org.drools.base.rule.Pattern pattern)
protected void
processMetadataAnnotations(org.drools.drl.ast.descr.PatternDescr patternDescr, org.drools.base.rule.Pattern pattern, org.drools.util.TypeResolver typeResolver)
static void
registerDescrBuildError(RuleBuildContext context, org.drools.drl.ast.descr.BaseDescr patternDescr, java.lang.Object object, java.lang.String error)
static void
registerDescrBuildError(RuleBuildContext context, org.drools.drl.ast.descr.BaseDescr patternDescr, java.lang.String error)
static void
registerReadAccessor(RuleBuildContext context, org.drools.base.base.ObjectType objectType, java.lang.String fieldName, org.drools.base.rule.accessor.AcceptsReadAccessor target)
-
-
-
Method Detail
-
build
public org.drools.base.rule.RuleConditionElement build(RuleBuildContext context, org.drools.drl.ast.descr.PatternDescr descr)
- Specified by:
build
in interfaceRuleConditionBuilder<org.drools.drl.ast.descr.PatternDescr>
-
build
public org.drools.base.rule.RuleConditionElement build(RuleBuildContext context, org.drools.drl.ast.descr.PatternDescr patternDescr, org.drools.base.rule.Pattern prefixPattern)
Build a pattern for the given descriptor in the current context and using the given utils object- Specified by:
build
in interfaceRuleConditionBuilder<org.drools.drl.ast.descr.PatternDescr>
-
isInternalFact
public boolean isInternalFact(org.drools.drl.ast.descr.PatternDescr patternDescr, RuleBuildContext context)
-
processAnnotations
protected void processAnnotations(RuleBuildContext context, org.drools.drl.ast.descr.PatternDescr patternDescr, org.drools.base.rule.Pattern pattern)
-
processMetadataAnnotations
protected void processMetadataAnnotations(org.drools.drl.ast.descr.PatternDescr patternDescr, org.drools.base.rule.Pattern pattern, org.drools.util.TypeResolver typeResolver)
-
processListenedPropertiesAnnotation
protected void processListenedPropertiesAnnotation(RuleBuildContext context, org.drools.drl.ast.descr.PatternDescr patternDescr, org.drools.base.rule.Pattern pattern)
-
getSettableProperties
protected java.util.Collection<java.lang.String> getSettableProperties(RuleBuildContext context, org.drools.drl.ast.descr.PatternDescr patternDescr, org.drools.base.rule.Pattern pattern)
-
lookAheadFieldsOfIdentifier
public static java.util.Collection<java.lang.String> lookAheadFieldsOfIdentifier(org.drools.drl.ast.descr.RuleDescr ruleDescr, org.drools.drl.ast.descr.PatternDescr patternDescr)
-
buildRelationalExpression
protected org.drools.base.rule.constraint.Constraint buildRelationalExpression(RuleBuildContext context, org.drools.base.rule.Pattern pattern, org.drools.drl.ast.descr.RelationalExprDescr relDescr, java.lang.String expr, java.util.Map<java.lang.String,org.drools.drl.ast.descr.OperatorDescr> aliases)
-
buildConstraintForPattern
protected org.drools.base.rule.constraint.Constraint buildConstraintForPattern(RuleBuildContext context, org.drools.base.rule.Pattern pattern, org.drools.drl.ast.descr.RelationalExprDescr relDescr, java.lang.String expr, java.lang.String value1, java.lang.String value2, boolean isConstant, java.util.Map<java.lang.String,org.drools.drl.ast.descr.OperatorDescr> aliases)
-
buildLiteralRestrictionDescr
protected org.drools.drl.ast.descr.LiteralRestrictionDescr buildLiteralRestrictionDescr(RuleBuildContext context, org.drools.drl.ast.descr.RelationalExprDescr exprDescr, java.lang.String rightValue, boolean isRightLiteral)
-
processAtomicExpression
protected org.drools.base.rule.constraint.Constraint processAtomicExpression(RuleBuildContext context, org.drools.base.rule.Pattern pattern, org.drools.drl.ast.descr.BaseDescr d, java.lang.String expr, java.util.Map<java.lang.String,org.drools.drl.ast.descr.OperatorDescr> aliases)
-
isSimpleExpr
protected boolean isSimpleExpr(org.drools.drl.ast.descr.RelationalExprDescr relDescr)
-
createAndBuildPredicate
protected org.drools.base.rule.constraint.Constraint createAndBuildPredicate(RuleBuildContext context, org.drools.base.rule.Pattern pattern, org.drools.drl.ast.descr.BaseDescr base, java.lang.String expr, java.util.Map<java.lang.String,org.drools.drl.ast.descr.OperatorDescr> aliases)
-
buildRuleBindings
protected void buildRuleBindings(RuleBuildContext context, org.drools.drl.ast.descr.PatternDescr patternDescr, org.drools.base.rule.Declaration xpathStartDeclaration, org.drools.base.rule.Pattern pattern, org.drools.drl.ast.descr.BindingDescr fieldBindingDescr)
-
buildRuleBindings
protected void buildRuleBindings(RuleBuildContext context, org.drools.drl.ast.descr.PatternDescr patternDescr, org.drools.base.rule.Declaration xpathStartDeclaration, org.drools.base.rule.Pattern pattern, org.drools.drl.ast.descr.BindingDescr fieldBindingDescr, org.drools.base.rule.TypeDeclaration typeDeclaration)
-
buildEval
protected org.drools.base.rule.constraint.Constraint buildEval(RuleBuildContext context, org.drools.base.rule.Pattern pattern, org.drools.drl.ast.descr.PredicateDescr predicateDescr, java.util.Map<java.lang.String,org.drools.drl.ast.descr.OperatorDescr> aliases, java.lang.String expr, boolean isEvalExpression)
-
getOperators
public static EvaluatorWrapper[] getOperators(java.util.Map<java.lang.String,EvaluatorWrapper> operatorMap)
-
getUsedDeclarations
public static org.drools.base.rule.Declaration[][] getUsedDeclarations(RuleBuildContext context, org.drools.base.rule.Pattern pattern, AnalysisResult analysis)
-
buildAnalysis
public static AnalysisResult buildAnalysis(RuleBuildContext context, org.drools.base.rule.Pattern pattern, org.drools.drl.ast.descr.PredicateDescr predicateDescr, java.util.Map<java.lang.String,org.drools.drl.ast.descr.OperatorDescr> aliases)
-
buildOperators
public static java.util.Map<java.lang.String,EvaluatorWrapper> buildOperators(RuleBuildContext context, org.drools.base.rule.Pattern pattern, org.drools.drl.ast.descr.BaseDescr predicateDescr, java.util.Map<java.lang.String,org.drools.drl.ast.descr.OperatorDescr> aliases)
-
createImplicitBindings
public static void createImplicitBindings(RuleBuildContext context, org.drools.base.rule.Pattern pattern, java.util.Set<java.lang.String> unboundIdentifiers, BoundIdentifiers boundIdentifiers, java.util.List<org.drools.base.rule.Declaration> factDeclarations)
-
createDeclarationObject
protected static org.drools.base.rule.Declaration createDeclarationObject(RuleBuildContext context, java.lang.String identifier, org.drools.base.rule.Pattern pattern)
Creates a declaration object for the field identified by the given identifier on the give pattern object
-
createDeclarationObject
protected static org.drools.base.rule.Declaration createDeclarationObject(RuleBuildContext context, java.lang.String identifier, java.lang.String expr, org.drools.base.rule.Pattern pattern)
-
registerReadAccessor
public static void registerReadAccessor(RuleBuildContext context, org.drools.base.base.ObjectType objectType, java.lang.String fieldName, org.drools.base.rule.accessor.AcceptsReadAccessor target)
-
getFieldReadAccessor
public static org.drools.base.rule.accessor.ReadAccessor getFieldReadAccessor(RuleBuildContext context, org.drools.drl.ast.descr.BaseDescr descr, org.drools.base.rule.Pattern pattern, java.lang.String fieldName, org.drools.base.rule.accessor.AcceptsReadAccessor target, boolean reportError)
-
getFieldReadAccessor
public static org.drools.base.rule.accessor.ReadAccessor getFieldReadAccessor(RuleBuildContext context, org.drools.drl.ast.descr.BaseDescr descr, org.drools.base.rule.Pattern pattern, org.drools.base.base.ObjectType objectType, java.lang.String fieldName, org.drools.base.rule.accessor.AcceptsReadAccessor target, boolean reportError)
-
parseExpression
protected org.drools.drl.ast.descr.ConstraintConnectiveDescr parseExpression(RuleBuildContext context, org.drools.drl.ast.descr.PatternDescr patternDescr, org.drools.drl.ast.descr.BaseDescr original, java.lang.String expression)
-
registerDescrBuildError
public static void registerDescrBuildError(RuleBuildContext context, org.drools.drl.ast.descr.BaseDescr patternDescr, java.lang.String error)
-
registerDescrBuildError
public static void registerDescrBuildError(RuleBuildContext context, org.drools.drl.ast.descr.BaseDescr patternDescr, java.lang.Object object, java.lang.String error)
-
-