blob: 25b79563a5edb8ff68e1629bda0455748fc08030 [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_41) on Fri Apr 12 14:46:26 CDT 2013 -->
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>
PCEnhancer (OpenJPA Parent POM 1.2.3 API)
</TITLE>
<META NAME="keywords" CONTENT="org.apache.openjpa.enhance.PCEnhancer class">
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
<SCRIPT type="text/javascript">
function windowTitle()
{
parent.document.title="PCEnhancer (OpenJPA Parent POM 1.2.3 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="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/PCEnhancer.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/enhance/PCDataGenerator.DynamicPCData.html" title="interface in org.apache.openjpa.enhance"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../org/apache/openjpa/enhance/PCEnhancer.AuxiliaryEnhancer.html" title="interface in org.apache.openjpa.enhance"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../index.html?org/apache/openjpa/enhance/PCEnhancer.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="PCEnhancer.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>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->
<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
org.apache.openjpa.enhance</FONT>
<BR>
Class PCEnhancer</H2>
<PRE>
<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html" title="class or interface in java.lang">java.lang.Object</A>
<IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.apache.openjpa.enhance.PCEnhancer</B>
</PRE>
<HR>
<DL>
<DT><PRE>public class <B>PCEnhancer</B><DT>extends <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A></DL>
</PRE>
<P>
Bytecode enhancer used to enhance persistent classes from metadata. The
enhancer must be invoked on all persistence-capable and persistence aware
classes.
<P>
<P>
<DL>
<DT><B>Author:</B></DT>
<DD>Abe White</DD>
</DL>
<HR>
<P>
<!-- ======== NESTED CLASS SUMMARY ======== -->
<A NAME="nested_class_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Nested Class Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;interface</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/enhance/PCEnhancer.AuxiliaryEnhancer.html" title="interface in org.apache.openjpa.enhance">PCEnhancer.AuxiliaryEnhancer</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Plugin interface for additional enhancement.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;class</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/enhance/PCEnhancer.Flags.html" title="class in org.apache.openjpa.enhance">PCEnhancer.Flags</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Run flags.</TD>
</TR>
</TABLE>
&nbsp;<!-- =========== FIELD SUMMARY =========== -->
<A NAME="field_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Field Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>(package private) &nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/enhance/PCEnhancer.html#_addVersionInitFlag">_addVersionInitFlag</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/enhance/PCEnhancer.html#ENHANCE_AWARE">ENHANCE_AWARE</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/enhance/PCEnhancer.html#ENHANCE_INTERFACE">ENHANCE_INTERFACE</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/enhance/PCEnhancer.html#ENHANCE_NONE">ENHANCE_NONE</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/enhance/PCEnhancer.html#ENHANCE_PC">ENHANCE_PC</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/enhance/PCEnhancer.html#ENHANCER_VERSION">ENHANCER_VERSION</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/enhance/PCEnhancer.html#ISDETACHEDSTATEDEFINITIVE">ISDETACHEDSTATEDEFINITIVE</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/enhance/PCEnhancer.html#PRE">PRE</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<A NAME="constructor_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Constructor Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/enhance/PCEnhancer.html#PCEnhancer(org.apache.openjpa.meta.MetaDataRepository, serp.bytecode.BCClass, org.apache.openjpa.meta.ClassMetaData)">PCEnhancer</A></B>(<A HREF="../../../../org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>&nbsp;repos,
serp.bytecode.BCClass&nbsp;type,
<A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>&nbsp;meta)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructor.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/enhance/PCEnhancer.html#PCEnhancer(org.apache.openjpa.conf.OpenJPAConfiguration, serp.bytecode.BCClass, org.apache.openjpa.meta.ClassMetaData)">PCEnhancer</A></B>(<A HREF="../../../../org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>&nbsp;conf,
serp.bytecode.BCClass&nbsp;type,
<A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>&nbsp;meta)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructor.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/enhance/PCEnhancer.html#PCEnhancer(org.apache.openjpa.conf.OpenJPAConfiguration, serp.bytecode.BCClass, org.apache.openjpa.meta.MetaDataRepository)">PCEnhancer</A></B>(<A HREF="../../../../org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>&nbsp;conf,
serp.bytecode.BCClass&nbsp;type,
<A HREF="../../../../org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>&nbsp;repos)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;<I>use <A HREF="../../../../org/apache/openjpa/enhance/PCEnhancer.html#PCEnhancer(org.apache.openjpa.conf.OpenJPAConfiguration, serp.bytecode.BCClass, org.apache.openjpa.meta.MetaDataRepository, java.lang.ClassLoader)"><CODE>PCEnhancer(OpenJPAConfiguration, BCClass,
MetaDataRepository, ClassLoader)</CODE></A> instead.</I></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/enhance/PCEnhancer.html#PCEnhancer(org.apache.openjpa.conf.OpenJPAConfiguration, serp.bytecode.BCClass, org.apache.openjpa.meta.MetaDataRepository, java.lang.ClassLoader)">PCEnhancer</A></B>(<A HREF="../../../../org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>&nbsp;conf,
serp.bytecode.BCClass&nbsp;type,
<A HREF="../../../../org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>&nbsp;repos,
<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/ClassLoader.html" title="class or interface in java.lang">ClassLoader</A>&nbsp;loader)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructor.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/enhance/PCEnhancer.html#PCEnhancer(org.apache.openjpa.conf.OpenJPAConfiguration, java.lang.Class)">PCEnhancer</A></B>(<A HREF="../../../../org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>&nbsp;conf,
<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html" title="class or interface in java.lang">Class</A>&nbsp;type)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructor.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/enhance/PCEnhancer.html#PCEnhancer(org.apache.openjpa.conf.OpenJPAConfiguration, org.apache.openjpa.meta.ClassMetaData)">PCEnhancer</A></B>(<A HREF="../../../../org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>&nbsp;conf,
<A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>&nbsp;meta)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructor.</TD>
</TR>
</TABLE>
&nbsp;
<!-- ========== METHOD SUMMARY =========== -->
<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Method Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/enhance/PCEnhancer.html#getAddDefaultConstructor()">getAddDefaultConstructor</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A boolean indicating whether the enhancer should add a no-args
constructor if one is not already present in the class.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>(package private) static&nbsp;serp.bytecode.BCField</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/enhance/PCEnhancer.html#getAssignedField(serp.bytecode.BCMethod)">getAssignedField</A></B>(serp.bytecode.BCMethod&nbsp;meth)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the field assigned in the given method, or null if none.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/openjpa/enhance/PCEnhancer.AuxiliaryEnhancer.html" title="interface in org.apache.openjpa.enhance">PCEnhancer.AuxiliaryEnhancer</A>[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/enhance/PCEnhancer.html#getAuxiliaryEnhancers()">getAuxiliaryEnhancers</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets the auxiliary enhancers registered as <A HREF="../../../../org/apache/openjpa/lib/util/Services.html" title="class in org.apache.openjpa.lib.util"><CODE>services</CODE></A>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/openjpa/lib/util/BytecodeWriter.html" title="interface in org.apache.openjpa.lib.util">BytecodeWriter</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/enhance/PCEnhancer.html#getBytecodeWriter()">getBytecodeWriter</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the current <A HREF="../../../../org/apache/openjpa/lib/util/BytecodeWriter.html" title="interface in org.apache.openjpa.lib.util"><CODE>BytecodeWriter</CODE></A> to write to or null if none.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/enhance/PCEnhancer.html#getCreateSubclass()">getCreateSubclass</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Whether the enhancer should make its arguments persistence-capable,
or generate a persistence-capable subclass.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/io/File.html" title="class or interface in java.io">File</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/enhance/PCEnhancer.html#getDirectory()">getDirectory</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The base build directory to generate code to.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/enhance/PCEnhancer.html#getEnforcePropertyRestrictions()">getEnforcePropertyRestrictions</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Whether to fail if the persistent type uses property access and
bytecode analysis shows that it may be violating OpenJPA's property
access restrictions.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;serp.bytecode.BCClass</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/enhance/PCEnhancer.html#getManagedTypeBytecode()">getManagedTypeBytecode</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the bytecode representation of the managed class being
manipulated.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/enhance/PCEnhancer.html#getMetaData()">getMetaData</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the metadata for the class being manipulated, or null if not
a persistent type.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;serp.bytecode.BCClass</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/enhance/PCEnhancer.html#getPCBytecode()">getPCBytecode</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the bytecode representation of the persistence-capable class
being manipulated.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/enhance/PCEnhancer.html#getRedefine()">getRedefine</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Whether the enhancer should mutate its arguments, or just run validation
and optional subclassing logic on them.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>(package private) static&nbsp;serp.bytecode.BCField</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/enhance/PCEnhancer.html#getReturnedField(serp.bytecode.BCMethod)">getReturnedField</A></B>(serp.bytecode.BCMethod&nbsp;meth)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the field returned by the given method, or null if none.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html" title="class or interface in java.lang">Class</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/enhance/PCEnhancer.html#getType(org.apache.openjpa.meta.ClassMetaData)">getType</A></B>(<A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>&nbsp;meta)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the concrete type for the given class, i.e.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/enhance/PCEnhancer.html#isAlreadyRedefined()">isAlreadyRedefined</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Whether the type that this instance is enhancing has already been
redefined.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/enhance/PCEnhancer.html#isAlreadySubclassed()">isAlreadySubclassed</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Whether the type that this instance is enhancing has already been
subclassed in this instance's environment classloader.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/enhance/PCEnhancer.html#isPCSubclassName(java.lang.String)">isPCSubclassName</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;className)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Whether or not <code>className</code> is the name for a
dynamically-created persistence-capable subclass.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/enhance/PCEnhancer.html#main(java.lang.String[])">main</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>[]&nbsp;args)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Usage: java org.apache.openjpa.enhance.PCEnhancer [option]*
&lt;class name | .java file | .class file | .jdo file&gt;+
Where the following options are recognized.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/enhance/PCEnhancer.html#record()">record</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Write the generated bytecode.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/enhance/PCEnhancer.html#run()">run</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Perform bytecode enhancements.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/enhance/PCEnhancer.html#run(org.apache.openjpa.conf.OpenJPAConfiguration, java.lang.String[], org.apache.openjpa.lib.util.Options)">run</A></B>(<A HREF="../../../../org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>&nbsp;conf,
<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>[]&nbsp;args,
<A HREF="../../../../org/apache/openjpa/lib/util/Options.html" title="class in org.apache.openjpa.lib.util">Options</A>&nbsp;opts)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Run the tool.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/enhance/PCEnhancer.html#run(org.apache.openjpa.conf.OpenJPAConfiguration, java.lang.String[], org.apache.openjpa.enhance.PCEnhancer.Flags, org.apache.openjpa.meta.MetaDataRepository, org.apache.openjpa.lib.util.BytecodeWriter, java.lang.ClassLoader)">run</A></B>(<A HREF="../../../../org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>&nbsp;conf,
<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>[]&nbsp;args,
<A HREF="../../../../org/apache/openjpa/enhance/PCEnhancer.Flags.html" title="class in org.apache.openjpa.enhance">PCEnhancer.Flags</A>&nbsp;flags,
<A HREF="../../../../org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>&nbsp;repos,
<A HREF="../../../../org/apache/openjpa/lib/util/BytecodeWriter.html" title="interface in org.apache.openjpa.lib.util">BytecodeWriter</A>&nbsp;writer,
<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/ClassLoader.html" title="class or interface in java.lang">ClassLoader</A>&nbsp;loader)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Enhance the given classes.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/enhance/PCEnhancer.html#run(java.lang.String[], org.apache.openjpa.lib.util.Options)">run</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>[]&nbsp;args,
<A HREF="../../../../org/apache/openjpa/lib/util/Options.html" title="class in org.apache.openjpa.lib.util">Options</A>&nbsp;opts)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Run the tool.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/enhance/PCEnhancer.html#setAddDefaultConstructor(boolean)">setAddDefaultConstructor</A></B>(boolean&nbsp;addDefaultConstructor)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A boolean indicating whether the enhancer should add a no-args
constructor if one is not already present in the class.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/enhance/PCEnhancer.html#setBytecodeWriter(org.apache.openjpa.lib.util.BytecodeWriter)">setBytecodeWriter</A></B>(<A HREF="../../../../org/apache/openjpa/lib/util/BytecodeWriter.html" title="interface in org.apache.openjpa.lib.util">BytecodeWriter</A>&nbsp;writer)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the <A HREF="../../../../org/apache/openjpa/lib/util/BytecodeWriter.html" title="interface in org.apache.openjpa.lib.util"><CODE>BytecodeWriter</CODE></A> to write the bytecode to or null if none.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/enhance/PCEnhancer.html#setCreateSubclass(boolean)">setCreateSubclass</A></B>(boolean&nbsp;subclass)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Whether the enhancer should make its arguments persistence-capable,
or generate a persistence-capable subclass.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/enhance/PCEnhancer.html#setDirectory(java.io.File)">setDirectory</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/io/File.html" title="class or interface in java.io">File</A>&nbsp;dir)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The base build directory to generate code to.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/enhance/PCEnhancer.html#setEnforcePropertyRestrictions(boolean)">setEnforcePropertyRestrictions</A></B>(boolean&nbsp;fail)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Whether to fail if the persistent type uses property access and
bytecode analysis shows that it may be violating OpenJPA's property
access restrictions.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/enhance/PCEnhancer.html#setRedefine(boolean)">setRedefine</A></B>(boolean&nbsp;redefine)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Whether the enhancer should mutate its arguments, or just run validation
and optional subclassing logic on them.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/enhance/PCEnhancer.html#toManagedTypeName(java.lang.String)">toManagedTypeName</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;className)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If <code>className</code> is a dynamically-created persistence-capable
subclass name, returns the name of the class that it subclasses.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>(package private) static&nbsp;<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/enhance/PCEnhancer.html#toPCSubclassName(java.lang.Class)">toPCSubclassName</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html" title="class or interface in java.lang">Class</A>&nbsp;cls)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>
<!-- ============ FIELD DETAIL =========== -->
<A NAME="field_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Field Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="ENHANCER_VERSION"><!-- --></A><H3>
ENHANCER_VERSION</H3>
<PRE>
public static final int <B>ENHANCER_VERSION</B></PRE>
<DL>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.apache.openjpa.enhance.PCEnhancer.ENHANCER_VERSION">Constant Field Values</A></DL>
</DL>
<HR>
<A NAME="_addVersionInitFlag"><!-- --></A><H3>
_addVersionInitFlag</H3>
<PRE>
boolean <B>_addVersionInitFlag</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>
<A NAME="ENHANCE_NONE"><!-- --></A><H3>
ENHANCE_NONE</H3>
<PRE>
public static final int <B>ENHANCE_NONE</B></PRE>
<DL>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.apache.openjpa.enhance.PCEnhancer.ENHANCE_NONE">Constant Field Values</A></DL>
</DL>
<HR>
<A NAME="ENHANCE_AWARE"><!-- --></A><H3>
ENHANCE_AWARE</H3>
<PRE>
public static final int <B>ENHANCE_AWARE</B></PRE>
<DL>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.apache.openjpa.enhance.PCEnhancer.ENHANCE_AWARE">Constant Field Values</A></DL>
</DL>
<HR>
<A NAME="ENHANCE_INTERFACE"><!-- --></A><H3>
ENHANCE_INTERFACE</H3>
<PRE>
public static final int <B>ENHANCE_INTERFACE</B></PRE>
<DL>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.apache.openjpa.enhance.PCEnhancer.ENHANCE_INTERFACE">Constant Field Values</A></DL>
</DL>
<HR>
<A NAME="ENHANCE_PC"><!-- --></A><H3>
ENHANCE_PC</H3>
<PRE>
public static final int <B>ENHANCE_PC</B></PRE>
<DL>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.apache.openjpa.enhance.PCEnhancer.ENHANCE_PC">Constant Field Values</A></DL>
</DL>
<HR>
<A NAME="PRE"><!-- --></A><H3>
PRE</H3>
<PRE>
public static final <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A> <B>PRE</B></PRE>
<DL>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.apache.openjpa.enhance.PCEnhancer.PRE">Constant Field Values</A></DL>
</DL>
<HR>
<A NAME="ISDETACHEDSTATEDEFINITIVE"><!-- --></A><H3>
ISDETACHEDSTATEDEFINITIVE</H3>
<PRE>
public static final <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A> <B>ISDETACHEDSTATEDEFINITIVE</B></PRE>
<DL>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.apache.openjpa.enhance.PCEnhancer.ISDETACHEDSTATEDEFINITIVE">Constant Field Values</A></DL>
</DL>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<A NAME="constructor_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Constructor Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="PCEnhancer(org.apache.openjpa.conf.OpenJPAConfiguration, java.lang.Class)"><!-- --></A><H3>
PCEnhancer</H3>
<PRE>
public <B>PCEnhancer</B>(<A HREF="../../../../org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>&nbsp;conf,
<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html" title="class or interface in java.lang">Class</A>&nbsp;type)</PRE>
<DL>
<DD>Constructor. Supply configuration and type to enhance. This will look
up the metadata for <code>type</code> from <code>conf</code>'s
repository.
<P>
</DL>
<HR>
<A NAME="PCEnhancer(org.apache.openjpa.conf.OpenJPAConfiguration, org.apache.openjpa.meta.ClassMetaData)"><!-- --></A><H3>
PCEnhancer</H3>
<PRE>
public <B>PCEnhancer</B>(<A HREF="../../../../org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>&nbsp;conf,
<A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>&nbsp;meta)</PRE>
<DL>
<DD>Constructor. Supply configuration and type to enhance. This will look
up the metadata for <code>meta</code> by converting back to a class
and then loading from <code>conf</code>'s repository.
<P>
</DL>
<HR>
<A NAME="PCEnhancer(org.apache.openjpa.conf.OpenJPAConfiguration, serp.bytecode.BCClass, org.apache.openjpa.meta.MetaDataRepository)"><!-- --></A><H3>
PCEnhancer</H3>
<PRE>
public <B>PCEnhancer</B>(<A HREF="../../../../org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>&nbsp;conf,
serp.bytecode.BCClass&nbsp;type,
<A HREF="../../../../org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>&nbsp;repos)</PRE>
<DL>
<DD><B>Deprecated.</B>&nbsp;<I>use <A HREF="../../../../org/apache/openjpa/enhance/PCEnhancer.html#PCEnhancer(org.apache.openjpa.conf.OpenJPAConfiguration, serp.bytecode.BCClass, org.apache.openjpa.meta.MetaDataRepository, java.lang.ClassLoader)"><CODE>PCEnhancer(OpenJPAConfiguration, BCClass,
MetaDataRepository, ClassLoader)</CODE></A> instead.</I>
<P>
<DD>Constructor. Supply configuration.
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>type</CODE> - the bytecode representation fo the type to
enhance; this can be created from any stream or file<DD><CODE>repos</CODE> - a metadata repository to use for metadata access,
or null to create a new reporitory; the repository
from the given configuration isn't used by default
because the configuration might be an
implementation-specific subclass whose metadata
required more than just base metadata files</DL>
</DL>
<HR>
<A NAME="PCEnhancer(org.apache.openjpa.conf.OpenJPAConfiguration, serp.bytecode.BCClass, org.apache.openjpa.meta.MetaDataRepository, java.lang.ClassLoader)"><!-- --></A><H3>
PCEnhancer</H3>
<PRE>
public <B>PCEnhancer</B>(<A HREF="../../../../org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>&nbsp;conf,
serp.bytecode.BCClass&nbsp;type,
<A HREF="../../../../org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>&nbsp;repos,
<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/ClassLoader.html" title="class or interface in java.lang">ClassLoader</A>&nbsp;loader)</PRE>
<DL>
<DD>Constructor. Supply configuration.
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>type</CODE> - the bytecode representation fo the type to
enhance; this can be created from any stream or file<DD><CODE>repos</CODE> - a metadata repository to use for metadata access,
or null to create a new reporitory; the repository
from the given configuration isn't used by default
because the configuration might be an
implementation-specific subclass whose metadata
required more than just base metadata files<DD><CODE>loader</CODE> - the environment classloader to use for loading
classes and resources.</DL>
</DL>
<HR>
<A NAME="PCEnhancer(org.apache.openjpa.meta.MetaDataRepository, serp.bytecode.BCClass, org.apache.openjpa.meta.ClassMetaData)"><!-- --></A><H3>
PCEnhancer</H3>
<PRE>
public <B>PCEnhancer</B>(<A HREF="../../../../org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>&nbsp;repos,
serp.bytecode.BCClass&nbsp;type,
<A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>&nbsp;meta)</PRE>
<DL>
<DD>Constructor. Supply repository. The repository's configuration will
be used, and the metadata passed in will be used as-is without doing
any additional lookups. This is useful when running the enhancer
during metadata load.
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>repos</CODE> - a metadata repository to use for metadata access,
or null to create a new reporitory; the repository
from the given configuration isn't used by default
because the configuration might be an
implementation-specific subclass whose metadata
required more than just base metadata files<DD><CODE>type</CODE> - the bytecode representation fo the type to
enhance; this can be created from any stream or file<DD><CODE>meta</CODE> - the metadata to use for processing this type.<DT><B>Since:</B></DT>
<DD>1.1.0</DD>
</DL>
</DL>
<HR>
<A NAME="PCEnhancer(org.apache.openjpa.conf.OpenJPAConfiguration, serp.bytecode.BCClass, org.apache.openjpa.meta.ClassMetaData)"><!-- --></A><H3>
PCEnhancer</H3>
<PRE>
public <B>PCEnhancer</B>(<A HREF="../../../../org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>&nbsp;conf,
serp.bytecode.BCClass&nbsp;type,
<A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>&nbsp;meta)</PRE>
<DL>
<DD>Constructor. Supply configuration, type, and metadata.
<P>
</DL>
<!-- ============ METHOD DETAIL ========== -->
<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Method Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="toPCSubclassName(java.lang.Class)"><!-- --></A><H3>
toPCSubclassName</H3>
<PRE>
static <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A> <B>toPCSubclassName</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html" title="class or interface in java.lang">Class</A>&nbsp;cls)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="isPCSubclassName(java.lang.String)"><!-- --></A><H3>
isPCSubclassName</H3>
<PRE>
public static boolean <B>isPCSubclassName</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;className)</PRE>
<DL>
<DD>Whether or not <code>className</code> is the name for a
dynamically-created persistence-capable subclass.
<P>
<DD><DL>
<DT><B>Since:</B></DT>
<DD>1.1.0</DD>
</DL>
</DD>
</DL>
<HR>
<A NAME="toManagedTypeName(java.lang.String)"><!-- --></A><H3>
toManagedTypeName</H3>
<PRE>
public static <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A> <B>toManagedTypeName</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;className)</PRE>
<DL>
<DD>If <code>className</code> is a dynamically-created persistence-capable
subclass name, returns the name of the class that it subclasses.
Otherwise, returns <code>className</code>.
<P>
<DD><DL>
<DT><B>Since:</B></DT>
<DD>1.1.0</DD>
</DL>
</DD>
</DL>
<HR>
<A NAME="getPCBytecode()"><!-- --></A><H3>
getPCBytecode</H3>
<PRE>
public serp.bytecode.BCClass <B>getPCBytecode</B>()</PRE>
<DL>
<DD>Return the bytecode representation of the persistence-capable class
being manipulated.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getManagedTypeBytecode()"><!-- --></A><H3>
getManagedTypeBytecode</H3>
<PRE>
public serp.bytecode.BCClass <B>getManagedTypeBytecode</B>()</PRE>
<DL>
<DD>Return the bytecode representation of the managed class being
manipulated. This is usually the same as <A HREF="../../../../org/apache/openjpa/enhance/PCEnhancer.html#getPCBytecode()"><CODE>getPCBytecode()</CODE></A>,
except when running the enhancer to redefine and subclass
existing persistent types.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getMetaData()"><!-- --></A><H3>
getMetaData</H3>
<PRE>
public <A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A> <B>getMetaData</B>()</PRE>
<DL>
<DD>Return the metadata for the class being manipulated, or null if not
a persistent type.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getAddDefaultConstructor()"><!-- --></A><H3>
getAddDefaultConstructor</H3>
<PRE>
public boolean <B>getAddDefaultConstructor</B>()</PRE>
<DL>
<DD>A boolean indicating whether the enhancer should add a no-args
constructor if one is not already present in the class. OpenJPA
requires that a no-arg constructor (whether created by the compiler
or by the user) be present in a PC.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="setAddDefaultConstructor(boolean)"><!-- --></A><H3>
setAddDefaultConstructor</H3>
<PRE>
public void <B>setAddDefaultConstructor</B>(boolean&nbsp;addDefaultConstructor)</PRE>
<DL>
<DD>A boolean indicating whether the enhancer should add a no-args
constructor if one is not already present in the class. OpenJPA
requires that a no-arg constructor (whether created by the compiler
or by the user) be present in a PC.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getRedefine()"><!-- --></A><H3>
getRedefine</H3>
<PRE>
public boolean <B>getRedefine</B>()</PRE>
<DL>
<DD>Whether the enhancer should mutate its arguments, or just run validation
and optional subclassing logic on them. Usually used in conjunction with
<code>setCreateSubclass(true)</code>.
<P>
<DD><DL>
<DT><B>Since:</B></DT>
<DD>1.0.0</DD>
</DL>
</DD>
</DL>
<HR>
<A NAME="setRedefine(boolean)"><!-- --></A><H3>
setRedefine</H3>
<PRE>
public void <B>setRedefine</B>(boolean&nbsp;redefine)</PRE>
<DL>
<DD>Whether the enhancer should mutate its arguments, or just run validation
and optional subclassing logic on them. Usually used in conjunction with
<code>setCreateSubclass(true)</code>.
<P>
<DD><DL>
<DT><B>Since:</B></DT>
<DD>1.0.0</DD>
</DL>
</DD>
</DL>
<HR>
<A NAME="isAlreadyRedefined()"><!-- --></A><H3>
isAlreadyRedefined</H3>
<PRE>
public boolean <B>isAlreadyRedefined</B>()</PRE>
<DL>
<DD>Whether the type that this instance is enhancing has already been
redefined.
<P>
<DD><DL>
<DT><B>Since:</B></DT>
<DD>1.0.0</DD>
</DL>
</DD>
</DL>
<HR>
<A NAME="isAlreadySubclassed()"><!-- --></A><H3>
isAlreadySubclassed</H3>
<PRE>
public boolean <B>isAlreadySubclassed</B>()</PRE>
<DL>
<DD>Whether the type that this instance is enhancing has already been
subclassed in this instance's environment classloader.
<P>
<DD><DL>
<DT><B>Since:</B></DT>
<DD>1.0.0</DD>
</DL>
</DD>
</DL>
<HR>
<A NAME="getCreateSubclass()"><!-- --></A><H3>
getCreateSubclass</H3>
<PRE>
public boolean <B>getCreateSubclass</B>()</PRE>
<DL>
<DD>Whether the enhancer should make its arguments persistence-capable,
or generate a persistence-capable subclass.
<P>
<DD><DL>
<DT><B>Since:</B></DT>
<DD>1.0.0</DD>
</DL>
</DD>
</DL>
<HR>
<A NAME="setCreateSubclass(boolean)"><!-- --></A><H3>
setCreateSubclass</H3>
<PRE>
public void <B>setCreateSubclass</B>(boolean&nbsp;subclass)</PRE>
<DL>
<DD>Whether the enhancer should make its arguments persistence-capable,
or generate a persistence-capable subclass.
<P>
<DD><DL>
<DT><B>Since:</B></DT>
<DD>1.0.0</DD>
</DL>
</DD>
</DL>
<HR>
<A NAME="getEnforcePropertyRestrictions()"><!-- --></A><H3>
getEnforcePropertyRestrictions</H3>
<PRE>
public boolean <B>getEnforcePropertyRestrictions</B>()</PRE>
<DL>
<DD>Whether to fail if the persistent type uses property access and
bytecode analysis shows that it may be violating OpenJPA's property
access restrictions.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="setEnforcePropertyRestrictions(boolean)"><!-- --></A><H3>
setEnforcePropertyRestrictions</H3>
<PRE>
public void <B>setEnforcePropertyRestrictions</B>(boolean&nbsp;fail)</PRE>
<DL>
<DD>Whether to fail if the persistent type uses property access and
bytecode analysis shows that it may be violating OpenJPA's property
access restrictions.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getDirectory()"><!-- --></A><H3>
getDirectory</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/io/File.html" title="class or interface in java.io">File</A> <B>getDirectory</B>()</PRE>
<DL>
<DD>The base build directory to generate code to. The proper package
structure will be created beneath this directory. Defaults to
overwriting the existing class file if null.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="setDirectory(java.io.File)"><!-- --></A><H3>
setDirectory</H3>
<PRE>
public void <B>setDirectory</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/io/File.html" title="class or interface in java.io">File</A>&nbsp;dir)</PRE>
<DL>
<DD>The base build directory to generate code to. The proper package
structure will be creaed beneath this directory. Defaults to
overwriting the existing class file if null.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getBytecodeWriter()"><!-- --></A><H3>
getBytecodeWriter</H3>
<PRE>
public <A HREF="../../../../org/apache/openjpa/lib/util/BytecodeWriter.html" title="interface in org.apache.openjpa.lib.util">BytecodeWriter</A> <B>getBytecodeWriter</B>()</PRE>
<DL>
<DD>Return the current <A HREF="../../../../org/apache/openjpa/lib/util/BytecodeWriter.html" title="interface in org.apache.openjpa.lib.util"><CODE>BytecodeWriter</CODE></A> to write to or null if none.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="setBytecodeWriter(org.apache.openjpa.lib.util.BytecodeWriter)"><!-- --></A><H3>
setBytecodeWriter</H3>
<PRE>
public void <B>setBytecodeWriter</B>(<A HREF="../../../../org/apache/openjpa/lib/util/BytecodeWriter.html" title="interface in org.apache.openjpa.lib.util">BytecodeWriter</A>&nbsp;writer)</PRE>
<DL>
<DD>Set the <A HREF="../../../../org/apache/openjpa/lib/util/BytecodeWriter.html" title="interface in org.apache.openjpa.lib.util"><CODE>BytecodeWriter</CODE></A> to write the bytecode to or null if none.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="run()"><!-- --></A><H3>
run</H3>
<PRE>
public int <B>run</B>()</PRE>
<DL>
<DD>Perform bytecode enhancements.
<P>
<DD><DL>
<DT><B>Returns:</B><DD><code>ENHANCE_*</code> constant</DL>
</DD>
</DL>
<HR>
<A NAME="record()"><!-- --></A><H3>
record</H3>
<PRE>
public void <B>record</B>()
throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/io/IOException.html" title="class or interface in java.io">IOException</A></PRE>
<DL>
<DD>Write the generated bytecode.
<P>
<DD><DL>
<DT><B>Throws:</B>
<DD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/io/IOException.html" title="class or interface in java.io">IOException</A></CODE></DL>
</DD>
</DL>
<HR>
<A NAME="getReturnedField(serp.bytecode.BCMethod)"><!-- --></A><H3>
getReturnedField</H3>
<PRE>
static serp.bytecode.BCField <B>getReturnedField</B>(serp.bytecode.BCMethod&nbsp;meth)</PRE>
<DL>
<DD>Return the field returned by the given method, or null if none.
Package-protected and static for testing.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getAssignedField(serp.bytecode.BCMethod)"><!-- --></A><H3>
getAssignedField</H3>
<PRE>
static serp.bytecode.BCField <B>getAssignedField</B>(serp.bytecode.BCMethod&nbsp;meth)</PRE>
<DL>
<DD>Return the field assigned in the given method, or null if none.
Package-protected and static for testing.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getAuxiliaryEnhancers()"><!-- --></A><H3>
getAuxiliaryEnhancers</H3>
<PRE>
public <A HREF="../../../../org/apache/openjpa/enhance/PCEnhancer.AuxiliaryEnhancer.html" title="interface in org.apache.openjpa.enhance">PCEnhancer.AuxiliaryEnhancer</A>[] <B>getAuxiliaryEnhancers</B>()</PRE>
<DL>
<DD>Gets the auxiliary enhancers registered as <A HREF="../../../../org/apache/openjpa/lib/util/Services.html" title="class in org.apache.openjpa.lib.util"><CODE>services</CODE></A>.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getType(org.apache.openjpa.meta.ClassMetaData)"><!-- --></A><H3>
getType</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html" title="class or interface in java.lang">Class</A> <B>getType</B>(<A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>&nbsp;meta)</PRE>
<DL>
<DD>Return the concrete type for the given class, i.e. impl for managed
interfaces
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="main(java.lang.String[])"><!-- --></A><H3>
main</H3>
<PRE>
public static void <B>main</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>[]&nbsp;args)</PRE>
<DL>
<DD>Usage: java org.apache.openjpa.enhance.PCEnhancer [option]*
&lt;class name | .java file | .class file | .jdo file&gt;+
Where the following options are recognized.
<ul>
<li><i>-properties/-p &lt;properties file&gt;</i>: The path to a OpenJPA
properties file containing information as outlined in
<CODE>Configuration</CODE>; optional.</li>
<li><i>-&lt;property name&gt; &lt;property value&gt;</i>: All bean
properties of the standard OpenJPA <A HREF="../../../../org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf"><CODE>OpenJPAConfiguration</CODE></A> can be
set by using their names and supplying a value; for example:
<li><i>-directory/-d &lt;build directory&gt;</i>: The path to the base
directory where enhanced classes are stored. By default, the
enhancer overwrites the original .class file with the enhanced
version. Use this option to store the generated .class file in
another directory. The package structure will be created beneath
the given directory.</li>
<li><i>-addDefaultConstructor/-adc [true/t | false/f]</i>: Whether to
add a default constructor to persistent classes missing one, as
opposed to throwing an exception. Defaults to true.</li>
<li><i>-tmpClassLoader/-tcl [true/t | false/f]</i>: Whether to
load the pre-enhanced classes using a temporary class loader.
Defaults to true. Set this to false when attempting to debug
class loading errors.</li>
<li><i>-enforcePropertyRestrictions/-epr [true/t | false/f]</i>:
Whether to throw an exception if a PROPERTY access entity appears
to be violating standard property restrictions. Defaults to false.</li>
</ul>
Each additional argument can be either the full class name of the
type to enhance, the path to the .java file for the type, the path to
the .class file for the type, or the path to a .jdo file listing one
or more types to enhance.
If the type being enhanced has metadata, it will be enhanced as a
persistence capable class. If not, it will be considered a persistence
aware class, and all access to fields of persistence capable classes
will be replaced by the appropriate get/set method. If the type
explicitly declares the persistence-capable interface, it will
not be enhanced. Thus, it is safe to invoke the enhancer on classes
that are already enhanced.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="run(java.lang.String[], org.apache.openjpa.lib.util.Options)"><!-- --></A><H3>
run</H3>
<PRE>
public static boolean <B>run</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>[]&nbsp;args,
<A HREF="../../../../org/apache/openjpa/lib/util/Options.html" title="class in org.apache.openjpa.lib.util">Options</A>&nbsp;opts)</PRE>
<DL>
<DD>Run the tool. Returns false if invalid options given. Runs against all
the persistence units defined in the resource to parse.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="run(org.apache.openjpa.conf.OpenJPAConfiguration, java.lang.String[], org.apache.openjpa.lib.util.Options)"><!-- --></A><H3>
run</H3>
<PRE>
public static boolean <B>run</B>(<A HREF="../../../../org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>&nbsp;conf,
<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>[]&nbsp;args,
<A HREF="../../../../org/apache/openjpa/lib/util/Options.html" title="class in org.apache.openjpa.lib.util">Options</A>&nbsp;opts)
throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/io/IOException.html" title="class or interface in java.io">IOException</A></PRE>
<DL>
<DD>Run the tool. Returns false if invalid options given.
<P>
<DD><DL>
<DT><B>Throws:</B>
<DD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/io/IOException.html" title="class or interface in java.io">IOException</A></CODE></DL>
</DD>
</DL>
<HR>
<A NAME="run(org.apache.openjpa.conf.OpenJPAConfiguration, java.lang.String[], org.apache.openjpa.enhance.PCEnhancer.Flags, org.apache.openjpa.meta.MetaDataRepository, org.apache.openjpa.lib.util.BytecodeWriter, java.lang.ClassLoader)"><!-- --></A><H3>
run</H3>
<PRE>
public static boolean <B>run</B>(<A HREF="../../../../org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</A>&nbsp;conf,
<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>[]&nbsp;args,
<A HREF="../../../../org/apache/openjpa/enhance/PCEnhancer.Flags.html" title="class in org.apache.openjpa.enhance">PCEnhancer.Flags</A>&nbsp;flags,
<A HREF="../../../../org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A>&nbsp;repos,
<A HREF="../../../../org/apache/openjpa/lib/util/BytecodeWriter.html" title="interface in org.apache.openjpa.lib.util">BytecodeWriter</A>&nbsp;writer,
<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/ClassLoader.html" title="class or interface in java.lang">ClassLoader</A>&nbsp;loader)
throws <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/io/IOException.html" title="class or interface in java.io">IOException</A></PRE>
<DL>
<DD>Enhance the given classes.
<P>
<DD><DL>
<DT><B>Throws:</B>
<DD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/io/IOException.html" title="class or interface in java.io">IOException</A></CODE></DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<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="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/PCEnhancer.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/enhance/PCDataGenerator.DynamicPCData.html" title="interface in org.apache.openjpa.enhance"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../org/apache/openjpa/enhance/PCEnhancer.AuxiliaryEnhancer.html" title="interface in org.apache.openjpa.enhance"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../index.html?org/apache/openjpa/enhance/PCEnhancer.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="PCEnhancer.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>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<HR>
Copyright &#169; 2006-2013 <a href="http://www.apache.org">Apache Software Foundation</a>. All Rights Reserved.
</BODY>
</HTML>