Class AstUtils
- java.lang.Object
- org.springframework.boot.cli.compiler.AstUtils
Constructor Summary
Constructors Constructor Description AstUtils()
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static org.codehaus.groovy.ast.expr.ClosureExpression
getClosure(org.codehaus.groovy.ast.stmt.BlockStatement block, String name)
static org.codehaus.groovy.ast.expr.ClosureExpression
getClosure(org.codehaus.groovy.ast.stmt.BlockStatement block, String name, boolean remove)
Extract a top-levelname
closure from inside this block if there is one, optionally removing it from the block at the same time.static boolean
hasAtLeastOneAnnotation(org.codehaus.groovy.ast.AnnotatedNode node, String... annotations)
Determine if anAnnotatedNode
has one or more of the specified annotations.static boolean
hasAtLeastOneAnnotation(org.codehaus.groovy.ast.ClassNode node, String... annotations)
Determine if aClassNode
has one or more of the specified annotations on the class or any of its methods.static boolean
hasAtLeastOneFieldOrMethod(org.codehaus.groovy.ast.ClassNode node, String... types)
Determine if aClassNode
has one or more fields of the specified types or method returning one or more of the specified types.static boolean
hasAtLeastOneInterface(org.codehaus.groovy.ast.ClassNode classNode, String... types)
static boolean
subclasses(org.codehaus.groovy.ast.ClassNode node, String... types)
Determine if aClassNode
subclasses any of the specified types N.B.
Constructor Detail
AstUtils
public AstUtils()
Method Detail
hasAtLeastOneAnnotation
public static boolean hasAtLeastOneAnnotation(org.codehaus.groovy.ast.ClassNode node, String... annotations)
Determine if aClassNode
has one or more of the specified annotations on the class or any of its methods. N.B. the type names are not normally fully qualified.- Parameters:
node
- the class to examineannotations
- the annotations to look for- Returns:
true
if at least one of the annotations is found, otherwisefalse
hasAtLeastOneAnnotation
public static boolean hasAtLeastOneAnnotation(org.codehaus.groovy.ast.AnnotatedNode node, String... annotations)
Determine if anAnnotatedNode
has one or more of the specified annotations. N.B. the annotation type names are not normally fully qualified.- Parameters:
node
- the node to examineannotations
- the annotations to look for- Returns:
true
if at least one of the annotations is found, otherwisefalse
hasAtLeastOneFieldOrMethod
public static boolean hasAtLeastOneFieldOrMethod(org.codehaus.groovy.ast.ClassNode node, String... types)
Determine if aClassNode
has one or more fields of the specified types or method returning one or more of the specified types. N.B. the type names are not normally fully qualified.- Parameters:
node
- the class to examinetypes
- the types to look for- Returns:
true
if at least one of the types is found, otherwisefalse
subclasses
public static boolean subclasses(org.codehaus.groovy.ast.ClassNode node, String... types)
Determine if aClassNode
subclasses any of the specified types N.B. the type names are not normally fully qualified.- Parameters:
node
- the class to examinetypes
- the types that may have been sub-classed- Returns:
true
if the class subclasses any of the specified types, otherwisefalse
hasAtLeastOneInterface
public static boolean hasAtLeastOneInterface(org.codehaus.groovy.ast.ClassNode classNode, String... types)
getClosure
public static org.codehaus.groovy.ast.expr.ClosureExpression getClosure(org.codehaus.groovy.ast.stmt.BlockStatement block, String name, boolean remove)
Extract a top-levelname
closure from inside this block if there is one, optionally removing it from the block at the same time.- Parameters:
block
- a block statement (class definition)name
- the name to look forremove
- whether or not the extracted closure should be removed- Returns:
- a beans Closure if one can be found, null otherwise
getClosure
public static org.codehaus.groovy.ast.expr.ClosureExpression getClosure(org.codehaus.groovy.ast.stmt.BlockStatement block, String name)