Class DrlxParseUtil
- java.lang.Object
-
- org.drools.model.codegen.execmodel.generator.DrlxParseUtil
-
public class DrlxParseUtil extends java.lang.Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classDrlxParseUtil.RemoveRootNodeResult
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringTHIS_PLACEHOLDER
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static java.lang.StringaddCurlyBracesToBlock(java.lang.String blockString)static java.lang.StringaddSemicolon(java.lang.String block)static booleancanCoerceLiteralNumberExpr(java.lang.Class<?> type)static com.github.javaparser.ast.type.TypeclassToReferenceType(java.lang.Class<?> declarationClass)static com.github.javaparser.ast.type.TypeclassToReferenceType(DeclarationSpec declaration)static voidclearAccessorCache()static java.util.Collection<java.lang.String>collectUsedDeclarationsInExpression(com.github.javaparser.ast.expr.Expression expr)static org.drools.mvelcompiler.ConstraintCompilercreateConstraintCompiler(RuleContext context, java.util.Optional<java.lang.Class<?>> originalPatternType)static org.drools.mvelcompiler.MvelCompilercreateMvelCompiler(RuleContext context)static org.drools.mvelcompiler.MvelCompilercreateMvelCompiler(RuleContext context, boolean withDrools)static com.github.javaparser.ast.expr.AnnotationExprcreateSimpleAnnotation(java.lang.Class<?> annotationClass)static com.github.javaparser.ast.expr.AnnotationExprcreateSimpleAnnotation(java.lang.String className)static java.util.List<com.github.javaparser.ast.Node>findAllChildrenRecursive(com.github.javaparser.ast.expr.Expression e)static java.util.Optional<java.lang.String>findBindingIdFromDotExpression(java.lang.String expression)static com.github.javaparser.ast.expr.MethodCallExprfindLastMethodInChain(com.github.javaparser.ast.expr.MethodCallExpr expr)static java.util.Optional<com.github.javaparser.ast.expr.MethodCallExpr>findLastPattern(java.util.List<com.github.javaparser.ast.expr.Expression> expressions)static DrlxParseUtil.RemoveRootNodeResultfindRemoveRootNodeViaScope(com.github.javaparser.ast.expr.Expression expr)static java.util.Optional<com.github.javaparser.ast.Node>findRootNodeViaParent(com.github.javaparser.ast.Node expr)static java.util.Optional<com.github.javaparser.ast.expr.Expression>findRootNodeViaScope(com.github.javaparser.ast.expr.Expression expr)static java.util.Optional<com.github.javaparser.ast.expr.Expression>findViaScopeWithPredicate(com.github.javaparser.ast.expr.Expression expr, java.util.function.Predicate<com.github.javaparser.ast.expr.Expression> predicate)static voidforceCastForName(java.lang.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(java.util.Collection<java.lang.String> usedDeclarations, com.github.javaparser.ast.expr.Expression expr)static com.github.javaparser.ast.expr.ExpressiongenerateLambdaWithoutParameters(java.util.Collection<java.lang.String> usedDeclarations, com.github.javaparser.ast.expr.Expression expr, boolean skipFirstParamAsThis, java.util.Optional<java.lang.Class<?>> patternClass)static com.github.javaparser.ast.expr.ExpressiongenerateLambdaWithoutParameters(java.util.Collection<java.lang.String> usedDeclarations, com.github.javaparser.ast.expr.Expression expr, boolean skipFirstParamAsThis, java.util.Optional<java.lang.Class<?>> patternClass, RuleContext ruleContext)static java.lang.reflect.MethodgetAccessor(java.lang.Class<?> clazz, java.lang.String name, RuleContext context)static java.lang.Class<?>getClassFromContext(org.drools.util.TypeResolver typeResolver, java.lang.String className)static java.lang.Class<?>getClassFromType(org.drools.util.TypeResolver typeResolver, com.github.javaparser.ast.type.Type type)static java.lang.reflect.TypegetExpressionType(RuleContext context, org.drools.util.TypeResolver typeResolver, com.github.javaparser.ast.expr.Expression expr, java.util.Collection<java.lang.String> usedDeclarations)static java.lang.reflect.FieldgetField(java.lang.Class<?> clazz, java.lang.String name)static java.lang.Class<?>getLiteralExpressionType(com.github.javaparser.ast.expr.LiteralExpr expr)static java.util.List<java.lang.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(java.lang.reflect.Type exprType)static booleanisNameExprWithName(com.github.javaparser.ast.Node expression, java.lang.String name)static booleanisPrimitiveExpression(com.github.javaparser.ast.expr.Expression expr)static booleanisThisExpression(com.github.javaparser.ast.Node expr)static TypedExpressionnameExprToMethodCallExpr(java.lang.String name, java.lang.reflect.Type type, com.github.javaparser.ast.expr.Expression scope, RuleContext context)static com.github.javaparser.ast.stmt.BlockStmtparseBlock(java.lang.String ruleConsequenceAsBlock)static org.drools.mvel.parser.ast.expr.DrlxExpressionparseExpression(java.lang.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, java.util.List<java.lang.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 java.lang.reflect.TypereturnTypeOfMethodCallExpr(RuleContext context, org.drools.util.TypeResolver typeResolver, com.github.javaparser.ast.expr.MethodCallExpr methodCallExpr, java.lang.reflect.Type clazz, java.util.Collection<java.lang.String> usedDeclarations)static java.util.Optional<java.lang.reflect.Type>safeResolveType(org.drools.util.TypeResolver typeResolver, java.lang.String typeName)static com.github.javaparser.ast.expr.ExpressionstripEnclosedExpr(com.github.javaparser.ast.expr.Expression expr)static com.github.javaparser.ast.type.ClassOrInterfaceTypetoClassOrInterfaceType(java.lang.Class<?> declClass)static com.github.javaparser.ast.type.ClassOrInterfaceTypetoClassOrInterfaceType(java.lang.String className)static org.drools.model.Index.ConstraintTypetoConstraintType(com.github.javaparser.ast.expr.BinaryExpr.Operator operator)static com.github.javaparser.ast.type.TypetoJavaParserType(java.lang.Class<?> cls)static com.github.javaparser.ast.type.TypetoJavaParserType(java.lang.Class<?> cls, boolean primitive)static com.github.javaparser.ast.expr.StringLiteralExprtoStringLiteral(java.lang.String s)static java.lang.StringtoVar(java.lang.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 java.util.Optional<InvalidExpressionErrorResult>validateDuplicateBindings(java.lang.String ruleName, java.util.List<java.lang.String> allBindings)
-
-
-
Field Detail
-
THIS_PLACEHOLDER
public static final java.lang.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(java.lang.String name, java.lang.reflect.Type type, com.github.javaparser.ast.expr.Expression scope, RuleContext context)
-
returnTypeOfMethodCallExpr
public static java.lang.reflect.Type returnTypeOfMethodCallExpr(RuleContext context, org.drools.util.TypeResolver typeResolver, com.github.javaparser.ast.expr.MethodCallExpr methodCallExpr, java.lang.reflect.Type clazz, java.util.Collection<java.lang.String> usedDeclarations)
-
getExpressionType
public static java.lang.reflect.Type getExpressionType(RuleContext context, org.drools.util.TypeResolver typeResolver, com.github.javaparser.ast.expr.Expression expr, java.util.Collection<java.lang.String> usedDeclarations)
-
canCoerceLiteralNumberExpr
public static boolean canCoerceLiteralNumberExpr(java.lang.Class<?> type)
-
getLiteralExpressionType
public static java.lang.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 java.util.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 java.util.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(java.lang.String ruleConsequenceAsBlock)
-
generateLambdaWithoutParameters
public static com.github.javaparser.ast.expr.Expression generateLambdaWithoutParameters(java.util.Collection<java.lang.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(java.util.Collection<java.lang.String> usedDeclarations, com.github.javaparser.ast.expr.Expression expr, boolean skipFirstParamAsThis, java.util.Optional<java.lang.Class<?>> patternClass)
-
generateLambdaWithoutParameters
public static com.github.javaparser.ast.expr.Expression generateLambdaWithoutParameters(java.util.Collection<java.lang.String> usedDeclarations, com.github.javaparser.ast.expr.Expression expr, boolean skipFirstParamAsThis, java.util.Optional<java.lang.Class<?>> patternClass, RuleContext ruleContext)
-
createSimpleAnnotation
public static com.github.javaparser.ast.expr.AnnotationExpr createSimpleAnnotation(java.lang.Class<?> annotationClass)
-
createSimpleAnnotation
public static com.github.javaparser.ast.expr.AnnotationExpr createSimpleAnnotation(java.lang.String className)
-
classToReferenceType
public static com.github.javaparser.ast.type.Type classToReferenceType(java.lang.Class<?> declarationClass)
-
classToReferenceType
public static com.github.javaparser.ast.type.Type classToReferenceType(DeclarationSpec declaration)
-
toJavaParserType
public static com.github.javaparser.ast.type.Type toJavaParserType(java.lang.Class<?> cls)
-
toJavaParserType
public static com.github.javaparser.ast.type.Type toJavaParserType(java.lang.Class<?> cls, boolean primitive)
-
toClassOrInterfaceType
public static com.github.javaparser.ast.type.ClassOrInterfaceType toClassOrInterfaceType(java.lang.Class<?> declClass)
-
toClassOrInterfaceType
public static com.github.javaparser.ast.type.ClassOrInterfaceType toClassOrInterfaceType(java.lang.String className)
-
toStringLiteral
public static com.github.javaparser.ast.expr.StringLiteralExpr toStringLiteral(java.lang.String s)
-
findBindingIdFromDotExpression
public static java.util.Optional<java.lang.String> findBindingIdFromDotExpression(java.lang.String expression)
-
findViaScopeWithPredicate
public static java.util.Optional<com.github.javaparser.ast.expr.Expression> findViaScopeWithPredicate(com.github.javaparser.ast.expr.Expression expr, java.util.function.Predicate<com.github.javaparser.ast.expr.Expression> predicate)
-
parseExpression
public static org.drools.mvel.parser.ast.expr.DrlxExpression parseExpression(java.lang.String expression)
-
getClassFromType
public static java.lang.Class<?> getClassFromType(org.drools.util.TypeResolver typeResolver, com.github.javaparser.ast.type.Type type)
-
getClassFromContext
public static java.lang.Class<?> getClassFromContext(org.drools.util.TypeResolver typeResolver, java.lang.String className)
-
isPrimitiveExpression
public static boolean isPrimitiveExpression(com.github.javaparser.ast.expr.Expression expr)
-
forceCastForName
public static void forceCastForName(java.lang.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, java.util.List<java.lang.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 java.util.List<java.lang.String> getPatternListenedProperties(org.drools.drl.ast.descr.PatternDescr pattern)
-
findLastPattern
public static java.util.Optional<com.github.javaparser.ast.expr.MethodCallExpr> findLastPattern(java.util.List<com.github.javaparser.ast.expr.Expression> expressions)
-
isNameExprWithName
public static boolean isNameExprWithName(com.github.javaparser.ast.Node expression, java.lang.String name)
-
findAllChildrenRecursive
public static java.util.List<com.github.javaparser.ast.Node> findAllChildrenRecursive(com.github.javaparser.ast.expr.Expression e)
-
toVar
public static java.lang.String toVar(java.lang.String key)
-
validateDuplicateBindings
public static java.util.Optional<InvalidExpressionErrorResult> validateDuplicateBindings(java.lang.String ruleName, java.util.List<java.lang.String> allBindings)
-
getAccessor
public static java.lang.reflect.Method getAccessor(java.lang.Class<?> clazz, java.lang.String name, RuleContext context)
-
clearAccessorCache
public static void clearAccessorCache()
-
getField
public static java.lang.reflect.Field getField(java.lang.Class<?> clazz, java.lang.String name)
-
transformDrlNameExprToNameExpr
public static <T extends com.github.javaparser.ast.Node> T transformDrlNameExprToNameExpr(T e)
-
addCurlyBracesToBlock
public static java.lang.String addCurlyBracesToBlock(java.lang.String blockString)
-
addSemicolon
public static java.lang.String addSemicolon(java.lang.String block)
-
uncastExpr
public static com.github.javaparser.ast.expr.Expression uncastExpr(com.github.javaparser.ast.expr.Expression e)
-
collectUsedDeclarationsInExpression
public static java.util.Collection<java.lang.String> collectUsedDeclarationsInExpression(com.github.javaparser.ast.expr.Expression expr)
-
safeResolveType
public static java.util.Optional<java.lang.reflect.Type> safeResolveType(org.drools.util.TypeResolver typeResolver, java.lang.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)
-
createMvelCompiler
public static org.drools.mvelcompiler.MvelCompiler createMvelCompiler(RuleContext context, boolean withDrools)
-
createConstraintCompiler
public static org.drools.mvelcompiler.ConstraintCompiler createConstraintCompiler(RuleContext context, java.util.Optional<java.lang.Class<?>> originalPatternType)
-
isBooleanBoxedUnboxed
public static boolean isBooleanBoxedUnboxed(java.lang.reflect.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.Expression expr)
-
-