org.apache.openjpa.enhance
Class PCRegistry

java.lang.Object
  extended by 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
static interface PCRegistry.RegisterClassListener
          Listener for persistent class registration events.
 
Constructor Summary
PCRegistry()
           
 
Method Summary
static void addRegisterClassListener(PCRegistry.RegisterClassListener rcl)
          Register a PCRegistry.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 a PersistenceCapable class.
static Class[] getFieldTypes(Class pcClass)
          Get the field types for a PersistenceCapable class.
static Class getPCType(Class type)
          Return the persistence-capable type for type.
static Class getPersistentSuperclass(Class pcClass)
          Return the persistent superclass for a PersistenceCapable class, or null if none.
static Collection 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)
          Returns true if cls 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 given PersistenceCapable class.
static Object newObjectId(Class pcClass, String str)
          Create a new identity object for the given PersistenceCapable class, using the String 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 void removeRegisterClassListener(PCRegistry.RegisterClassListener rcl)
          Removes a PCRegistry.RegisterClassListener.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PCRegistry

public PCRegistry()
Method Detail

addRegisterClassListener

public static void addRegisterClassListener(PCRegistry.RegisterClassListener rcl)
Register a PCRegistry.RegisterClassListener.


removeRegisterClassListener

public static void removeRegisterClassListener(PCRegistry.RegisterClassListener rcl)
Removes a PCRegistry.RegisterClassListener.


getFieldNames

public static String[] getFieldNames(Class pcClass)
Get the field names for a PersistenceCapable class.


getFieldTypes

public static Class[] getFieldTypes(Class pcClass)
Get the field types for a PersistenceCapable class.


getPersistentSuperclass

public static Class getPersistentSuperclass(Class pcClass)
Return the persistent superclass for a PersistenceCapable class, or null if none. The superclass may or may not implement PersistenceCapable, 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 to LOAD_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 to LOAD_REQUIRED.


getPCType

public static Class getPCType(Class type)
Return the persistence-capable type for type. This might be a generated subclass of type.

Since:
1.1.0

newObjectId

public static Object newObjectId(Class pcClass)
Create a new identity object for the given PersistenceCapable class.


newObjectId

public static Object newObjectId(Class pcClass,
                                 String str)
Create a new identity object for the given PersistenceCapable class, using the String 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 types
fieldFlags - managed field flags
sup - the most immediate persistent superclass
pcClass - the PersistenceCapable class
fieldNames - managed field names
alias - the class alias
pc - 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 getRegisteredTypes()
Returns a collection of class objects of the registered persistence-capable classes.


isRegistered

public static boolean isRegistered(Class cls)
Returns true if cls is already registered.



Copyright © 2006-2008 Apache Software Foundation. All Rights Reserved.