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<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)
          Returns true 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 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<Class<?>> getRegisteredTypes()
Returns a collection of class objects of the registered persistence-capable classes.


isRegistered

public static boolean isRegistered(Class<?> cls)
Returns true if the given class is already registered.



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