blob: a16af3b82f45c16a2fb969378226e27377a441b9 [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_09) on Fri Apr 20 10:10:40 CDT 2007 -->
<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<TITLE>
PCEnhancer (OpenJPA 0.9.7-incubating 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 0.9.7-incubating 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>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>
</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.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;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;type)</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>&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;serp.bytecode.BCClass</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/enhance/PCEnhancer.html#getBytecode()">getBytecode</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the bytecode representation of the 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/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;<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;<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;<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>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>&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#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>
</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="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>
<!-- ========= 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.
<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;type)</PRE>
<DL>
<DD>Constructor. Supply configuration and type to enhance.
<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>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.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="getBytecode()"><!-- --></A><H3>
getBytecode</H3>
<PRE>
public serp.bytecode.BCClass <B>getBytecode</B>()</PRE>
<DL>
<DD>Return the bytecode representation of the class being manipulated.
<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="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="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)
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>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
<A HREF="../../../../org/apache/openjpa/lib/conf/Configuration.html" title="interface in org.apache.openjpa.lib.conf"><CODE>Configuration</CODE></A>; 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>
<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.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 &copy; 2006-2007 <a href="http://www.apache.org">Apache Software Foundation</a>. All Rights Reserved.
</BODY>
</HTML>