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 SummaryFieldsModifier 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 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 SummaryConstructors
- 
Method SummaryModifier 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
- 
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_TYPEDeprecated.
- 
EMPTY_TYPE_ARRAY
- 
OBJECT- See Also:
 
 
- 
- 
Constructor Details- 
ClassHelperpublic ClassHelper()
 
- 
- 
Method Details- 
dynamicType
- 
makeCached
- 
makeCreates 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:
 
- 
makeCreates 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
- 
makeWithoutCachingCreates 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:
 
- 
makeCreates 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
 
- 
getWrapperCreates 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
- 
isPrimitiveTypeTest 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:
 
- 
isStaticConstantInitializerTypeTest 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
- 
isGeneratedFunctionChecks if the type is a generated function, i.e. closure or lambda.- Since:
- 3.0.0
 
- 
findSAMReturns 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
 
- 
getNextSuperClassReturns 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.
 
-