|
||||||||||
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 | |
---|---|
private class |
MetaClassRegistryImpl.LocallyKnownClasses
|
private class |
MetaClassRegistryImpl.MyThreadLocal
|
Nested classes/interfaces inherited from interface groovy.lang.MetaClassRegistry |
---|
MetaClassRegistry.MetaClassCreationHandle |
Field Summary | |
---|---|
private int |
constantMetaClassCount
|
private ConcurrentReaderHashMap |
constantMetaClasses
|
static int |
DONT_LOAD_DEFAULT
|
private static MetaClassRegistry |
instanceExclude
|
private static MetaClassRegistry |
instanceInclude
|
private FastArray |
instanceMethods
|
static int |
LOAD_DEFAULT
|
private MemoryAwareConcurrentReadMap |
loaderMap
|
private MetaClassRegistryImpl.MyThreadLocal |
locallyKnown
|
private MetaClassRegistry.MetaClassCreationHandle |
metaClassCreationHandle
|
private FastArray |
staticMethods
|
private boolean |
useAccessible
|
private java.lang.Integer |
version
|
private MemoryAwareConcurrentReadMap |
weakMetaClasses
|
Constructor Summary | |
---|---|
MetaClassRegistryImpl()
|
|
MetaClassRegistryImpl(boolean useAccessible)
|
|
MetaClassRegistryImpl(int loadDefault)
|
|
MetaClassRegistryImpl(int loadDefault,
boolean useAccessible)
|
Method Summary | |
---|---|
private MetaClass |
getGlobalMetaClass(java.lang.Class theClass)
|
static MetaClassRegistry |
getInstance(int includeExtension)
Singleton of MetaClassRegistry. |
FastArray |
getInstanceMethods()
|
MetaClass |
getMetaClass(java.lang.Class theClass)
|
MetaClassRegistry.MetaClassCreationHandle |
getMetaClassCreationHandler()
Gets a handle internally used to create MetaClass implementations WARNING: experimental code, likely to change soon |
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 |
private void |
registerMethods(java.lang.Class theClass,
boolean useInstanceMethods,
java.util.Map map)
|
void |
removeMetaClass(java.lang.Class theClass)
Removes a cached MetaClass from the registry |
void |
setMetaClass(java.lang.Class theClass,
MetaClass theMetaClass)
Registers a new MetaClass in the registry to customize the type |
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 volatile int constantMetaClassCount
private ConcurrentReaderHashMap constantMetaClasses
private MemoryAwareConcurrentReadMap weakMetaClasses
private MemoryAwareConcurrentReadMap loaderMap
private boolean useAccessible
private FastArray instanceMethods
private FastArray staticMethods
private volatile java.lang.Integer version
private MetaClassRegistryImpl.MyThreadLocal locallyKnown
public static final int LOAD_DEFAULT
public static final int DONT_LOAD_DEFAULT
private static MetaClassRegistry instanceInclude
private static MetaClassRegistry instanceExclude
private 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 useInstanceMethods, java.util.Map map)
private MetaClass getGlobalMetaClass(java.lang.Class theClass)
public MetaClass getMetaClass(java.lang.Class theClass)
getMetaClass
in interface MetaClassRegistry
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 boolean useAccessible()
public MetaClassRegistry.MetaClassCreationHandle getMetaClassCreationHandler()
getMetaClassCreationHandler
in interface MetaClassRegistry
public void setMetaClassCreationHandle(MetaClassRegistry.MetaClassCreationHandle handle)
setMetaClassCreationHandle
in interface MetaClassRegistry
handle
- the handlepublic static MetaClassRegistry getInstance(int includeExtension)
includeExtension
- public FastArray getInstanceMethods()
public FastArray getStaticMethods()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |