Package org.codehaus.groovy.ast
Class ClassHelper
- java.lang.Object
-
- org.codehaus.groovy.ast.ClassHelper
-
public class ClassHelper extends java.lang.Object
This class is a Helper for ClassNode and classes handling ClassNodes. It does contain a set of predefined ClassNodes for the most used types and some code for cached ClassNode creation and basic ClassNode handling- Author:
- Jochen Theodorou
-
-
Field Summary
-
Constructor Summary
Constructors Constructor Description ClassHelper()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static ClassNode
getUnwrapper(ClassNode cn)
static ClassNode
getWrapper(ClassNode cn)
Creates a ClassNode containing the wrapper of a ClassNode of primitive type.static boolean
isCachedType(ClassNode type)
static boolean
isNumberType(ClassNode cn)
static boolean
isPrimitiveType(ClassNode cn)
Test to determine if a ClassNode is a primitive type.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 ClassNodestatic ClassNode
make(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 ClassNode
make(java.lang.Class c, boolean includeGenerics)
static ClassNode
make(java.lang.String name)
Creates a ClassNode using a given class.static ClassNode
makeCached(java.lang.Class c)
static ClassNode
makeReference()
static ClassNode
makeWithoutCaching(java.lang.Class c)
static ClassNode
makeWithoutCaching(java.lang.Class c, boolean includeGenerics)
static ClassNode
makeWithoutCaching(java.lang.String name)
Creates a ClassNode using a given class.
-
-
-
Field Detail
-
DYNAMIC_TYPE
public static final ClassNode DYNAMIC_TYPE
-
OBJECT_TYPE
public static final ClassNode OBJECT_TYPE
-
VOID_TYPE
public static final ClassNode VOID_TYPE
-
CLOSURE_TYPE
public static final ClassNode CLOSURE_TYPE
-
GSTRING_TYPE
public static final ClassNode GSTRING_TYPE
-
LIST_TYPE
public static final ClassNode LIST_TYPE
-
MAP_TYPE
public static final ClassNode MAP_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
-
REFERENCE_TYPE
public static final ClassNode REFERENCE_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_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
-
CLASS_Type
public static final ClassNode CLASS_Type
-
COMPARABLE_TYPE
public static final ClassNode COMPARABLE_TYPE
-
GENERATED_CLOSURE_Type
public static final ClassNode GENERATED_CLOSURE_Type
-
GROOVY_OBJECT_SUPPORT_TYPE
public static final ClassNode GROOVY_OBJECT_SUPPORT_TYPE
-
GROOVY_OBJECT_TYPE
public static final ClassNode GROOVY_OBJECT_TYPE
-
GROOVY_INTERCEPTABLE_TYPE
public static final ClassNode GROOVY_INTERCEPTABLE_TYPE
-
Enum_Type
public static final ClassNode Enum_Type
-
Annotation_TYPE
public static final ClassNode Annotation_TYPE
-
ELEMENT_TYPE_TYPE
public static final ClassNode ELEMENT_TYPE_TYPE
-
EMPTY_TYPE_ARRAY
protected static final ClassNode[] EMPTY_TYPE_ARRAY
-
OBJECT
public static final java.lang.String OBJECT
- See Also:
- Constant Field Values
-
-
Method Detail
-
makeCached
public static ClassNode makeCached(java.lang.Class c)
-
make
public static ClassNode[] make(java.lang.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(java.lang.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
-
make
public static ClassNode make(java.lang.Class c, boolean includeGenerics)
-
makeWithoutCaching
public static ClassNode makeWithoutCaching(java.lang.Class c)
-
makeWithoutCaching
public static ClassNode makeWithoutCaching(java.lang.Class c, boolean includeGenerics)
-
makeWithoutCaching
public static ClassNode makeWithoutCaching(java.lang.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(java.lang.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)
-
-