blob: 3f131248547c54ae2c404a3ff11749c18bc5bb3a [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.5.0_11) on Mon May 19 19:21:23 PDT 2008 -->
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<TITLE>
org.apache.openjpa.enhance (OpenJPA 1.1.0 API)
</TITLE>
<META NAME="keywords" CONTENT="org.apache.openjpa.enhance package">
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
<SCRIPT type="text/javascript">
function windowTitle()
{
parent.document.title="org.apache.openjpa.enhance (OpenJPA 1.1.0 API)";
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>
</HEAD>
<BODY BGCOLOR="white" onload="windowTitle();">
<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../org/apache/openjpa/ee/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
&nbsp;<A HREF="../../../../org/apache/openjpa/event/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../index.html?org/apache/openjpa/enhance/package-summary.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->
<HR>
<H2>
Package org.apache.openjpa.enhance
</H2>
<strong>OpenJPA Enhancer</strong>
<P>
<B>See:</B>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A HREF="#package_description"><B>Description</B></A>
<P>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Interface Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/openjpa/enhance/ApplicationIdTool.ObjectIdLoader.html" title="interface in org.apache.openjpa.enhance">ApplicationIdTool.ObjectIdLoader</A></B></TD>
<TD>Interface implemented by metadata factories that can load non-existant
object id classes.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/openjpa/enhance/AttributeTranslator.html" title="interface in org.apache.openjpa.enhance">AttributeTranslator</A></B></TD>
<TD>Instances of this interface can convert a positional index for a
<CODE>FieldMetaData</CODE> that uses property access into the underlying
field name.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/openjpa/enhance/DynamicPersistenceCapable.html" title="interface in org.apache.openjpa.enhance">DynamicPersistenceCapable</A></B></TD>
<TD>Instances that implement this marker interface are dynamically-generated
subtypes of managed types that were loaded before being enhanced.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/openjpa/enhance/DynamicStorage.html" title="interface in org.apache.openjpa.enhance">DynamicStorage</A></B></TD>
<TD>Interface for dynamically generated classes.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/openjpa/enhance/FieldConsumer.html" title="interface in org.apache.openjpa.enhance">FieldConsumer</A></B></TD>
<TD>Consumes persistent field values.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/openjpa/enhance/FieldManager.html" title="interface in org.apache.openjpa.enhance">FieldManager</A></B></TD>
<TD>Manages persistent fields.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/openjpa/enhance/FieldSupplier.html" title="interface in org.apache.openjpa.enhance">FieldSupplier</A></B></TD>
<TD>Supplies persistent field values.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/openjpa/enhance/ManagedInstanceProvider.html" title="interface in org.apache.openjpa.enhance">ManagedInstanceProvider</A></B></TD>
<TD>Instances of this interface can provide an underlying instance.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/openjpa/enhance/PCDataGenerator.DynamicPCData.html" title="interface in org.apache.openjpa.enhance">PCDataGenerator.DynamicPCData</A></B></TD>
<TD>Dynamic <A HREF="../../../../org/apache/openjpa/kernel/PCData.html" title="interface in org.apache.openjpa.kernel"><CODE>PCData</CODE></A>s generated will implement this interface
to simplify initialization.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/openjpa/enhance/PCEnhancer.AuxiliaryEnhancer.html" title="interface in org.apache.openjpa.enhance">PCEnhancer.AuxiliaryEnhancer</A></B></TD>
<TD>Plugin interface for additional enhancement.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/openjpa/enhance/PCRegistry.RegisterClassListener.html" title="interface in org.apache.openjpa.enhance">PCRegistry.RegisterClassListener</A></B></TD>
<TD>Listener for persistent class registration events.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/openjpa/enhance/PersistenceCapable.html" title="interface in org.apache.openjpa.enhance">PersistenceCapable</A></B></TD>
<TD>The interface that persistent instances will implement.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/openjpa/enhance/RuntimeUnenhancedClassesModes.html" title="interface in org.apache.openjpa.enhance">RuntimeUnenhancedClassesModes</A></B></TD>
<TD>Possible values for the <code>openjpa.RuntimeUnenhancedClasses</code>
configuration setting.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/openjpa/enhance/RuntimeUnenhancedClasssesModes.html" title="interface in org.apache.openjpa.enhance">RuntimeUnenhancedClasssesModes</A></B></TD>
<TD>Possible values for the <code>openjpa.RuntimeUnenhancedClasses</code>
configuration setting.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/openjpa/enhance/StateManager.html" title="interface in org.apache.openjpa.enhance">StateManager</A></B></TD>
<TD>Internal state manager for managed instances.</TD>
</TR>
</TABLE>
&nbsp;
<P>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Class Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/openjpa/enhance/ApplicationIdTool.html" title="class in org.apache.openjpa.enhance">ApplicationIdTool</A></B></TD>
<TD>Generates a class appropriate for use as an application identity class.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/openjpa/enhance/ApplicationIdTool.Flags.html" title="class in org.apache.openjpa.enhance">ApplicationIdTool.Flags</A></B></TD>
<TD>Run flags.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/openjpa/enhance/ClassRedefiner.html" title="class in org.apache.openjpa.enhance">ClassRedefiner</A></B></TD>
<TD>Redefines the method bodies of existing classes.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/openjpa/enhance/CodeGenerator.html" title="class in org.apache.openjpa.enhance">CodeGenerator</A></B></TD>
<TD>Generates Java class code from metadata.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/openjpa/enhance/DynamicStorageGenerator.html" title="class in org.apache.openjpa.enhance">DynamicStorageGenerator</A></B></TD>
<TD>Factory for creating new <A HREF="../../../../org/apache/openjpa/enhance/DynamicStorage.html" title="interface in org.apache.openjpa.enhance"><CODE>DynamicStorage</CODE></A> classes.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/openjpa/enhance/InstrumentationFactory.html" title="class in org.apache.openjpa.enhance">InstrumentationFactory</A></B></TD>
<TD>Factory for obtaining an <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/instrument/Instrumentation.html" title="class or interface in java.lang.instrument"><CODE>Instrumentation</CODE></A> instance.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/openjpa/enhance/ManagedClassSubclasser.html" title="class in org.apache.openjpa.enhance">ManagedClassSubclasser</A></B></TD>
<TD>Redefines the method bodies of existing unenhanced classes to make them
notify state managers of mutations.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/openjpa/enhance/PCClassFileTransformer.html" title="class in org.apache.openjpa.enhance">PCClassFileTransformer</A></B></TD>
<TD>Transformer that makes persistent classes implement the
<A HREF="../../../../org/apache/openjpa/enhance/PersistenceCapable.html" title="interface in org.apache.openjpa.enhance"><CODE>PersistenceCapable</CODE></A> interface at runtime.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/openjpa/enhance/PCDataGenerator.html" title="class in org.apache.openjpa.enhance">PCDataGenerator</A></B></TD>
<TD>Generates <A HREF="../../../../org/apache/openjpa/enhance/PCDataGenerator.DynamicPCData.html" title="interface in org.apache.openjpa.enhance"><CODE>PCDataGenerator.DynamicPCData</CODE></A> instances which avoid primitve wrappers
to optimize memory use and performance at the cost of slightly higher
startup time.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/openjpa/enhance/PCEnhancer.html" title="class in org.apache.openjpa.enhance">PCEnhancer</A></B></TD>
<TD>Bytecode enhancer used to enhance persistent classes from metadata.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/openjpa/enhance/PCEnhancer.Flags.html" title="class in org.apache.openjpa.enhance">PCEnhancer.Flags</A></B></TD>
<TD>Run flags.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/openjpa/enhance/PCEnhancerAgent.html" title="class in org.apache.openjpa.enhance">PCEnhancerAgent</A></B></TD>
<TD>Java agent that makes persistent classes work with OpenJPA at runtime.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/openjpa/enhance/PCRegistry.html" title="class in org.apache.openjpa.enhance">PCRegistry</A></B></TD>
<TD>Tracks registered persistence-capable classes.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/openjpa/enhance/PCSubclassValidator.html" title="class in org.apache.openjpa.enhance">PCSubclassValidator</A></B></TD>
<TD>Validates that a given type meets the JPA contract, plus a few
OpenJPA-specific additions for subclassing / redefinition:
must have an accessible no-args constructor
must be a public or protected class
must not be final
must not extend an enhanced class
all persistent data represented by accessible setter/getter
methods (persistent properties)
if versioning is to be used, exactly one persistent property for
the numeric version data <!-- ##### is this true? -->
When using property access, the backing field for a persistent
property must be:
<!-- ##### JPA validation of these needs to be tested -->
private
set only in the designated setter,
in the constructor, or in <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#clone()" title="class or interface in java.lang"><CODE>Object.clone()</CODE></A>,
<code>readObject(ObjectInputStream)</code>, or
<CODE>Externalizable#readExternal(ObjectInput)</CODE>.
read only in the designated getter and the
constructor.
</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/openjpa/enhance/RedefinitionHelper.html" title="class in org.apache.openjpa.enhance">RedefinitionHelper</A></B></TD>
<TD>Helper methods for managed types that use method redefinition for field
tracking.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/openjpa/enhance/ReflectingPersistenceCapable.html" title="class in org.apache.openjpa.enhance">ReflectingPersistenceCapable</A></B></TD>
<TD>Implementation of the <A HREF="../../../../org/apache/openjpa/enhance/PersistenceCapable.html" title="interface in org.apache.openjpa.enhance"><CODE>PersistenceCapable</CODE></A> interface that can handle
the persistence-capable contract for instances that were not enhanced
before class load time.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../../org/apache/openjpa/enhance/Reflection.html" title="class in org.apache.openjpa.enhance">Reflection</A></B></TD>
<TD>Reflection utilities used to support and augment enhancement.</TD>
</TR>
</TABLE>
&nbsp;
<P>
<A NAME="package_description"><!-- --></A><H2>
Package org.apache.openjpa.enhance Description
</H2>
<P>
<p><strong>OpenJPA Enhancer</strong></p>
<p>
This package provides a bytecode enhancer used to
post-process classes for use in a OpenJPA runtime.
A tool for generating application identity class sourcecode is also
provided.
</p>
<P>
<P>
<DL>
</DL>
<HR>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../org/apache/openjpa/ee/package-summary.html"><B>PREV PACKAGE</B></A>&nbsp;
&nbsp;<A HREF="../../../../org/apache/openjpa/event/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../index.html?org/apache/openjpa/enhance/package-summary.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<HR>
Copyright &copy; 2006-2008 <a href="http://www.apache.org">Apache Software Foundation</a>. All Rights Reserved.
</BODY>
</HTML>