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
FieldsModifier and TypeFieldDescriptionstatic final ClassNodestatic final ClassNodestatic final ClassNodestatic final ClassNodestatic final ClassNodestatic final ClassNodestatic final ClassNodestatic final ClassNodestatic final ClassNodestatic final ClassNodestatic final ClassNodestatic final ClassNodestatic final ClassNodestatic final ClassNodestatic final ClassNodestatic final ClassNodestatic final ClassNodestatic final ClassNodestatic final ClassNodestatic final ClassNodeDeprecated.static final ClassNodeprotected static final ClassNode[]static final ClassNodestatic final ClassNodestatic final ClassNodestatic final ClassNodestatic final ClassNodestatic final ClassNodestatic final ClassNodestatic final ClassNodestatic final ClassNodestatic final ClassNodestatic final ClassNodestatic final ClassNodestatic final ClassNodestatic final ClassNodestatic final ClassNodestatic final ClassNodestatic final ClassNodestatic final ClassNodestatic final ClassNodestatic final Stringstatic final ClassNodestatic final ClassNodestatic final ClassNodestatic final ClassNodestatic final ClassNodestatic final ClassNodestatic final ClassNodestatic final ClassNodestatic final ClassNodestatic final ClassNodestatic final ClassNodestatic final ClassNodestatic final ClassNodestatic final ClassNodestatic final ClassNodestatic final Class[]static final ClassNodestatic final ClassNodestatic final ClassNode -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic ClassNodestatic MethodNodeReturns the single abstract method of a class node, if it is a SAM type, or null otherwise.static ClassNodegetNextSuperClass(ClassNode source, ClassNode target) Returns a super class or interface for a given class depending on supplied target.static ClassNodestatic ClassNodegetWrapper(ClassNode cn) Creates a ClassNode containing the wrapper of a ClassNode of primitive type.static booleanisBigDecimalType(ClassNode type) static booleanisBigIntegerType(ClassNode type) static booleanisCachedType(ClassNode type) static booleanisClassType(ClassNode type) static booleanisDynamicTyped(ClassNode type) static booleanstatic booleanisGeneratedFunction(ClassNode type) Checks if the type is a generated function, i.e.static booleanisGroovyObjectType(ClassNode type) static booleanisGStringType(ClassNode type) static booleanstatic booleanisObjectType(ClassNode type) static booleanisPrimitiveBoolean(ClassNode type) static booleanisPrimitiveByte(ClassNode type) static booleanisPrimitiveChar(ClassNode type) static booleanisPrimitiveDouble(ClassNode type) static booleanisPrimitiveFloat(ClassNode type) static booleanisPrimitiveInt(ClassNode type) static booleanisPrimitiveLong(ClassNode type) static booleanisPrimitiveShort(ClassNode type) static booleanTest to determine if a ClassNode is a primitive type.static booleanisPrimitiveVoid(ClassNode type) static booleanstatic booleanTest 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 booleanisStringType(ClassNode type) static booleanisWrapperBoolean(ClassNode type) static booleanisWrapperByte(ClassNode type) static booleanisWrapperCharacter(ClassNode type) static booleanisWrapperDouble(ClassNode type) static booleanisWrapperFloat(ClassNode type) static booleanisWrapperInteger(ClassNode type) static booleanisWrapperLong(ClassNode type) static booleanisWrapperShort(ClassNode type) static booleanisWrapperVoid(ClassNode type) static ClassNodeCreates a ClassNode using a given class.static ClassNode[]Creates an array of ClassNodes using an array of classes.static ClassNodestatic ClassNodeCreates a ClassNode using a given class.static ClassNodemakeCached(Class c) static ClassNodestatic ClassNodestatic ClassNodemakeWithoutCaching(Class c, boolean includeGenerics) static ClassNodemakeWithoutCaching(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.
-