Class DrlxParseUtil
- java.lang.Object
-
- org.drools.modelcompiler.builder.generator.DrlxParseUtil
-
public class DrlxParseUtil extends Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classDrlxParseUtil.RemoveRootNodeResult
-
Field Summary
Fields Modifier and Type Field Description static StringTHIS_PLACEHOLDER
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static StringaddCurlyBracesToBlock(String blockString)static StringaddSemicolon(String block)static booleancanCoerceLiteralNumberExpr(Class<?> type)static com.github.javaparser.ast.type.TypeclassToReferenceType(Class<?> declarationClass)static com.github.javaparser.ast.type.TypeclassToReferenceType(DeclarationSpec declaration)static voidclearAccessorCache()static Collection<String>collectUsedDeclarationsInExpression(com.github.javaparser.ast.expr.Expression expr)static org.drools.mvelcompiler.ConstraintCompilercreateConstraintCompiler(RuleContext context, Optional<Class<?>> originalPatternType)static org.drools.mvelcompiler.MvelCompilercreateMvelCompiler(RuleContext context)static com.github.javaparser.ast.expr.AnnotationExprcreateSimpleAnnotation(Class<?> annotationClass)static com.github.javaparser.ast.expr.AnnotationExprcreateSimpleAnnotation(String className)static List<com.github.javaparser.ast.Node>findAllChildrenRecursive(com.github.javaparser.ast.expr.Expression e)static Optional<String>findBindingIdFromDotExpression(String expression)static com.github.javaparser.ast.expr.MethodCallExprfindLastMethodInChain(com.github.javaparser.ast.expr.MethodCallExpr expr)static Optional<com.github.javaparser.ast.expr.MethodCallExpr>findLastPattern(List<com.github.javaparser.ast.expr.Expression> expressions)static DrlxParseUtil.RemoveRootNodeResultfindRemoveRootNodeViaScope(com.github.javaparser.ast.expr.Expression expr)static Optional<com.github.javaparser.ast.Node>findRootNodeViaParent(com.github.javaparser.ast.Node expr)static Optional<com.github.javaparser.ast.expr.Expression>findRootNodeViaScope(com.github.javaparser.ast.expr.Expression expr)static Optional<com.github.javaparser.ast.expr.Expression>findViaScopeWithPredicate(com.github.javaparser.ast.expr.Expression expr, Predicate<com.github.javaparser.ast.expr.Expression> predicate)static voidforceCastForName(String nameRef, com.github.javaparser.ast.type.Type type, com.github.javaparser.ast.Node expression)Mutates expression such that, if it contains astatic com.github.javaparser.ast.expr.ExpressiongenerateLambdaWithoutParameters(com.github.javaparser.ast.expr.Expression expr)static com.github.javaparser.ast.expr.ExpressiongenerateLambdaWithoutParameters(Collection<String> usedDeclarations, com.github.javaparser.ast.expr.Expression expr)static com.github.javaparser.ast.expr.ExpressiongenerateLambdaWithoutParameters(Collection<String> usedDeclarations, com.github.javaparser.ast.expr.Expression expr, boolean skipFirstParamAsThis, Optional<Class<?>> patternClass)static com.github.javaparser.ast.expr.ExpressiongenerateLambdaWithoutParameters(Collection<String> usedDeclarations, com.github.javaparser.ast.expr.Expression expr, boolean skipFirstParamAsThis, Optional<Class<?>> patternClass, RuleContext ruleContext)static MethodgetAccessor(Class<?> clazz, String name, RuleContext context)static Class<?>getClassFromContext(org.drools.core.addon.TypeResolver typeResolver, String className)static Class<?>getClassFromType(org.drools.core.addon.TypeResolver typeResolver, com.github.javaparser.ast.type.Type type)static TypegetExpressionType(RuleContext context, org.drools.core.addon.TypeResolver typeResolver, com.github.javaparser.ast.expr.Expression expr, Collection<String> usedDeclarations)static FieldgetField(Class<?> clazz, String name)static Class<?>getLiteralExpressionType(com.github.javaparser.ast.expr.LiteralExpr expr)static List<String>getPatternListenedProperties(org.drools.drl.ast.descr.PatternDescr pattern)static booleanhasDuplicateExpr(com.github.javaparser.ast.stmt.BlockStmt ruleBlock, com.github.javaparser.ast.expr.Expression expr)static booleanisBooleanBoxedUnboxed(Type exprType)static booleanisNameExprWithName(com.github.javaparser.ast.Node expression, String name)static booleanisPrimitiveExpression(com.github.javaparser.ast.expr.Expression expr)static booleanisThisExpression(com.github.javaparser.ast.Node expr)static TypedExpressionnameExprToMethodCallExpr(String name, Type type, com.github.javaparser.ast.expr.Expression scope, RuleContext context)static com.github.javaparser.ast.stmt.BlockStmtparseBlock(String ruleConsequenceAsBlock)static org.drools.mvel.parser.ast.expr.DrlxExpressionparseExpression(String expression)static com.github.javaparser.ast.expr.Expressionprepend(com.github.javaparser.ast.expr.Expression scope, com.github.javaparser.ast.expr.Expression expr)static DrlxParseUtil.RemoveRootNodeResultremoveRootNode(com.github.javaparser.ast.expr.Expression expr)static com.github.javaparser.ast.NodereplaceAllHalfBinaryChildren(com.github.javaparser.ast.Node parent)static voidrescopeNamesToNewScope(com.github.javaparser.ast.expr.Expression newScope, List<String> names, com.github.javaparser.ast.Node e)Mutates expression such that, if it contains a NameExpr for any of thenames, it is replaced with a FieldAccessExpr havingnewScopeas the scope.static TypereturnTypeOfMethodCallExpr(RuleContext context, org.drools.core.addon.TypeResolver typeResolver, com.github.javaparser.ast.expr.MethodCallExpr methodCallExpr, Type clazz, Collection<String> usedDeclarations)static Optional<Type>safeResolveType(org.drools.core.addon.TypeResolver typeResolver, String typeName)static com.github.javaparser.ast.expr.ExpressionstripEnclosedExpr(com.github.javaparser.ast.expr.EnclosedExpr eExpr)static com.github.javaparser.ast.type.ClassOrInterfaceTypetoClassOrInterfaceType(Class<?> declClass)static com.github.javaparser.ast.type.ClassOrInterfaceTypetoClassOrInterfaceType(String className)static org.drools.model.Index.ConstraintTypetoConstraintType(com.github.javaparser.ast.expr.BinaryExpr.Operator operator)static com.github.javaparser.ast.type.TypetoJavaParserType(Class<?> cls)static com.github.javaparser.ast.type.TypetoJavaParserType(Class<?> cls, boolean primitive)static com.github.javaparser.ast.expr.StringLiteralExprtoStringLiteral(String s)static StringtoVar(String key)static <T extends com.github.javaparser.ast.Node>
TtransformDrlNameExprToNameExpr(T e)static com.github.javaparser.ast.expr.ExpressiontrasformHalfBinaryToBinary(com.github.javaparser.ast.expr.Expression drlxExpr)static com.github.javaparser.ast.expr.ExpressionuncastExpr(com.github.javaparser.ast.expr.Expression e)static com.github.javaparser.ast.expr.ExpressionunEncloseExpr(com.github.javaparser.ast.expr.Expression expression)static Optional<InvalidExpressionErrorResult>validateDuplicateBindings(String ruleName, List<String> allBindings)
-
-
-
Field Detail
-
THIS_PLACEHOLDER
public static final String THIS_PLACEHOLDER
- See Also:
- Constant Field Values
-
-
Method Detail
-
isThisExpression
public static boolean isThisExpression(com.github.javaparser.ast.Node expr)
-
toConstraintType
public static org.drools.model.Index.ConstraintType toConstraintType(com.github.javaparser.ast.expr.BinaryExpr.Operator operator)
-
nameExprToMethodCallExpr
public static TypedExpression nameExprToMethodCallExpr(String name, Type type, com.github.javaparser.ast.expr.Expression scope, RuleContext context)
-
returnTypeOfMethodCallExpr
public static Type returnTypeOfMethodCallExpr(RuleContext context, org.drools.core.addon.TypeResolver typeResolver, com.github.javaparser.ast.expr.MethodCallExpr methodCallExpr, Type clazz, Collection<String> usedDeclarations)
-
getExpressionType
public static Type getExpressionType(RuleContext context, org.drools.core.addon.TypeResolver typeResolver, com.github.javaparser.ast.expr.Expression expr, Collection<String> usedDeclarations)
-
canCoerceLiteralNumberExpr
public static boolean canCoerceLiteralNumberExpr(Class<?> type)
-
getLiteralExpressionType
public static Class<?> getLiteralExpressionType(com.github.javaparser.ast.expr.LiteralExpr expr)
-
prepend
public static com.github.javaparser.ast.expr.Expression prepend(com.github.javaparser.ast.expr.Expression scope, com.github.javaparser.ast.expr.Expression expr)
-
findRootNodeViaParent
public static Optional<com.github.javaparser.ast.Node> findRootNodeViaParent(com.github.javaparser.ast.Node expr)
-
replaceAllHalfBinaryChildren
public static com.github.javaparser.ast.Node replaceAllHalfBinaryChildren(com.github.javaparser.ast.Node parent)
-
trasformHalfBinaryToBinary
public static com.github.javaparser.ast.expr.Expression trasformHalfBinaryToBinary(com.github.javaparser.ast.expr.Expression drlxExpr)
-
findLastMethodInChain
public static com.github.javaparser.ast.expr.MethodCallExpr findLastMethodInChain(com.github.javaparser.ast.expr.MethodCallExpr expr)
-
findRemoveRootNodeViaScope
public static DrlxParseUtil.RemoveRootNodeResult findRemoveRootNodeViaScope(com.github.javaparser.ast.expr.Expression expr)
-
findRootNodeViaScope
public static Optional<com.github.javaparser.ast.expr.Expression> findRootNodeViaScope(com.github.javaparser.ast.expr.Expression expr)
-
removeRootNode
public static DrlxParseUtil.RemoveRootNodeResult removeRootNode(com.github.javaparser.ast.expr.Expression expr)
-
parseBlock
public static com.github.javaparser.ast.stmt.BlockStmt parseBlock(String ruleConsequenceAsBlock)
-
generateLambdaWithoutParameters
public static com.github.javaparser.ast.expr.Expression generateLambdaWithoutParameters(Collection<String> usedDeclarations, com.github.javaparser.ast.expr.Expression expr)
-
generateLambdaWithoutParameters
public static com.github.javaparser.ast.expr.Expression generateLambdaWithoutParameters(com.github.javaparser.ast.expr.Expression expr)
-
generateLambdaWithoutParameters
public static com.github.javaparser.ast.expr.Expression generateLambdaWithoutParameters(Collection<String> usedDeclarations, com.github.javaparser.ast.expr.Expression expr, boolean skipFirstParamAsThis, Optional<Class<?>> patternClass)
-
generateLambdaWithoutParameters
public static com.github.javaparser.ast.expr.Expression generateLambdaWithoutParameters(Collection<String> usedDeclarations, com.github.javaparser.ast.expr.Expression expr, boolean skipFirstParamAsThis, Optional<Class<?>> patternClass, RuleContext ruleContext)
-
createSimpleAnnotation
public static com.github.javaparser.ast.expr.AnnotationExpr createSimpleAnnotation(Class<?> annotationClass)
-
createSimpleAnnotation
public static com.github.javaparser.ast.expr.AnnotationExpr createSimpleAnnotation(String className)
-
classToReferenceType
public static com.github.javaparser.ast.type.Type classToReferenceType(Class<?> declarationClass)
-
classToReferenceType
public static com.github.javaparser.ast.type.Type classToReferenceType(DeclarationSpec declaration)
-
toJavaParserType
public static com.github.javaparser.ast.type.Type toJavaParserType(Class<?> cls)
-
toJavaParserType
public static com.github.javaparser.ast.type.Type toJavaParserType(Class<?> cls, boolean primitive)
-
toClassOrInterfaceType
public static com.github.javaparser.ast.type.ClassOrInterfaceType toClassOrInterfaceType(Class<?> declClass)
-
toClassOrInterfaceType
public static com.github.javaparser.ast.type.ClassOrInterfaceType toClassOrInterfaceType(String className)
-
toStringLiteral
public static com.github.javaparser.ast.expr.StringLiteralExpr toStringLiteral(String s)
-
findBindingIdFromDotExpression
public static Optional<String> findBindingIdFromDotExpression(String expression)
-
findViaScopeWithPredicate
public static Optional<com.github.javaparser.ast.expr.Expression> findViaScopeWithPredicate(com.github.javaparser.ast.expr.Expression expr, Predicate<com.github.javaparser.ast.expr.Expression> predicate)
-
parseExpression
public static org.drools.mvel.parser.ast.expr.DrlxExpression parseExpression(String expression)
-
getClassFromType
public static Class<?> getClassFromType(org.drools.core.addon.TypeResolver typeResolver, com.github.javaparser.ast.type.Type type)
-
getClassFromContext
public static Class<?> getClassFromContext(org.drools.core.addon.TypeResolver typeResolver, String className)
-
isPrimitiveExpression
public static boolean isPrimitiveExpression(com.github.javaparser.ast.expr.Expression expr)
-
forceCastForName
public static void forceCastForName(String nameRef, com.github.javaparser.ast.type.Type type, com.github.javaparser.ast.Node expression)
Mutates expression such that, if it contains anameRef
, it is replaced and forcibly casted with(type) nameRef
.- Parameters:
expression- a mutated expression
-
rescopeNamesToNewScope
public static void rescopeNamesToNewScope(com.github.javaparser.ast.expr.Expression newScope, List<String> names, com.github.javaparser.ast.Node e)Mutates expression such that, if it contains a NameExpr for any of thenames, it is replaced with a FieldAccessExpr havingnewScopeas the scope.
-
getPatternListenedProperties
public static List<String> getPatternListenedProperties(org.drools.drl.ast.descr.PatternDescr pattern)
-
findLastPattern
public static Optional<com.github.javaparser.ast.expr.MethodCallExpr> findLastPattern(List<com.github.javaparser.ast.expr.Expression> expressions)
-
isNameExprWithName
public static boolean isNameExprWithName(com.github.javaparser.ast.Node expression, String name)
-
findAllChildrenRecursive
public static List<com.github.javaparser.ast.Node> findAllChildrenRecursive(com.github.javaparser.ast.expr.Expression e)
-
validateDuplicateBindings
public static Optional<InvalidExpressionErrorResult> validateDuplicateBindings(String ruleName, List<String> allBindings)
-
getAccessor
public static Method getAccessor(Class<?> clazz, String name, RuleContext context)
-
clearAccessorCache
public static void clearAccessorCache()
-
transformDrlNameExprToNameExpr
public static <T extends com.github.javaparser.ast.Node> T transformDrlNameExprToNameExpr(T e)
-
uncastExpr
public static com.github.javaparser.ast.expr.Expression uncastExpr(com.github.javaparser.ast.expr.Expression e)
-
collectUsedDeclarationsInExpression
public static Collection<String> collectUsedDeclarationsInExpression(com.github.javaparser.ast.expr.Expression expr)
-
safeResolveType
public static Optional<Type> safeResolveType(org.drools.core.addon.TypeResolver typeResolver, String typeName)
-
unEncloseExpr
public static com.github.javaparser.ast.expr.Expression unEncloseExpr(com.github.javaparser.ast.expr.Expression expression)
-
createMvelCompiler
public static org.drools.mvelcompiler.MvelCompiler createMvelCompiler(RuleContext context)
-
createConstraintCompiler
public static org.drools.mvelcompiler.ConstraintCompiler createConstraintCompiler(RuleContext context, Optional<Class<?>> originalPatternType)
-
isBooleanBoxedUnboxed
public static boolean isBooleanBoxedUnboxed(Type exprType)
-
hasDuplicateExpr
public static boolean hasDuplicateExpr(com.github.javaparser.ast.stmt.BlockStmt ruleBlock, com.github.javaparser.ast.expr.Expression expr)
-
stripEnclosedExpr
public static com.github.javaparser.ast.expr.Expression stripEnclosedExpr(com.github.javaparser.ast.expr.EnclosedExpr eExpr)
-
-