Package org.apache.openjpa.enhance
Class PCRegistry
- java.lang.Object
-
- org.apache.openjpa.enhance.PCRegistry
-
public class PCRegistry extends Object
Tracks registered persistence-capable classes.- Since:
- 0.4.0
- Author:
- Abe White
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
PCRegistry.RegisterClassListener
Listener for persistent class registration events.
-
Constructor Summary
Constructors Constructor Description PCRegistry()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static void
addRegisterClassListener(PCRegistry.RegisterClassListener rcl)
Register aPCRegistry.RegisterClassListener
.static void
copyKeyFieldsFromObjectId(Class<?> pcClass, FieldConsumer fm, Object oid)
Copy fields to an outside source from the key fields in the identity object.static void
copyKeyFieldsToObjectId(Class<?> pcClass, FieldSupplier fm, Object oid)
Copy fields from an outside source to the key fields in the identity object.static void
deRegister(ClassLoader cl)
De-Register all metadata associated with the given ClassLoader.static String[]
getFieldNames(Class<?> pcClass)
Get the field names for aPersistenceCapable
class.static Class<?>[]
getFieldTypes(Class<?> pcClass)
Get the field types for aPersistenceCapable
class.static Class<?>
getPCType(Class<?> type)
Return the persistence-capable type fortype
.static Class<?>
getPersistentSuperclass(Class<?> pcClass)
Return the persistent superclass for aPersistenceCapable
class, or null if none.static Collection<Class<?>>
getRegisteredTypes()
Returns a collection of class objects of the registered persistence-capable classes.static String
getTypeAlias(Class<?> pcClass)
Return the alias for the given type.static boolean
isRegistered(Class<?> cls)
Returnstrue
if the given class is already registered.static PersistenceCapable
newInstance(Class<?> pcClass, StateManager sm, boolean clear)
Create a new instance of the class and assign its state manager.static PersistenceCapable
newInstance(Class<?> pcClass, StateManager sm, Object oid, boolean clear)
Create a new instance of the class and assign its state manager and oid.static Object
newObjectId(Class<?> pcClass)
Create a new identity object for the givenPersistenceCapable
class.static Object
newObjectId(Class<?> pcClass, String str)
Create a new identity object for the givenPersistenceCapable
class, using theString
form of the constructor.static void
register(Class<?> pcClass, String[] fieldNames, Class<?>[] fieldTypes, byte[] fieldFlags, Class<?> sup, String alias, PersistenceCapable pc)
Register metadata by class.static boolean
removeRegisterClassListener(PCRegistry.RegisterClassListener rcl)
Removes aPCRegistry.RegisterClassListener
.
-
-
-
Method Detail
-
addRegisterClassListener
public static void addRegisterClassListener(PCRegistry.RegisterClassListener rcl)
Register aPCRegistry.RegisterClassListener
.
-
removeRegisterClassListener
public static boolean removeRegisterClassListener(PCRegistry.RegisterClassListener rcl)
Removes aPCRegistry.RegisterClassListener
.
-
getFieldNames
public static String[] getFieldNames(Class<?> pcClass)
Get the field names for aPersistenceCapable
class.
-
getFieldTypes
public static Class<?>[] getFieldTypes(Class<?> pcClass)
Get the field types for aPersistenceCapable
class.
-
getPersistentSuperclass
public static Class<?> getPersistentSuperclass(Class<?> pcClass)
Return the persistent superclass for aPersistenceCapable
class, or null if none. The superclass may or may not implementPersistenceCapable
, depending on the access type of the class.
-
newInstance
public static PersistenceCapable newInstance(Class<?> pcClass, StateManager sm, boolean clear)
Create a new instance of the class and assign its state manager. The new instance has its flags set toLOAD_REQUIRED
.
-
newInstance
public static PersistenceCapable newInstance(Class<?> pcClass, StateManager sm, Object oid, boolean clear)
Create a new instance of the class and assign its state manager and oid. The new instance has its flags set toLOAD_REQUIRED
.
-
getPCType
public static Class<?> getPCType(Class<?> type)
Return the persistence-capable type fortype
. This might be a generated subclass oftype
.- Since:
- 1.1.0
-
newObjectId
public static Object newObjectId(Class<?> pcClass)
Create a new identity object for the givenPersistenceCapable
class.
-
newObjectId
public static Object newObjectId(Class<?> pcClass, String str)
Create a new identity object for the givenPersistenceCapable
class, using theString
form of the constructor.
-
getTypeAlias
public static String getTypeAlias(Class<?> pcClass)
Return the alias for the given type.
-
copyKeyFieldsToObjectId
public static void copyKeyFieldsToObjectId(Class<?> pcClass, FieldSupplier fm, Object oid)
Copy fields from an outside source to the key fields in the identity object.
-
copyKeyFieldsFromObjectId
public static void copyKeyFieldsFromObjectId(Class<?> pcClass, FieldConsumer fm, Object oid)
Copy fields to an outside source from the key fields in the identity object.
-
register
public static void register(Class<?> pcClass, String[] fieldNames, Class<?>[] fieldTypes, byte[] fieldFlags, Class<?> sup, String alias, PersistenceCapable pc)
Register metadata by class.- Parameters:
fieldTypes
- managed field typesfieldFlags
- managed field flagssup
- the most immediate persistent superclasspcClass
- thePersistenceCapable
classfieldNames
- managed field namesalias
- the class aliaspc
- an instance of the class, if not abstract
-
deRegister
public static void deRegister(ClassLoader cl)
De-Register all metadata associated with the given ClassLoader. Allows ClassLoaders to be garbage collected.- Parameters:
cl
- the ClassLoader
-
getRegisteredTypes
public static Collection<Class<?>> getRegisteredTypes()
Returns a collection of class objects of the registered persistence-capable classes.
-
isRegistered
public static boolean isRegistered(Class<?> cls)
Returnstrue
if the given class is already registered.
-
-