Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.openjpa.enhance
Class ManagedClassSubclasser

    java.lang.Object
      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`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

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