public abstract class Traits extends Object
| Modifier and Type | Class and Description | 
|---|---|
static interface  | 
Traits.Implemented
Internal annotation used to indicate which methods in a trait interface have a
 default implementation. 
 | 
static interface  | 
Traits.TraitBridge
Internal annotation used to indicate that a method is a bridge method to a trait
 default implementation. 
 | 
| Modifier and Type | Field and Description | 
|---|---|
static ClassNode | 
GENERATED_PROXY_CLASSNODE  | 
static ClassNode | 
IMPLEMENTED_CLASSNODE  | 
static ClassNode | 
SELFTYPE_CLASSNODE  | 
static String | 
STATIC_THIS_OBJECT  | 
static String | 
THIS_OBJECT  | 
static Class | 
TRAIT_CLASS  | 
static ClassNode | 
TRAIT_CLASSNODE  | 
static ClassNode | 
TRAITBRIDGE_CLASSNODE  | 
| Constructor and Description | 
|---|
Traits()  | 
| Modifier and Type | Method and Description | 
|---|---|
static LinkedHashSet<ClassNode> | 
collectAllInterfacesReverseOrder(ClassNode cNode,
                                LinkedHashSet<ClassNode> interfaces)
Collects all interfaces of a class node, but reverses the order of the declaration of direct interfaces
 of this class node. 
 | 
static LinkedHashSet<ClassNode> | 
collectSelfTypes(ClassNode receiver,
                LinkedHashSet<ClassNode> selfTypes)
Collects all the self types that a type should extend or implement, given
 the traits is implements. 
 | 
static LinkedHashSet<ClassNode> | 
collectSelfTypes(ClassNode receiver,
                LinkedHashSet<ClassNode> selfTypes,
                boolean checkInterfaces,
                boolean checkSuper)
Collects all the self types that a type should extend or implement, given
 the traits is implements. 
 | 
static String[] | 
decomposeSuperCallName(String origName)
Returns the name of a method without the super trait specific prefix. 
 | 
static ClassNode | 
findFieldHelper(ClassNode trait)  | 
static ClassNode | 
findHelper(ClassNode trait)  | 
static <T> T | 
getAsType(Object self,
         Class<T> clazz)
Converts a class implementing some trait into a target class. 
 | 
static Method | 
getBridgeMethodTarget(Method someMethod)
Reflection API to find the method corresponding to the default implementation of a trait, given a bridge method. 
 | 
static boolean | 
hasDefaultImplementation(Method method)
Indicates whether a method in a trait interface has a default implementation. 
 | 
static boolean | 
hasDefaultImplementation(MethodNode method)
Indicates whether a method in a trait interface has a default implementation. 
 | 
static boolean | 
isAnnotatedWithTrait(ClassNode cNode)
Returns true if the specified class node is annotated with the  
Trait interface. | 
static boolean | 
isBridgeMethod(Method someMethod)
Reflection API to indicate whether some method is a bridge method to the default implementation
 of a trait. 
 | 
static boolean | 
isTrait(Class clazz)
Returns true if the specified class is a trait. 
 | 
static boolean | 
isTrait(ClassNode cNode)
Returns true if the specified class node is a trait. 
 | 
public static final ClassNode IMPLEMENTED_CLASSNODE
public static final ClassNode TRAITBRIDGE_CLASSNODE
public static final Class TRAIT_CLASS
public static final ClassNode TRAIT_CLASSNODE
public static final ClassNode GENERATED_PROXY_CLASSNODE
public static final ClassNode SELFTYPE_CLASSNODE
public static final String THIS_OBJECT
public static final String STATIC_THIS_OBJECT
public static boolean isTrait(ClassNode cNode)
cNode - a class node to testpublic static boolean isTrait(Class clazz)
clazz - a class to testpublic static boolean isAnnotatedWithTrait(ClassNode cNode)
Trait interface.cNode - a class nodeTrait interface.public static boolean hasDefaultImplementation(MethodNode method)
method - a method nodepublic static boolean hasDefaultImplementation(Method method)
method - a method nodepublic static boolean isBridgeMethod(Method someMethod)
someMethod - a method nodepublic static Method getBridgeMethodTarget(Method someMethod)
someMethod - a method nodepublic static <T> T getAsType(Object self, Class<T> clazz)
DefaultGroovyMethods.asType(java.lang.Object, Class)self - an object to be coerced to some classclazz - the class to be coerced topublic static String[] decomposeSuperCallName(String origName)
origName - the name of a methodpublic static LinkedHashSet<ClassNode> collectAllInterfacesReverseOrder(ClassNode cNode, LinkedHashSet<ClassNode> interfaces)
cNode - a class nodeinterfaces - ordered set of interfacespublic static LinkedHashSet<ClassNode> collectSelfTypes(ClassNode receiver, LinkedHashSet<ClassNode> selfTypes)
receiver - a class node that may implement a traitselfTypes - a collection where the list of self types will be writtenpublic static LinkedHashSet<ClassNode> collectSelfTypes(ClassNode receiver, LinkedHashSet<ClassNode> selfTypes, boolean checkInterfaces, boolean checkSuper)
receiver - a class node that may implement a traitselfTypes - a collection where the list of self types will be writtencheckInterfaces - should the interfaces that the node implements be collected toocheckSuper - should we collect from the superclass too