Package org.codehaus.groovy.ast
Class ClassHelper
- java.lang.Object
 - 
- org.codehaus.groovy.ast.ClassHelper
 
 
- 
- 
Field Summary
 
- 
Constructor Summary
Constructors Constructor Description ClassHelper() 
- 
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static MethodNodefindSAM(ClassNode type)Returns the single abstract method of a class node, if it is a SAM type, or null otherwise.static ClassNodegetNextSuperClass(ClassNode clazz, ClassNode goalClazz)Returns a super class or interface for a given class depending on a given target.static ClassNodegetUnwrapper(ClassNode cn)static ClassNodegetWrapper(ClassNode cn)Creates a ClassNode containing the wrapper of a ClassNode of primitive type.static booleanisCachedType(ClassNode type)static booleanisFunctionalInterface(ClassNode type)static booleanisGeneratedFunction(ClassNode type)Checks if the type is a generated function, i.e.static booleanisNumberType(ClassNode cn)static booleanisPrimitiveType(ClassNode cn)Test to determine if a ClassNode is a primitive type.static booleanisSAMType(ClassNode type)static booleanisStaticConstantInitializerType(ClassNode cn)Test to determine if a ClassNode is a type belongs to the list of types which are allowed to initialize constants directly in bytecode instead of using <cinit>static ClassNodemake(Class c)Creates a ClassNode using a given class.static ClassNode[]make(Class[] classes)Creates an array of ClassNodes using an array of classes.static ClassNodemake(Class c, boolean includeGenerics)static ClassNodemake(String name)Creates a ClassNode using a given class.static ClassNodemakeCached(Class c)static ClassNodemakeReference()static ClassNodemakeWithoutCaching(Class c)static ClassNodemakeWithoutCaching(Class c, boolean includeGenerics)static ClassNodemakeWithoutCaching(String name)Creates a ClassNode using a given class. 
 - 
 
- 
- 
Field Detail
- 
TUPLE_CLASSES
public static final Class[] TUPLE_CLASSES
 
- 
DYNAMIC_TYPE
public static final ClassNode DYNAMIC_TYPE
 
- 
OBJECT_TYPE
public static final ClassNode OBJECT_TYPE
 
- 
CLOSURE_TYPE
public static final ClassNode CLOSURE_TYPE
 
- 
GSTRING_TYPE
public static final ClassNode GSTRING_TYPE
 
- 
RANGE_TYPE
public static final ClassNode RANGE_TYPE
 
- 
PATTERN_TYPE
public static final ClassNode PATTERN_TYPE
 
- 
STRING_TYPE
public static final ClassNode STRING_TYPE
 
- 
SCRIPT_TYPE
public static final ClassNode SCRIPT_TYPE
 
- 
BINDING_TYPE
public static final ClassNode BINDING_TYPE
 
- 
boolean_TYPE
public static final ClassNode boolean_TYPE
 
- 
char_TYPE
public static final ClassNode char_TYPE
 
- 
byte_TYPE
public static final ClassNode byte_TYPE
 
- 
int_TYPE
public static final ClassNode int_TYPE
 
- 
long_TYPE
public static final ClassNode long_TYPE
 
- 
short_TYPE
public static final ClassNode short_TYPE
 
- 
double_TYPE
public static final ClassNode double_TYPE
 
- 
float_TYPE
public static final ClassNode float_TYPE
 
- 
Byte_TYPE
public static final ClassNode Byte_TYPE
 
- 
Short_TYPE
public static final ClassNode Short_TYPE
 
- 
Integer_TYPE
public static final ClassNode Integer_TYPE
 
- 
Long_TYPE
public static final ClassNode Long_TYPE
 
- 
Character_TYPE
public static final ClassNode Character_TYPE
 
- 
Float_TYPE
public static final ClassNode Float_TYPE
 
- 
Double_TYPE
public static final ClassNode Double_TYPE
 
- 
Boolean_TYPE
public static final ClassNode Boolean_TYPE
 
- 
BigInteger_TYPE
public static final ClassNode BigInteger_TYPE
 
- 
BigDecimal_TYPE
public static final ClassNode BigDecimal_TYPE
 
- 
Number_TYPE
public static final ClassNode Number_TYPE
 
- 
VOID_TYPE
public static final ClassNode VOID_TYPE
 
- 
void_WRAPPER_TYPE
public static final ClassNode void_WRAPPER_TYPE
 
- 
METACLASS_TYPE
public static final ClassNode METACLASS_TYPE
 
- 
Iterator_TYPE
public static final ClassNode Iterator_TYPE
 
- 
Annotation_TYPE
public static final ClassNode Annotation_TYPE
 
- 
ELEMENT_TYPE_TYPE
public static final ClassNode ELEMENT_TYPE_TYPE
 
- 
AUTOCLOSEABLE_TYPE
public static final ClassNode AUTOCLOSEABLE_TYPE
 
- 
SERIALIZABLE_TYPE
public static final ClassNode SERIALIZABLE_TYPE
 
- 
SERIALIZEDLAMBDA_TYPE
public static final ClassNode SERIALIZEDLAMBDA_TYPE
 
- 
MAP_TYPE
public static final ClassNode MAP_TYPE
 
- 
LIST_TYPE
public static final ClassNode LIST_TYPE
 
- 
Enum_Type
public static final ClassNode Enum_Type
 
- 
CLASS_Type
public static final ClassNode CLASS_Type
 
- 
TUPLE_TYPE
public static final ClassNode TUPLE_TYPE
 
- 
REFERENCE_TYPE
public static final ClassNode REFERENCE_TYPE
 
- 
COMPARABLE_TYPE
public static final ClassNode COMPARABLE_TYPE
 
- 
GROOVY_OBJECT_TYPE
public static final ClassNode GROOVY_OBJECT_TYPE
 
- 
GENERATED_LAMBDA_TYPE
public static final ClassNode GENERATED_LAMBDA_TYPE
 
- 
GENERATED_CLOSURE_Type
public static final ClassNode GENERATED_CLOSURE_Type
 
- 
GROOVY_INTERCEPTABLE_TYPE
public static final ClassNode GROOVY_INTERCEPTABLE_TYPE
 
- 
GROOVY_OBJECT_SUPPORT_TYPE
public static final ClassNode GROOVY_OBJECT_SUPPORT_TYPE
 
- 
EMPTY_TYPE_ARRAY
protected static final ClassNode[] EMPTY_TYPE_ARRAY
 
- 
OBJECT
public static final String OBJECT
- See Also:
 - Constant Field Values
 
 
 - 
 
- 
Method Detail
- 
make
public static ClassNode[] make(Class[] classes)
Creates an array of ClassNodes using an array of classes. For each of the given classes a new ClassNode will be created- Parameters:
 classes- an array of classes used to create the ClassNodes- Returns:
 - an array of ClassNodes
 - See Also:
 make(Class)
 
- 
make
public static ClassNode make(Class c)
Creates a ClassNode using a given class. A new ClassNode object is only created if the class is not one of the predefined ones- Parameters:
 c- class used to created the ClassNode- Returns:
 - ClassNode instance created from the given class
 
 
- 
makeWithoutCaching
public static ClassNode makeWithoutCaching(String name)
Creates a ClassNode using a given class. Unlike make(String) this method will not use the cache to create the ClassNode. This means the ClassNode created from this method using the same name will have a different reference- Parameters:
 name- of the class the ClassNode is representing- See Also:
 make(String)
 
- 
make
public static ClassNode make(String name)
Creates a ClassNode using a given class. If the name is one of the predefined ClassNodes then the corresponding ClassNode instance will be returned. If the name is null or of length 0 the dynamic type is returned- Parameters:
 name- of the class the ClassNode is representing
 
- 
getWrapper
public static ClassNode getWrapper(ClassNode cn)
Creates a ClassNode containing the wrapper of a ClassNode of primitive type. Any ClassNode representing a primitive type should be created using the predefined types used in class. The method will check the parameter for known references of ClassNode representing a primitive type. If Reference is found, then a ClassNode will be contained that represents the wrapper class. For example for boolean, the wrapper class is java.lang.Boolean.If the parameter is no primitive type, the redirected ClassNode will be returned
- Parameters:
 cn- the ClassNode containing a possible primitive type- See Also:
 make(Class),make(String)
 
- 
isPrimitiveType
public static boolean isPrimitiveType(ClassNode cn)
Test to determine if a ClassNode is a primitive type. Note: this only works for ClassNodes created using a predefined ClassNode- Parameters:
 cn- the ClassNode containing a possible primitive type- Returns:
 - true if the ClassNode is a primitive type
 - See Also:
 make(Class),make(String)
 
- 
isStaticConstantInitializerType
public static boolean isStaticConstantInitializerType(ClassNode cn)
Test to determine if a ClassNode is a type belongs to the list of types which are allowed to initialize constants directly in bytecode instead of using <cinit>Note: this only works for ClassNodes created using a predefined ClassNode
- Parameters:
 cn- the ClassNode to be tested- Returns:
 - true if the ClassNode is of int, float, long, double or String type
 - See Also:
 make(Class),make(String)
 
- 
isNumberType
public static boolean isNumberType(ClassNode cn)
 
- 
makeReference
public static ClassNode makeReference()
 
- 
isCachedType
public static boolean isCachedType(ClassNode type)
 
- 
isSAMType
public static boolean isSAMType(ClassNode type)
 
- 
isFunctionalInterface
public static boolean isFunctionalInterface(ClassNode type)
 
- 
isGeneratedFunction
public static boolean isGeneratedFunction(ClassNode type)
Checks if the type is a generated function, i.e. closure or lambda.- Since:
 - 3.0.0
 
 
- 
findSAM
public static MethodNode findSAM(ClassNode type)
Returns the single abstract method of a class node, if it is a SAM type, or null otherwise.- Parameters:
 type- a type for which to search for a single abstract method- Returns:
 - the method node if type is a SAM type, null otherwise
 
 
- 
getNextSuperClass
public static ClassNode getNextSuperClass(ClassNode clazz, ClassNode goalClazz)
Returns a super class or interface for a given class depending on a given target. If the target is no super class or interface, then null will be returned. For a non-primitive array type, returns an array of the componentType's super class or interface if the target is also an array.- Parameters:
 clazz- the start classgoalClazz- the goal class- Returns:
 - the next super class or interface
 
 
 - 
 
 -