org.apache.openjpa.enhance
Class ManagedClassSubclasser

java.lang.Object
  extended by org.apache.openjpa.enhance.ManagedClassSubclasser

public class ManagedClassSubclasser
extends Object

Redefines the method bodies of existing unenhanced classes to make them notify state managers of mutations.

Since:
1.0.0

Constructor Summary
ManagedClassSubclasser()
           
 
Method Summary
static void debugBytecodes(serp.bytecode.BCClass bc)
           
static List<Class<?>> prepareUnenhancedClasses(OpenJPAConfiguration conf, Collection<? extends Class<?>> classes, ClassLoader envLoader)
          For each element in classes, creates and registers a new subclass that implements PersistenceCapable, and prepares OpenJPA to handle new instances of the unenhanced type.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ManagedClassSubclasser

public ManagedClassSubclasser()
Method Detail

prepareUnenhancedClasses

public static List<Class<?>> prepareUnenhancedClasses(OpenJPAConfiguration conf,
                                                      Collection<? extends Class<?>> classes,
                                                      ClassLoader envLoader)
For each element in classes, creates and registers a new subclass that implements PersistenceCapable, and prepares OpenJPA to handle new instances of the unenhanced type. If this is invoked in a Java 6 environment, this method will redefine the methods for each class in the argument list such that field accesses are intercepted in-line. If invoked in a Java 5 environment, this redefinition is not possible; in these contexts, when using field access, OpenJPA will need to do state comparisons to detect any change to any instance at any time, and when using property access, OpenJPA will need to do state comparisons to detect changes to newly inserted instances after a flush has been called.

Returns:
the new subclasses, or null if classes is null.
Throws:
UserException - if conf requires build-time enhancement and classes includes unenhanced types.
Since:
1.0.0

debugBytecodes

public static void debugBytecodes(serp.bytecode.BCClass bc)
                           throws IOException
Throws:
IOException


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