public class ExpressionUtils extends Object
| Modifier and Type | Method and Description | 
|---|---|
static boolean | 
isNumberOrArrayOfNumber(ClassNode targetType,
                       boolean recurse)
Determine if a type is derived from Number (or array thereof). 
 | 
static boolean | 
isTypeOrArrayOfType(ClassNode targetType,
                   ClassNode type,
                   boolean recurse)
Determine if a type matches another type (or array thereof). 
 | 
static ConstantExpression | 
transformBinaryConstantExpression(BinaryExpression be,
                                 ClassNode targetType)
Turns expressions of the form ConstantExpression(40) + ConstantExpression(2)
 into the simplified ConstantExpression(42) at compile time. 
 | 
static Expression | 
transformInlineConstants(Expression exp)
The attribute values of annotations must be primitive, String or Enum constants. 
 | 
static Expression | 
transformInlineConstants(Expression exp,
                        ClassNode attrType)
Converts simple expressions of constants into pre-evaluated simple constants. 
 | 
static Expression | 
transformListOfConstants(ListExpression origList,
                        ClassNode attrType)
Given a list of constants, transform each item in the list. 
 | 
public static ConstantExpression transformBinaryConstantExpression(BinaryExpression be, ClassNode targetType)
be - the binary expressiontargetType - the type of the resultpublic static boolean isTypeOrArrayOfType(ClassNode targetType, ClassNode type, boolean recurse)
targetType - the candidate typetype - the type we are checking againstrecurse - true if we can have multi-dimension arrays; should be false for annotation member typespublic static boolean isNumberOrArrayOfNumber(ClassNode targetType, boolean recurse)
targetType - the candidate typerecurse - true if we can have multi-dimension arrays; should be false for annotation member typespublic static Expression transformInlineConstants(Expression exp, ClassNode attrType)
exp - the original expressionattrType - the type that the final constant should bepublic static Expression transformListOfConstants(ListExpression origList, ClassNode attrType)
origList - the list to transformattrType - the target typepublic static Expression transformInlineConstants(Expression exp)
exp - the original expression