|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl
public class MetaClassRegistryImpl
A registry of MetaClass instances which caches introspection & reflection information and allows methods to be dynamically added to existing classes at runtime
Nested Class Summary |
---|
Nested classes/interfaces inherited from interface groovy.lang.MetaClassRegistry |
---|
MetaClassRegistry.MetaClassCreationHandle |
Field Summary | |
---|---|
private java.util.LinkedList |
changeListenerList
|
static int |
DONT_LOAD_DEFAULT
|
private static MetaClassRegistry |
instanceExclude
|
private static MetaClassRegistry |
instanceInclude
|
private FastArray |
instanceMethods
|
static int |
LOAD_DEFAULT
|
private MetaClassRegistry.MetaClassCreationHandle |
metaClassCreationHandle
|
private ManagedLinkedList |
metaClassInfo
|
private FastArray |
staticMethods
|
private boolean |
useAccessible
|
Constructor Summary | |
---|---|
MetaClassRegistryImpl()
|
|
MetaClassRegistryImpl(boolean useAccessible)
|
|
MetaClassRegistryImpl(int loadDefault)
|
|
MetaClassRegistryImpl(int loadDefault,
boolean useAccessible)
|
Method Summary | |
---|---|
void |
addMetaClassRegistryChangeEventListener(MetaClassRegistryChangeEventListener listener)
Adds a listener for constant meta classes. |
private void |
createMetaMethodFromClass(java.util.Map map,
java.lang.Class aClass)
|
protected void |
fireConstantMetaClassUpdate(java.lang.Class c,
MetaClass newMc)
Causes the execution of all registered listeners. |
static MetaClassRegistry |
getInstance(int includeExtension)
Singleton of MetaClassRegistry. |
FastArray |
getInstanceMethods()
|
MetaClass |
getMetaClass(java.lang.Class theClass)
|
MetaClass |
getMetaClass(java.lang.Object obj)
|
MetaClassRegistry.MetaClassCreationHandle |
getMetaClassCreationHandler()
Gets a handle internally used to create MetaClass implementations WARNING: experimental code, likely to change soon |
MetaClassRegistryChangeEventListener[] |
getMetaClassRegistryChangeEventListeners()
Gets an array of of all registered ConstantMetaClassListener instances. |
FastArray |
getStaticMethods()
|
private void |
installMetaClassCreationHandle()
Looks for a class called 'groovy.runtime.metaclass.CustomMetaClassCreationHandle' and if it exists uses it as the MetaClassCreationHandle otherwise uses the default |
java.util.Iterator |
iterator()
Returns an iterator to iterate over all constant meta classes. |
private void |
registerMethods(java.lang.Class theClass,
boolean useMethodrapper,
boolean useInstanceMethods,
java.util.Map map)
|
void |
removeMetaClass(java.lang.Class theClass)
Removes a cached MetaClass from the registry |
void |
removeMetaClassRegistryChangeEventListener(MetaClassRegistryChangeEventListener listener)
Removes a constant meta class listener. |
void |
setMetaClass(java.lang.Class theClass,
MetaClass theMetaClass)
Registers a new MetaClass in the registry to customize the type |
private void |
setMetaClass(java.lang.Class theClass,
MetaClass oldMc,
MetaClass newMc)
if oldMc is null, newMc will replace whatever meta class was used before. |
void |
setMetaClass(java.lang.Object obj,
MetaClass theMetaClass)
|
void |
setMetaClassCreationHandle(MetaClassRegistry.MetaClassCreationHandle handle)
Sets a handle internally used to create MetaClass implementations. |
boolean |
useAccessible()
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
private boolean useAccessible
private FastArray instanceMethods
private FastArray staticMethods
private java.util.LinkedList changeListenerList
private ManagedLinkedList metaClassInfo
public static final int LOAD_DEFAULT
public static final int DONT_LOAD_DEFAULT
private static MetaClassRegistry instanceInclude
private static MetaClassRegistry instanceExclude
private volatile MetaClassRegistry.MetaClassCreationHandle metaClassCreationHandle
Constructor Detail |
---|
public MetaClassRegistryImpl()
public MetaClassRegistryImpl(int loadDefault)
public MetaClassRegistryImpl(boolean useAccessible)
useAccessible
- defines whether or not the AccessibleObject.setAccessible(boolean)
method will be called to enable access to all methods when using reflectionpublic MetaClassRegistryImpl(int loadDefault, boolean useAccessible)
Method Detail |
---|
private void installMetaClassCreationHandle()
MetaClassRegistry.MetaClassCreationHandle
private void registerMethods(java.lang.Class theClass, boolean useMethodrapper, boolean useInstanceMethods, java.util.Map map)
private void createMetaMethodFromClass(java.util.Map map, java.lang.Class aClass)
public final MetaClass getMetaClass(java.lang.Class theClass)
getMetaClass
in interface MetaClassRegistry
public MetaClass getMetaClass(java.lang.Object obj)
private void setMetaClass(java.lang.Class theClass, MetaClass oldMc, MetaClass newMc)
public void removeMetaClass(java.lang.Class theClass)
MetaClassRegistry
removeMetaClass
in interface MetaClassRegistry
theClass
- The Java class of the MetaClass to removepublic void setMetaClass(java.lang.Class theClass, MetaClass theMetaClass)
setMetaClass
in interface MetaClassRegistry
theClass
- theMetaClass
- public void setMetaClass(java.lang.Object obj, MetaClass theMetaClass)
public boolean useAccessible()
public MetaClassRegistry.MetaClassCreationHandle getMetaClassCreationHandler()
getMetaClassCreationHandler
in interface MetaClassRegistry
public void setMetaClassCreationHandle(MetaClassRegistry.MetaClassCreationHandle handle)
setMetaClassCreationHandle
in interface MetaClassRegistry
handle
- the handlepublic void addMetaClassRegistryChangeEventListener(MetaClassRegistryChangeEventListener listener)
addMetaClassRegistryChangeEventListener
in interface MetaClassRegistry
listener
- the listenerpublic void removeMetaClassRegistryChangeEventListener(MetaClassRegistryChangeEventListener listener)
removeMetaClassRegistryChangeEventListener
in interface MetaClassRegistry
listener
- the listenerprotected void fireConstantMetaClassUpdate(java.lang.Class c, MetaClass newMc)
c
- the classnewMc
- the new MetaClasspublic MetaClassRegistryChangeEventListener[] getMetaClassRegistryChangeEventListeners()
getMetaClassRegistryChangeEventListeners
in interface MetaClassRegistry
public static MetaClassRegistry getInstance(int includeExtension)
includeExtension
- public FastArray getInstanceMethods()
public FastArray getStaticMethods()
public java.util.Iterator iterator()
iterator
in interface MetaClassRegistry
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |