<!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.6.0_21) on Wed Aug 25 21:59:34 EDT 2010 -->
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>
PCEnhancer (OpenJPA Parent POM 2.0.1 API)
</TITLE>

<META NAME="date" CONTENT="2010-08-25">

<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">

<SCRIPT type="text/javascript">
function windowTitle()
{
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="PCEnhancer (OpenJPA Parent POM 2.0.1 API)";
    }
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>

</HEAD>

<BODY BGCOLOR="white" onload="windowTitle();">
<HR>


<!-- ========= 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?is-external=true" 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?is-external=true" 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?is-external=true" 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?is-external=true" 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?is-external=true" 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?is-external=true" 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?is-external=true" 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?is-external=true" 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>(package private) &nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/enhance/PCEnhancer.html#isFieldAccess(org.apache.openjpa.meta.FieldMetaData)">isFieldAccess</A></B>(<A HREF="../../../../org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>&nbsp;fmd)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Affirms if the given field is using method-based access.</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?is-external=true" 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>(package private) &nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/enhance/PCEnhancer.html#isPropertyAccess(org.apache.openjpa.meta.ClassMetaData)">isPropertyAccess</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;Affirms if the given class is using field-based access.</TD>
</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#isPropertyAccess(org.apache.openjpa.meta.FieldMetaData)">isPropertyAccess</A></B>(<A HREF="../../../../org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>&nbsp;fmd)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Affirms if the given field is using field-based access.</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?is-external=true" 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?is-external=true" 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?is-external=true" 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?is-external=true" 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?is-external=true" 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?is-external=true" 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?is-external=true" 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?is-external=true" 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?is-external=true" 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?is-external=true" 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?is-external=true" 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?is-external=true#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?is-external=true#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?is-external=true#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?is-external=true#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?is-external=true#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?is-external=true#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?is-external=true#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?is-external=true#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?is-external=true#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?is-external=true#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?is-external=true#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?is-external=true" 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?is-external=true" 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?is-external=true" 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?is-external=true" 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?is-external=true" 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?is-external=true" 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?is-external=true" 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?is-external=true" 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?is-external=true" 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?is-external=true" 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?is-external=true" 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?is-external=true" 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?is-external=true" 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="isPropertyAccess(org.apache.openjpa.meta.ClassMetaData)"><!-- --></A><H3>
isPropertyAccess</H3>
<PRE>
boolean <B>isPropertyAccess</B>(<A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>&nbsp;meta)</PRE>
<DL>
<DD>Affirms if the given class is using field-based access.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="isPropertyAccess(org.apache.openjpa.meta.FieldMetaData)"><!-- --></A><H3>
isPropertyAccess</H3>
<PRE>
boolean <B>isPropertyAccess</B>(<A HREF="../../../../org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>&nbsp;fmd)</PRE>
<DL>
<DD>Affirms if the given field is using field-based access.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="isFieldAccess(org.apache.openjpa.meta.FieldMetaData)"><!-- --></A><H3>
isFieldAccess</H3>
<PRE>
boolean <B>isFieldAccess</B>(<A HREF="../../../../org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>&nbsp;fmd)</PRE>
<DL>
<DD>Affirms if the given field is using method-based access.
<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?is-external=true" 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?is-external=true" 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?is-external=true" 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?is-external=true" 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?is-external=true" 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?is-external=true" 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?is-external=true" 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?is-external=true" 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?is-external=true" 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?is-external=true" 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-2010 <a href="http://www.apache.org">Apache Software Foundation</a>. All Rights Reserved.
</BODY>
</HTML>
