public class MetaClassRegistryImpl extends Object implements MetaClassRegistry
MetaClassRegistry.MetaClassCreationHandle
Modifier and Type | Field and Description |
---|---|
static int |
DONT_LOAD_DEFAULT |
static int |
LOAD_DEFAULT |
static String |
MODULE_META_INF_FILE
Deprecated.
Use
instead |
Constructor and Description |
---|
MetaClassRegistryImpl() |
MetaClassRegistryImpl(boolean useAccessible) |
MetaClassRegistryImpl(int loadDefault) |
MetaClassRegistryImpl(int loadDefault,
boolean useAccessible) |
Modifier and Type | Method and Description |
---|---|
void |
addMetaClassRegistryChangeEventListener(MetaClassRegistryChangeEventListener listener)
Adds a listener for constant meta classes.
|
void |
addNonRemovableMetaClassRegistryChangeEventListener(MetaClassRegistryChangeEventListener listener)
Adds a listener for constant meta classes.
|
protected void |
fireConstantMetaClassUpdate(Object obj,
Class c,
MetaClass oldMC,
MetaClass newMc)
Causes the execution of all registered listeners.
|
static MetaClassRegistry |
getInstance(int includeExtension)
Singleton of MetaClassRegistry.
|
FastArray |
getInstanceMethods() |
MetaClass |
getMetaClass(Class theClass)
The main function of the registry
If a meta class exists then return it
otherwise create one, put it in the registry and return it
|
MetaClass |
getMetaClass(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.
|
ExtensionModuleRegistry |
getModuleRegistry() |
FastArray |
getStaticMethods() |
Iterator |
iterator()
Returns an iterator to iterate over all constant meta classes.
|
void |
registerExtensionModuleFromProperties(Properties properties,
ClassLoader classLoader,
Map<CachedClass,List<MetaMethod>> map) |
void |
removeMetaClass(Class theClass)
Removes a cached MetaClass from the registry
|
void |
removeMetaClassRegistryChangeEventListener(MetaClassRegistryChangeEventListener listener)
Removes a constant meta class listener.
|
void |
setMetaClass(Class theClass,
MetaClass theMetaClass)
Registers a new MetaClass in the registry to customize the type
|
void |
setMetaClass(Object obj,
MetaClass theMetaClass) |
void |
setMetaClassCreationHandle(MetaClassRegistry.MetaClassCreationHandle handle)
Sets a handle internally used to create MetaClass implementations.
|
boolean |
useAccessible() |
public static final String MODULE_META_INF_FILE
instead
public static final int LOAD_DEFAULT
public static final int DONT_LOAD_DEFAULT
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)
public void registerExtensionModuleFromProperties(Properties properties, ClassLoader classLoader, Map<CachedClass,List<MetaMethod>> map)
public ExtensionModuleRegistry getModuleRegistry()
public final MetaClass getMetaClass(Class theClass)
MetaClassRegistry
getMetaClass
in interface MetaClassRegistry
public void removeMetaClass(Class theClass)
MetaClassRegistry
removeMetaClass
in interface MetaClassRegistry
theClass
- The Java class of the MetaClass to removepublic void setMetaClass(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 void addMetaClassRegistryChangeEventListener(MetaClassRegistryChangeEventListener listener)
addMetaClassRegistryChangeEventListener
in interface MetaClassRegistry
listener
- the listenerpublic void addNonRemovableMetaClassRegistryChangeEventListener(MetaClassRegistryChangeEventListener listener)
addNonRemovableMetaClassRegistryChangeEventListener
in interface MetaClassRegistry
listener
- the listenerpublic void removeMetaClassRegistryChangeEventListener(MetaClassRegistryChangeEventListener listener)
removeMetaClassRegistryChangeEventListener
in interface MetaClassRegistry
listener
- the listenerprotected void fireConstantMetaClassUpdate(Object obj, Class c, MetaClass oldMC, MetaClass newMc)
obj
- object instance if the MetaClass change is on a per-instance metaclass (or null if global)c
- the classoldMC
- the old MetaClassnewMc
- the new MetaClasspublic MetaClassRegistryChangeEventListener[] getMetaClassRegistryChangeEventListeners()
getMetaClassRegistryChangeEventListeners
in interface MetaClassRegistry
public static MetaClassRegistry getInstance(int includeExtension)
includeExtension
- public FastArray getInstanceMethods()
public FastArray getStaticMethods()
public Iterator iterator()
iterator
in interface MetaClassRegistry