Class DrlxParseUtil


  • public class DrlxParseUtil
    extends java.lang.Object
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.String THIS_PLACEHOLDER  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static java.lang.String addCurlyBracesToBlock​(java.lang.String blockString)  
      static java.lang.String addSemicolon​(java.lang.String block)  
      static boolean canCoerceLiteralNumberExpr​(java.lang.Class<?> type)  
      static com.github.javaparser.ast.type.Type classToReferenceType​(java.lang.Class<?> declarationClass)  
      static com.github.javaparser.ast.type.Type classToReferenceType​(DeclarationSpec declaration)  
      static void clearAccessorCache()  
      static java.util.Collection<java.lang.String> collectUsedDeclarationsInExpression​(com.github.javaparser.ast.expr.Expression expr)  
      static org.drools.mvelcompiler.ConstraintCompiler createConstraintCompiler​(RuleContext context, java.util.Optional<java.lang.Class<?>> originalPatternType)  
      static org.drools.mvelcompiler.MvelCompiler createMvelCompiler​(RuleContext context)  
      static org.drools.mvelcompiler.MvelCompiler createMvelCompiler​(RuleContext context, boolean withDrools)  
      static com.github.javaparser.ast.expr.AnnotationExpr createSimpleAnnotation​(java.lang.Class<?> annotationClass)  
      static com.github.javaparser.ast.expr.AnnotationExpr createSimpleAnnotation​(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.MethodCallExpr findLastMethodInChain​(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.RemoveRootNodeResult findRemoveRootNodeViaScope​(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 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 a
      static com.github.javaparser.ast.expr.Expression generateLambdaWithoutParameters​(com.github.javaparser.ast.expr.Expression expr)  
      static com.github.javaparser.ast.expr.Expression generateLambdaWithoutParameters​(java.util.Collection<java.lang.String> usedDeclarations, com.github.javaparser.ast.expr.Expression expr)  
      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)  
      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)  
      static java.lang.reflect.Method getAccessor​(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.Type getExpressionType​(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.Field getField​(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 boolean hasDuplicateExpr​(com.github.javaparser.ast.stmt.BlockStmt ruleBlock, com.github.javaparser.ast.expr.Expression expr)  
      static boolean isBooleanBoxedUnboxed​(java.lang.reflect.Type exprType)  
      static boolean isNameExprWithName​(com.github.javaparser.ast.Node expression, java.lang.String name)  
      static boolean isPrimitiveExpression​(com.github.javaparser.ast.expr.Expression expr)  
      static boolean isThisExpression​(com.github.javaparser.ast.Node expr)  
      static TypedExpression nameExprToMethodCallExpr​(java.lang.String name, java.lang.reflect.Type type, com.github.javaparser.ast.expr.Expression scope, RuleContext context)  
      static com.github.javaparser.ast.stmt.BlockStmt parseBlock​(java.lang.String ruleConsequenceAsBlock)  
      static org.drools.mvel.parser.ast.expr.DrlxExpression parseExpression​(java.lang.String expression)  
      static com.github.javaparser.ast.expr.Expression prepend​(com.github.javaparser.ast.expr.Expression scope, com.github.javaparser.ast.expr.Expression expr)  
      static DrlxParseUtil.RemoveRootNodeResult removeRootNode​(com.github.javaparser.ast.expr.Expression expr)  
      static com.github.javaparser.ast.Node replaceAllHalfBinaryChildren​(com.github.javaparser.ast.Node parent)  
      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 the names, it is replaced with a FieldAccessExpr having newScope as the scope.
      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)  
      static java.util.Optional<java.lang.reflect.Type> safeResolveType​(org.drools.util.TypeResolver typeResolver, java.lang.String typeName)  
      static com.github.javaparser.ast.expr.Expression stripEnclosedExpr​(com.github.javaparser.ast.expr.Expression expr)  
      static com.github.javaparser.ast.type.ClassOrInterfaceType toClassOrInterfaceType​(java.lang.Class<?> declClass)  
      static com.github.javaparser.ast.type.ClassOrInterfaceType toClassOrInterfaceType​(java.lang.String className)  
      static org.drools.model.Index.ConstraintType toConstraintType​(com.github.javaparser.ast.expr.BinaryExpr.Operator operator)  
      static com.github.javaparser.ast.type.Type toJavaParserType​(java.lang.Class<?> cls)  
      static com.github.javaparser.ast.type.Type toJavaParserType​(java.lang.Class<?> cls, boolean primitive)  
      static com.github.javaparser.ast.expr.StringLiteralExpr toStringLiteral​(java.lang.String s)  
      static java.lang.String toVar​(java.lang.String key)  
      static <T extends com.github.javaparser.ast.Node>
      T
      transformDrlNameExprToNameExpr​(T e)  
      static com.github.javaparser.ast.expr.Expression trasformHalfBinaryToBinary​(com.github.javaparser.ast.expr.Expression drlxExpr)  
      static com.github.javaparser.ast.expr.Expression uncastExpr​(com.github.javaparser.ast.expr.Expression e)  
      static com.github.javaparser.ast.expr.Expression unEncloseExpr​(com.github.javaparser.ast.expr.Expression expression)  
      static java.util.Optional<InvalidExpressionErrorResult> validateDuplicateBindings​(java.lang.String ruleName, java.util.List<java.lang.String> allBindings)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • 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)
      • findRootNodeViaScope

        public static java.util.Optional<com.github.javaparser.ast.expr.Expression> findRootNodeViaScope​(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 a
        nameRef
        , 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 the names, it is replaced with a FieldAccessExpr having newScope as 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)