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 SummaryConstructors Constructor Description ClassHelper()
- 
Method SummaryModifier 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 source, ClassNode target)Returns a super class or interface for a given class depending on supplied 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.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
- 
Field Details- 
TUPLE_CLASSESpublic 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
- 
OBJECTpublic static final java.lang.String OBJECT- See Also:
- Constant Field Values
 
 
- 
- 
Constructor Details- 
ClassHelperpublic ClassHelper()
 
- 
- 
Method Details- 
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:
- make(Class)
 
- 
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:
- make(String)
 
- 
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:
- make(Class),- make(String)
 
- 
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:
- make(Class),- make(String)
 
- 
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:
- make(Class),- make(String)
 
- 
isNumberType
- 
makeReference
- 
isCachedType
- 
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.
 
-