Package org.codehaus.groovy.ast
Class ClassHelper
java.lang.Object
org.codehaus.groovy.ast.ClassHelper
public class ClassHelper
extends java.lang.Object
Helper for 
ClassNode and classes handling them.  Contains a set of
 pre-defined instances for the most used types and some code for cached node
 creation and basic handling.- 
Field Summary
 - 
Constructor Summary
Constructors Constructor Description ClassHelper() - 
Method Summary
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(java.lang.Class c)Creates a ClassNode using a given class.static ClassNode[]make(java.lang.Class[] classes)Creates an array of ClassNodes using an array of classes.static ClassNodemake(java.lang.Class c, boolean includeGenerics)static ClassNodemake(java.lang.String name)Creates a ClassNode using a given class.static ClassNodemakeCached(java.lang.Class c)static ClassNodemakeReference()static ClassNodemakeWithoutCaching(java.lang.Class c)static ClassNodemakeWithoutCaching(java.lang.Class c, boolean includeGenerics)static ClassNodemakeWithoutCaching(java.lang.String name)Creates a ClassNode using a given class.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait 
- 
Field Details
- 
TUPLE_CLASSES
public static final java.lang.Class[] TUPLE_CLASSES - 
DYNAMIC_TYPE
 - 
OBJECT_TYPE
 - 
CLOSURE_TYPE
 - 
GSTRING_TYPE
 - 
RANGE_TYPE
 - 
PATTERN_TYPE
 - 
STRING_TYPE
 - 
SCRIPT_TYPE
 - 
BINDING_TYPE
 - 
THROWABLE_TYPE
 - 
boolean_TYPE
 - 
char_TYPE
 - 
byte_TYPE
 - 
int_TYPE
 - 
long_TYPE
 - 
short_TYPE
 - 
double_TYPE
 - 
float_TYPE
 - 
Byte_TYPE
 - 
Short_TYPE
 - 
Integer_TYPE
 - 
Long_TYPE
 - 
Character_TYPE
 - 
Float_TYPE
 - 
Double_TYPE
 - 
Boolean_TYPE
 - 
BigInteger_TYPE
 - 
BigDecimal_TYPE
 - 
Number_TYPE
 - 
VOID_TYPE
 - 
void_WRAPPER_TYPE
 - 
METACLASS_TYPE
 - 
Iterator_TYPE
 - 
Annotation_TYPE
 - 
ELEMENT_TYPE_TYPE
 - 
AUTOCLOSEABLE_TYPE
 - 
SERIALIZABLE_TYPE
 - 
SERIALIZEDLAMBDA_TYPE
 - 
MAP_TYPE
 - 
LIST_TYPE
 - 
Enum_Type
 - 
CLASS_Type
 - 
TUPLE_TYPE
 - 
REFERENCE_TYPE
 - 
COMPARABLE_TYPE
 - 
GROOVY_OBJECT_TYPE
 - 
GENERATED_LAMBDA_TYPE
 - 
GENERATED_CLOSURE_Type
 - 
GROOVY_INTERCEPTABLE_TYPE
 - 
GROOVY_OBJECT_SUPPORT_TYPE
 - 
EMPTY_TYPE_ARRAY
 - 
OBJECT
public static final java.lang.String OBJECT- See Also:
 - Constant Field Values
 
 
 - 
 - 
Constructor Details
- 
ClassHelper
public ClassHelper() 
 - 
 - 
Method Details
- 
makeCached
 - 
make
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
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
 
 - 
make
 - 
makeWithoutCaching
 - 
makeWithoutCaching
 - 
makeWithoutCaching
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
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
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)
 - 
getUnwrapper
 - 
isPrimitiveType
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
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
 - 
makeReference
 - 
isCachedType
 - 
isSAMType
 - 
isFunctionalInterface
 - 
isGeneratedFunction
Checks if the type is a generated function, i.e. closure or lambda.- Since:
 - 3.0.0
 
 - 
findSAM
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
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
 
 
 -