|
||||||||||
| 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 reflection
public 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 MetaClassRegistrypublic 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 MetaClassRegistrytheClass - The Java class of the MetaClass to remove
public void setMetaClass(java.lang.Class theClass,
MetaClass theMetaClass)
setMetaClass in interface MetaClassRegistrytheClass - theMetaClass -
public void setMetaClass(java.lang.Object obj,
MetaClass theMetaClass)
public boolean useAccessible()
public MetaClassRegistry.MetaClassCreationHandle getMetaClassCreationHandler()
getMetaClassCreationHandler in interface MetaClassRegistrypublic void setMetaClassCreationHandle(MetaClassRegistry.MetaClassCreationHandle handle)
setMetaClassCreationHandle in interface MetaClassRegistryhandle - the handlepublic void addMetaClassRegistryChangeEventListener(MetaClassRegistryChangeEventListener listener)
addMetaClassRegistryChangeEventListener in interface MetaClassRegistrylistener - the listenerpublic void removeMetaClassRegistryChangeEventListener(MetaClassRegistryChangeEventListener listener)
removeMetaClassRegistryChangeEventListener in interface MetaClassRegistrylistener - the listener
protected void fireConstantMetaClassUpdate(java.lang.Class c,
MetaClass newMc)
c - the classnewMc - the new MetaClasspublic MetaClassRegistryChangeEventListener[] getMetaClassRegistryChangeEventListeners()
getMetaClassRegistryChangeEventListeners in interface MetaClassRegistrypublic 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 | |||||||||