groovy.lang
Class MetaClassImpl

Allows methods to be dynamically added to existing classes at runtime

author:
James Strachan
author:
Guillaume Laforge
author:
Jochen Theodorou
author:
Graeme Rocher
author:
Alex Tkachman
version:
$Revision: 11920 $
see:
MetaClass

Field Summary
 MetaMethod AMBIGUOUS_LISTENER_METHOD
           
 String CLOSURE_CALL_METHOD
           
 String CLOSURE_CURRY_METHOD
           
 String CLOSURE_DO_CALL_METHOD
           
 def EMPTY_ARGUMENTS
           
 def EMPTY_CLASS_ARRAY
           
 def GETTER_MISSING_ARGS
           
 Logger LOG
           
 String METHOD_MISSING
           
 def METHOD_MISSING_ARGS
           
 MetaMethod NULL_METHOD
           
 String PROPERTY_MISSING
           
 def SETTER_MISSING_ARGS
           
 String STATIC_METHOD_MISSING
           
 String STATIC_PROPERTY_MISSING
           
 List allMethods
           
 MetaProperty arrayLengthProperty
           
 ClassNode classNode
           
 Index classPropertyIndex
           
 Index classPropertyIndexForSuper
           
 FastArray constructors
           
 MetaMethod genericGetMethod
           
 MetaMethod genericSetMethod
           
 boolean initialized
           
 List interfaceMethods
           
 boolean isGroovyObject
           
 boolean isMap
           
 Map listeners
           
 def mainClassMethodHeader
           
 MetaMethodIndex metaMethodIndex
           
 MetaMethod methodMissing
           
 Set newGroovyMethodsSet
           
 MetaMethod propertyMissingGet
           
 MetaMethod propertyMissingSet
           
 MetaClassRegistry registry
           
 SingleKeyHashMap staticPropertyIndex
           
 CachedClass theCachedClass
           
 Class theClass
           
 
Constructor Summary
MetaClassImpl(Class theClass)
           
MetaClassImpl(MetaClassRegistry registry, Class theClass)
           
 
Method Summary
void addInterfaceMethods(Set interfaces)
          
def castArgumentsToClassArray(def argTypes)
          
void fillMethodIndex()
          
MetaMethod getMetaMethod(String name, def argTypes)
          
MetaProperty getMetaProperty(String name)
          
MetaMethod getStaticMetaMethod(String name, def argTypes)
          
LinkedList getSuperClasses()
          
Class getTheClass()
          
MetaProperty hasProperty(Object obj, String name)
          
boolean isGroovyObject()
          
void populateMethods(LinkedList superClasses, CachedClass firstGroovySuper)
          
void removeMultimethodsOverloadedWithPrivateMethods()
          
void replaceWithMOPCalls(def mopMethods)
          
List respondsTo(Object obj, String name, def argTypes)
          
List respondsTo(Object obj, String name)
          
 

Constructor Detail

MetaClassImpl

public MetaClassImpl(Class theClass)


MetaClassImpl

public MetaClassImpl(MetaClassRegistry registry, Class theClass)


Method Detail

addInterfaceMethods

void addInterfaceMethods(Set interfaces)


castArgumentsToClassArray

def castArgumentsToClassArray(def argTypes)


fillMethodIndex

void fillMethodIndex()


getMetaMethod

public MetaMethod getMetaMethod(String name, def argTypes)
see:
MetaObjectProtocol#getMetaMethod(String, Object[])


getMetaProperty

public MetaProperty getMetaProperty(String name)
see:
MetaObjectProtocol#getMetaProperty(String)


getStaticMetaMethod

public MetaMethod getStaticMetaMethod(String name, def argTypes)
see:
MetaObjectProtocol#getStaticMetaMethod(String, Object[])


getSuperClasses

LinkedList getSuperClasses()


getTheClass

public Class getTheClass()


hasProperty

public MetaProperty hasProperty(Object obj, String name)
see:
MetaObjectProtocol#hasProperty(Object,String)


isGroovyObject

public boolean isGroovyObject()


populateMethods

void populateMethods(LinkedList superClasses, CachedClass firstGroovySuper)


removeMultimethodsOverloadedWithPrivateMethods

void removeMultimethodsOverloadedWithPrivateMethods()


replaceWithMOPCalls

void replaceWithMOPCalls(def mopMethods)


respondsTo

public List respondsTo(Object obj, String name, def argTypes)
see:
MetaObjectProtocol#respondsTo(Object,String, Object[])


respondsTo

public List respondsTo(Object obj, String name)
see:
MetaObjectProtocol#respondsTo(Object,String, Object[])