Package org.codehaus.groovy.ast
Class ClassHelper
java.lang.Object
org.codehaus.groovy.ast.ClassHelper
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
Modifier and TypeFieldDescriptionstatic final ClassNode
static final ClassNode
static final ClassNode
static final ClassNode
static final ClassNode
static final ClassNode
static final ClassNode
static final ClassNode
static final ClassNode
static final ClassNode
static final ClassNode
static final ClassNode
static final ClassNode
static final ClassNode
static final ClassNode
static final ClassNode
static final ClassNode
static final ClassNode
static final ClassNode
static final ClassNode
Deprecated.static final ClassNode
protected static final ClassNode[]
static final ClassNode
static final ClassNode
static final ClassNode
static final ClassNode
static final ClassNode
static final ClassNode
static final ClassNode
static final ClassNode
static final ClassNode
static final ClassNode
static final ClassNode
static final ClassNode
static final ClassNode
static final ClassNode
static final ClassNode
static final ClassNode
static final ClassNode
static final ClassNode
static final ClassNode
static final String
static final ClassNode
static final ClassNode
static final ClassNode
static final ClassNode
static final ClassNode
static final ClassNode
static final ClassNode
static final ClassNode
static final ClassNode
static final ClassNode
static final ClassNode
static final ClassNode
static final ClassNode
static final ClassNode
static final ClassNode
static final Class[]
static final ClassNode
static final ClassNode
static final ClassNode
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic ClassNode
static MethodNode
Returns the single abstract method of a class node, if it is a SAM type, or null otherwise.static ClassNode
getNextSuperClass
(ClassNode source, ClassNode target) Returns a super class or interface for a given class depending on supplied target.static ClassNode
static ClassNode
getWrapper
(ClassNode cn) Creates a ClassNode containing the wrapper of a ClassNode of primitive type.static boolean
isBigDecimalType
(ClassNode type) static boolean
isBigIntegerType
(ClassNode type) static boolean
isCachedType
(ClassNode type) static boolean
isClassType
(ClassNode type) static boolean
isDynamicTyped
(ClassNode type) static boolean
static boolean
isGeneratedFunction
(ClassNode type) Checks if the type is a generated function, i.e.static boolean
isGroovyObjectType
(ClassNode type) static boolean
isGStringType
(ClassNode type) static boolean
static boolean
isObjectType
(ClassNode type) static boolean
isPrimitiveBoolean
(ClassNode type) static boolean
isPrimitiveByte
(ClassNode type) static boolean
isPrimitiveChar
(ClassNode type) static boolean
isPrimitiveDouble
(ClassNode type) static boolean
isPrimitiveFloat
(ClassNode type) static boolean
isPrimitiveInt
(ClassNode type) static boolean
isPrimitiveLong
(ClassNode type) static boolean
isPrimitiveShort
(ClassNode type) static boolean
Test to determine if a ClassNode is a primitive type.static boolean
isPrimitiveVoid
(ClassNode type) static boolean
static boolean
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 boolean
isStringType
(ClassNode type) static boolean
isWrapperBoolean
(ClassNode type) static boolean
isWrapperByte
(ClassNode type) static boolean
isWrapperCharacter
(ClassNode type) static boolean
isWrapperDouble
(ClassNode type) static boolean
isWrapperFloat
(ClassNode type) static boolean
isWrapperInteger
(ClassNode type) static boolean
isWrapperLong
(ClassNode type) static boolean
isWrapperShort
(ClassNode type) static boolean
isWrapperVoid
(ClassNode type) static ClassNode
Creates a ClassNode using a given class.static ClassNode[]
Creates an array of ClassNodes using an array of classes.static ClassNode
static ClassNode
Creates a ClassNode using a given class.static ClassNode
makeCached
(Class c) static ClassNode
static ClassNode
static ClassNode
makeWithoutCaching
(Class c, boolean includeGenerics) static ClassNode
makeWithoutCaching
(String name) Creates a ClassNode using a given class.
-
Field Details
-
TUPLE_CLASSES
-
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
-
CLONEABLE_TYPE
-
SERIALIZABLE_TYPE
-
SERIALIZEDLAMBDA_TYPE
-
SEALED_TYPE
-
OVERRIDE_TYPE
-
DEPRECATED_TYPE
-
MAP_TYPE
-
SET_TYPE
-
LIST_TYPE
-
Enum_Type
-
CLASS_Type
-
TUPLE_TYPE
-
STREAM_TYPE
-
ITERABLE_TYPE
-
REFERENCE_TYPE
-
COLLECTION_TYPE
-
COMPARABLE_TYPE
-
GROOVY_OBJECT_TYPE
-
GENERATED_LAMBDA_TYPE
-
GENERATED_CLOSURE_Type
-
GROOVY_INTERCEPTABLE_TYPE
-
GROOVY_OBJECT_SUPPORT_TYPE
-
DYNAMIC_TYPE
Deprecated. -
EMPTY_TYPE_ARRAY
-
OBJECT
- See Also:
-
-
Constructor Details
-
ClassHelper
public ClassHelper()
-
-
Method Details
-
dynamicType
-
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
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 create 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
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:
-
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:
-
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:
-
isNumberType
-
makeReference
-
isCachedType
-
isDynamicTyped
-
isPrimitiveBoolean
-
isPrimitiveChar
-
isPrimitiveByte
-
isPrimitiveInt
-
isPrimitiveLong
-
isPrimitiveShort
-
isPrimitiveDouble
-
isPrimitiveFloat
-
isPrimitiveVoid
-
isWrapperBoolean
-
isWrapperCharacter
-
isWrapperByte
-
isWrapperInteger
-
isWrapperLong
-
isWrapperShort
-
isWrapperDouble
-
isWrapperFloat
-
isWrapperVoid
-
isBigIntegerType
-
isBigDecimalType
-
isStringType
-
isGStringType
-
isObjectType
-
isGroovyObjectType
-
isClassType
-
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 supplied target. If the target is not a super class or interface, then null will be returned. For a non-primitive array type -- if the target is also an array -- returns an array of the component type's super class or interface.
-