blob: 3a1efdd157294bfccbe3131dbf67f2e0e95d2bfe [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="de">
<head>
<!-- Generated by javadoc (1.8.0_252) on Thu Sep 03 11:54:23 CEST 2020 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>PCEnhancer (OpenJPA Parent POM 3.1.2 API)</title>
<meta name="date" content="2020-09-03">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="PCEnhancer (OpenJPA Parent POM 3.1.2 API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":9,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":9,"i15":9,"i16":10,"i17":10,"i18":9,"i19":9,"i20":9,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/PCEnhancer.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/apache/openjpa/enhance/PCDataGenerator.DynamicPCData.html" title="interface in org.apache.openjpa.enhance"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/openjpa/enhance/PCEnhancer.AuxiliaryEnhancer.html" title="interface in org.apache.openjpa.enhance"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/openjpa/enhance/PCEnhancer.html" target="_top">Frames</a></li>
<li><a href="PCEnhancer.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.openjpa.enhance</div>
<h2 title="Class PCEnhancer" class="title">Class PCEnhancer</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>org.apache.openjpa.enhance.PCEnhancer</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public class <span class="typeNameLabel">PCEnhancer</span>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
<div class="block">Bytecode enhancer used to enhance persistent classes from metadata. The
enhancer must be invoked on all persistence-capable and persistence aware
classes.</div>
<dl>
<dt><span class="simpleTagLabel">Author:</span></dt>
<dd>Abe White</dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Class and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static interface&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/openjpa/enhance/PCEnhancer.AuxiliaryEnhancer.html" title="interface in org.apache.openjpa.enhance">PCEnhancer.AuxiliaryEnhancer</a></span></code>
<div class="block">Plugin interface for additional enhancement.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/openjpa/enhance/PCEnhancer.Flags.html" title="class in org.apache.openjpa.enhance">PCEnhancer.Flags</a></span></code>
<div class="block">Run flags.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/openjpa/enhance/PCEnhancer.html#ENHANCE_AWARE">ENHANCE_AWARE</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/openjpa/enhance/PCEnhancer.html#ENHANCE_INTERFACE">ENHANCE_INTERFACE</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/openjpa/enhance/PCEnhancer.html#ENHANCE_NONE">ENHANCE_NONE</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/openjpa/enhance/PCEnhancer.html#ENHANCE_PC">ENHANCE_PC</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/openjpa/enhance/PCEnhancer.html#ENHANCER_VERSION">ENHANCER_VERSION</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/openjpa/enhance/PCEnhancer.html#ISDETACHEDSTATEDEFINITIVE">ISDETACHEDSTATEDEFINITIVE</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/openjpa/enhance/PCEnhancer.html#PRE">PRE</a></span></code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/openjpa/enhance/PCEnhancer.html#PCEnhancer-org.apache.openjpa.meta.MetaDataRepository-serp.bytecode.BCClass-org.apache.openjpa.meta.ClassMetaData-">PCEnhancer</a></span>(<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>
<div class="block">Constructor.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/openjpa/enhance/PCEnhancer.html#PCEnhancer-org.apache.openjpa.conf.OpenJPAConfiguration-serp.bytecode.BCClass-org.apache.openjpa.meta.ClassMetaData-">PCEnhancer</a></span>(<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>
<div class="block">Constructor.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/openjpa/enhance/PCEnhancer.html#PCEnhancer-org.apache.openjpa.conf.OpenJPAConfiguration-serp.bytecode.BCClass-org.apache.openjpa.meta.MetaDataRepository-">PCEnhancer</a></span>(<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>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">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.</span></div>
</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><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></span>(<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="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;loader)</code>
<div class="block">Constructor.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/openjpa/enhance/PCEnhancer.html#PCEnhancer-org.apache.openjpa.conf.OpenJPAConfiguration-java.lang.Class-">PCEnhancer</a></span>(<a href="../../../../org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</a>&nbsp;conf,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&nbsp;type)</code>
<div class="block">Constructor.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/openjpa/enhance/PCEnhancer.html#PCEnhancer-org.apache.openjpa.conf.OpenJPAConfiguration-org.apache.openjpa.meta.ClassMetaData-">PCEnhancer</a></span>(<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>
<div class="block">Constructor.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/openjpa/enhance/PCEnhancer.html#checkEnhancementLevel-java.lang.Class-org.apache.openjpa.lib.log.Log-">checkEnhancementLevel</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;cls,
<a href="../../../../org/apache/openjpa/lib/log/Log.html" title="interface in org.apache.openjpa.lib.log">Log</a>&nbsp;log)</code>
<div class="block">This static public worker method detects and logs any Entities that may have been enhanced at build time by
a version of the enhancer that is older than the current version.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/openjpa/enhance/PCEnhancer.html#getAddDefaultConstructor--">getAddDefaultConstructor</a></span>()</code>
<div class="block">A boolean indicating whether the enhancer should add a no-args
constructor if one is not already present in the class.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/openjpa/enhance/PCEnhancer.AuxiliaryEnhancer.html" title="interface in org.apache.openjpa.enhance">PCEnhancer.AuxiliaryEnhancer</a>[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/openjpa/enhance/PCEnhancer.html#getAuxiliaryEnhancers--">getAuxiliaryEnhancers</a></span>()</code>
<div class="block">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>.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/apache/openjpa/lib/util/BytecodeWriter.html" title="interface in org.apache.openjpa.lib.util">BytecodeWriter</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/openjpa/enhance/PCEnhancer.html#getBytecodeWriter--">getBytecodeWriter</a></span>()</code>
<div class="block">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.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/openjpa/enhance/PCEnhancer.html#getCreateSubclass--">getCreateSubclass</a></span>()</code>
<div class="block">Whether the enhancer should make its arguments persistence-capable,
or generate a persistence-capable subclass.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io">File</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/openjpa/enhance/PCEnhancer.html#getDirectory--">getDirectory</a></span>()</code>
<div class="block">The base build directory to generate code to.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/openjpa/enhance/PCEnhancer.html#getEnforcePropertyRestrictions--">getEnforcePropertyRestrictions</a></span>()</code>
<div class="block">Whether to fail if the persistent type uses property access and
bytecode analysis shows that it may be violating OpenJPA's property
access restrictions.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>serp.bytecode.BCClass</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/openjpa/enhance/PCEnhancer.html#getManagedTypeBytecode--">getManagedTypeBytecode</a></span>()</code>
<div class="block">Return the bytecode representation of the managed class being
manipulated.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="../../../../org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/openjpa/enhance/PCEnhancer.html#getMetaData--">getMetaData</a></span>()</code>
<div class="block">Return the metadata for the class being manipulated, or null if not
a persistent type.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>serp.bytecode.BCClass</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/openjpa/enhance/PCEnhancer.html#getPCBytecode--">getPCBytecode</a></span>()</code>
<div class="block">Return the bytecode representation of the persistence-capable class
being manipulated.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/openjpa/enhance/PCEnhancer.html#getRedefine--">getRedefine</a></span>()</code>
<div class="block">Whether the enhancer should mutate its arguments, or just run validation
and optional subclassing logic on them.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/openjpa/enhance/PCEnhancer.html#getType-org.apache.openjpa.meta.ClassMetaData-">getType</a></span>(<a href="../../../../org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</a>&nbsp;meta)</code>
<div class="block">Return the concrete type for the given class, i.e. impl for managed
interfaces</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/openjpa/enhance/PCEnhancer.html#isAlreadyRedefined--">isAlreadyRedefined</a></span>()</code>
<div class="block">Whether the type that this instance is enhancing has already been
redefined.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/openjpa/enhance/PCEnhancer.html#isAlreadySubclassed--">isAlreadySubclassed</a></span>()</code>
<div class="block">Whether the type that this instance is enhancing has already been
subclassed in this instance's environment classloader.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/openjpa/enhance/PCEnhancer.html#isPCSubclassName-java.lang.String-">isPCSubclassName</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;className)</code>
<div class="block">Whether or not <code>className</code> is the name for a
dynamically-created persistence-capable subclass.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/openjpa/enhance/PCEnhancer.html#main-java.lang.String:A-">main</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)</code>
<div class="block">Usage: java org.apache.openjpa.enhance.PCEnhancer [option]*
&lt;class name | .java file | .class file | .jdo file&gt;+
Where the following options are recognized.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/openjpa/enhance/PCEnhancer.html#record--">record</a></span>()</code>
<div class="block">Write the generated bytecode.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/openjpa/enhance/PCEnhancer.html#run--">run</a></span>()</code>
<div class="block">Perform bytecode enhancements.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/openjpa/enhance/PCEnhancer.html#run-org.apache.openjpa.conf.OpenJPAConfiguration-java.lang.String:A-org.apache.openjpa.lib.util.Options-">run</a></span>(<a href="../../../../org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</a>&nbsp;conf,
<a href="https://docs.oracle.com/javase/8/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>
<div class="block">Run the tool.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/openjpa/enhance/PCEnhancer.html#run-org.apache.openjpa.conf.OpenJPAConfiguration-java.lang.String:A-org.apache.openjpa.enhance.PCEnhancer.Flags-org.apache.openjpa.meta.MetaDataRepository-org.apache.openjpa.lib.util.BytecodeWriter-java.lang.ClassLoader-">run</a></span>(<a href="../../../../org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</a>&nbsp;conf,
<a href="https://docs.oracle.com/javase/8/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="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;loader)</code>
<div class="block">Enhance the given classes.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>static boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/openjpa/enhance/PCEnhancer.html#run-java.lang.String:A-org.apache.openjpa.lib.util.Options-">run</a></span>(<a href="https://docs.oracle.com/javase/8/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>
<div class="block">Run the tool.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/openjpa/enhance/PCEnhancer.html#setAddDefaultConstructor-boolean-">setAddDefaultConstructor</a></span>(boolean&nbsp;addDefaultConstructor)</code>
<div class="block">A boolean indicating whether the enhancer should add a no-args
constructor if one is not already present in the class.</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/openjpa/enhance/PCEnhancer.html#setBytecodeWriter-org.apache.openjpa.lib.util.BytecodeWriter-">setBytecodeWriter</a></span>(<a href="../../../../org/apache/openjpa/lib/util/BytecodeWriter.html" title="interface in org.apache.openjpa.lib.util">BytecodeWriter</a>&nbsp;writer)</code>
<div class="block">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.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/openjpa/enhance/PCEnhancer.html#setCreateSubclass-boolean-">setCreateSubclass</a></span>(boolean&nbsp;subclass)</code>
<div class="block">Whether the enhancer should make its arguments persistence-capable,
or generate a persistence-capable subclass.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/openjpa/enhance/PCEnhancer.html#setDirectory-java.io.File-">setDirectory</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io">File</a>&nbsp;dir)</code>
<div class="block">The base build directory to generate code to.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/openjpa/enhance/PCEnhancer.html#setEnforcePropertyRestrictions-boolean-">setEnforcePropertyRestrictions</a></span>(boolean&nbsp;fail)</code>
<div class="block">Whether to fail if the persistent type uses property access and
bytecode analysis shows that it may be violating OpenJPA's property
access restrictions.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/openjpa/enhance/PCEnhancer.html#setRedefine-boolean-">setRedefine</a></span>(boolean&nbsp;redefine)</code>
<div class="block">Whether the enhancer should mutate its arguments, or just run validation
and optional subclassing logic on them.</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/openjpa/enhance/PCEnhancer.html#toManagedTypeName-java.lang.String-">toManagedTypeName</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;className)</code>
<div class="block">If <code>className</code> is a dynamically-created persistence-capable
subclass name, returns the name of the class that it subclasses.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="ENHANCER_VERSION">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ENHANCER_VERSION</h4>
<pre>public static final&nbsp;int ENHANCER_VERSION</pre>
</li>
</ul>
<a name="ENHANCE_NONE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ENHANCE_NONE</h4>
<pre>public static final&nbsp;int ENHANCE_NONE</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.apache.openjpa.enhance.PCEnhancer.ENHANCE_NONE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="ENHANCE_AWARE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ENHANCE_AWARE</h4>
<pre>public static final&nbsp;int ENHANCE_AWARE</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.apache.openjpa.enhance.PCEnhancer.ENHANCE_AWARE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="ENHANCE_INTERFACE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ENHANCE_INTERFACE</h4>
<pre>public static final&nbsp;int ENHANCE_INTERFACE</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.apache.openjpa.enhance.PCEnhancer.ENHANCE_INTERFACE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="ENHANCE_PC">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ENHANCE_PC</h4>
<pre>public static final&nbsp;int ENHANCE_PC</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.apache.openjpa.enhance.PCEnhancer.ENHANCE_PC">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="PRE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>PRE</h4>
<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> PRE</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.apache.openjpa.enhance.PCEnhancer.PRE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="ISDETACHEDSTATEDEFINITIVE">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>ISDETACHEDSTATEDEFINITIVE</h4>
<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> ISDETACHEDSTATEDEFINITIVE</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.apache.openjpa.enhance.PCEnhancer.ISDETACHEDSTATEDEFINITIVE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="PCEnhancer-org.apache.openjpa.conf.OpenJPAConfiguration-java.lang.Class-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>PCEnhancer</h4>
<pre>public&nbsp;PCEnhancer(<a href="../../../../org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</a>&nbsp;conf,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&nbsp;type)</pre>
<div class="block">Constructor. Supply configuration and type to enhance. This will look
up the metadata for <code>type</code> from <code>conf</code>'s
repository.</div>
</li>
</ul>
<a name="PCEnhancer-org.apache.openjpa.conf.OpenJPAConfiguration-org.apache.openjpa.meta.ClassMetaData-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>PCEnhancer</h4>
<pre>public&nbsp;PCEnhancer(<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>
<div class="block">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.</div>
</li>
</ul>
<a name="PCEnhancer-org.apache.openjpa.conf.OpenJPAConfiguration-serp.bytecode.BCClass-org.apache.openjpa.meta.MetaDataRepository-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>PCEnhancer</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
public&nbsp;PCEnhancer(<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>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">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.</span></div>
<div class="block">Constructor. Supply configuration.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>type</code> - the bytecode representation fo the type to
enhance; this can be created from any stream or file</dd>
<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>
</dl>
</li>
</ul>
<a name="PCEnhancer-org.apache.openjpa.conf.OpenJPAConfiguration-serp.bytecode.BCClass-org.apache.openjpa.meta.MetaDataRepository-java.lang.ClassLoader-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>PCEnhancer</h4>
<pre>public&nbsp;PCEnhancer(<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="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;loader)</pre>
<div class="block">Constructor. Supply configuration.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>type</code> - the bytecode representation fo the type to
enhance; this can be created from any stream or file</dd>
<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>
<dd><code>loader</code> - the environment classloader to use for loading
classes and resources.</dd>
</dl>
</li>
</ul>
<a name="PCEnhancer-org.apache.openjpa.meta.MetaDataRepository-serp.bytecode.BCClass-org.apache.openjpa.meta.ClassMetaData-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>PCEnhancer</h4>
<pre>public&nbsp;PCEnhancer(<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>
<div class="block">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.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<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>
<dd><code>type</code> - the bytecode representation fo the type to
enhance; this can be created from any stream or file</dd>
<dd><code>meta</code> - the metadata to use for processing this type.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.1.0</dd>
</dl>
</li>
</ul>
<a name="PCEnhancer-org.apache.openjpa.conf.OpenJPAConfiguration-serp.bytecode.BCClass-org.apache.openjpa.meta.ClassMetaData-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>PCEnhancer</h4>
<pre>public&nbsp;PCEnhancer(<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>
<div class="block">Constructor. Supply configuration, type, and metadata.</div>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="isPCSubclassName-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isPCSubclassName</h4>
<pre>public static&nbsp;boolean&nbsp;isPCSubclassName(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;className)</pre>
<div class="block">Whether or not <code>className</code> is the name for a
dynamically-created persistence-capable subclass.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.1.0</dd>
</dl>
</li>
</ul>
<a name="toManagedTypeName-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toManagedTypeName</h4>
<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;toManagedTypeName(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;className)</pre>
<div class="block">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>.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.1.0</dd>
</dl>
</li>
</ul>
<a name="getPCBytecode--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPCBytecode</h4>
<pre>public&nbsp;serp.bytecode.BCClass&nbsp;getPCBytecode()</pre>
<div class="block">Return the bytecode representation of the persistence-capable class
being manipulated.</div>
</li>
</ul>
<a name="getManagedTypeBytecode--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getManagedTypeBytecode</h4>
<pre>public&nbsp;serp.bytecode.BCClass&nbsp;getManagedTypeBytecode()</pre>
<div class="block">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.</div>
</li>
</ul>
<a name="getMetaData--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMetaData</h4>
<pre>public&nbsp;<a href="../../../../org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</a>&nbsp;getMetaData()</pre>
<div class="block">Return the metadata for the class being manipulated, or null if not
a persistent type.</div>
</li>
</ul>
<a name="getAddDefaultConstructor--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAddDefaultConstructor</h4>
<pre>public&nbsp;boolean&nbsp;getAddDefaultConstructor()</pre>
<div class="block">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.</div>
</li>
</ul>
<a name="setAddDefaultConstructor-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setAddDefaultConstructor</h4>
<pre>public&nbsp;void&nbsp;setAddDefaultConstructor(boolean&nbsp;addDefaultConstructor)</pre>
<div class="block">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.</div>
</li>
</ul>
<a name="getRedefine--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRedefine</h4>
<pre>public&nbsp;boolean&nbsp;getRedefine()</pre>
<div class="block">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>.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.0.0</dd>
</dl>
</li>
</ul>
<a name="setRedefine-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setRedefine</h4>
<pre>public&nbsp;void&nbsp;setRedefine(boolean&nbsp;redefine)</pre>
<div class="block">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>.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.0.0</dd>
</dl>
</li>
</ul>
<a name="isAlreadyRedefined--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isAlreadyRedefined</h4>
<pre>public&nbsp;boolean&nbsp;isAlreadyRedefined()</pre>
<div class="block">Whether the type that this instance is enhancing has already been
redefined.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.0.0</dd>
</dl>
</li>
</ul>
<a name="isAlreadySubclassed--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isAlreadySubclassed</h4>
<pre>public&nbsp;boolean&nbsp;isAlreadySubclassed()</pre>
<div class="block">Whether the type that this instance is enhancing has already been
subclassed in this instance's environment classloader.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.0.0</dd>
</dl>
</li>
</ul>
<a name="getCreateSubclass--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCreateSubclass</h4>
<pre>public&nbsp;boolean&nbsp;getCreateSubclass()</pre>
<div class="block">Whether the enhancer should make its arguments persistence-capable,
or generate a persistence-capable subclass.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.0.0</dd>
</dl>
</li>
</ul>
<a name="setCreateSubclass-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setCreateSubclass</h4>
<pre>public&nbsp;void&nbsp;setCreateSubclass(boolean&nbsp;subclass)</pre>
<div class="block">Whether the enhancer should make its arguments persistence-capable,
or generate a persistence-capable subclass.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.0.0</dd>
</dl>
</li>
</ul>
<a name="getEnforcePropertyRestrictions--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getEnforcePropertyRestrictions</h4>
<pre>public&nbsp;boolean&nbsp;getEnforcePropertyRestrictions()</pre>
<div class="block">Whether to fail if the persistent type uses property access and
bytecode analysis shows that it may be violating OpenJPA's property
access restrictions.</div>
</li>
</ul>
<a name="setEnforcePropertyRestrictions-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setEnforcePropertyRestrictions</h4>
<pre>public&nbsp;void&nbsp;setEnforcePropertyRestrictions(boolean&nbsp;fail)</pre>
<div class="block">Whether to fail if the persistent type uses property access and
bytecode analysis shows that it may be violating OpenJPA's property
access restrictions.</div>
</li>
</ul>
<a name="getDirectory--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDirectory</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io">File</a>&nbsp;getDirectory()</pre>
<div class="block">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.</div>
</li>
</ul>
<a name="setDirectory-java.io.File-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setDirectory</h4>
<pre>public&nbsp;void&nbsp;setDirectory(<a href="https://docs.oracle.com/javase/8/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io">File</a>&nbsp;dir)</pre>
<div class="block">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.</div>
</li>
</ul>
<a name="getBytecodeWriter--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getBytecodeWriter</h4>
<pre>public&nbsp;<a href="../../../../org/apache/openjpa/lib/util/BytecodeWriter.html" title="interface in org.apache.openjpa.lib.util">BytecodeWriter</a>&nbsp;getBytecodeWriter()</pre>
<div class="block">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.</div>
</li>
</ul>
<a name="setBytecodeWriter-org.apache.openjpa.lib.util.BytecodeWriter-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setBytecodeWriter</h4>
<pre>public&nbsp;void&nbsp;setBytecodeWriter(<a href="../../../../org/apache/openjpa/lib/util/BytecodeWriter.html" title="interface in org.apache.openjpa.lib.util">BytecodeWriter</a>&nbsp;writer)</pre>
<div class="block">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.</div>
</li>
</ul>
<a name="run--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>run</h4>
<pre>public&nbsp;int&nbsp;run()</pre>
<div class="block">Perform bytecode enhancements.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>ENHANCE_*</code> constant</dd>
</dl>
</li>
</ul>
<a name="record--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>record</h4>
<pre>public&nbsp;void&nbsp;record()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Write the generated bytecode.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="getAuxiliaryEnhancers--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAuxiliaryEnhancers</h4>
<pre>public&nbsp;<a href="../../../../org/apache/openjpa/enhance/PCEnhancer.AuxiliaryEnhancer.html" title="interface in org.apache.openjpa.enhance">PCEnhancer.AuxiliaryEnhancer</a>[]&nbsp;getAuxiliaryEnhancers()</pre>
<div class="block">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>.</div>
</li>
</ul>
<a name="getType-org.apache.openjpa.meta.ClassMetaData-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getType</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&nbsp;getType(<a href="../../../../org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</a>&nbsp;meta)</pre>
<div class="block">Return the concrete type for the given class, i.e. impl for managed
interfaces</div>
</li>
</ul>
<a name="main-java.lang.String:A-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>main</h4>
<pre>public static&nbsp;void&nbsp;main(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)</pre>
<div class="block">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.</div>
</li>
</ul>
<a name="run-java.lang.String:A-org.apache.openjpa.lib.util.Options-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>run</h4>
<pre>public static&nbsp;boolean&nbsp;run(<a href="https://docs.oracle.com/javase/8/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>
<div class="block">Run the tool. Returns false if invalid options given. Runs against all
the persistence units defined in the resource to parse.</div>
</li>
</ul>
<a name="run-org.apache.openjpa.conf.OpenJPAConfiguration-java.lang.String:A-org.apache.openjpa.lib.util.Options-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>run</h4>
<pre>public static&nbsp;boolean&nbsp;run(<a href="../../../../org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</a>&nbsp;conf,
<a href="https://docs.oracle.com/javase/8/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="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Run the tool. Returns false if invalid options given.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="run-org.apache.openjpa.conf.OpenJPAConfiguration-java.lang.String:A-org.apache.openjpa.enhance.PCEnhancer.Flags-org.apache.openjpa.meta.MetaDataRepository-org.apache.openjpa.lib.util.BytecodeWriter-java.lang.ClassLoader-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>run</h4>
<pre>public static&nbsp;boolean&nbsp;run(<a href="../../../../org/apache/openjpa/conf/OpenJPAConfiguration.html" title="interface in org.apache.openjpa.conf">OpenJPAConfiguration</a>&nbsp;conf,
<a href="https://docs.oracle.com/javase/8/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="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;loader)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Enhance the given classes.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="checkEnhancementLevel-java.lang.Class-org.apache.openjpa.lib.log.Log-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>checkEnhancementLevel</h4>
<pre>public static&nbsp;boolean&nbsp;checkEnhancementLevel(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;?&gt;&nbsp;cls,
<a href="../../../../org/apache/openjpa/lib/log/Log.html" title="interface in org.apache.openjpa.lib.log">Log</a>&nbsp;log)</pre>
<div class="block">This static public worker method detects and logs any Entities that may have been enhanced at build time by
a version of the enhancer that is older than the current version.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>cls</code> - - A non-null Class implementing org.apache.openjpa.enhance.PersistenceCapable.</dd>
<dd><code>log</code> - - A non-null org.apache.openjpa.lib.log.Log.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the provided Class is down level from the current PCEnhancer.ENHANCER_VERSION. False
otherwise.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>-</code> - IllegalStateException if cls doesn't implement org.apache.openjpa.enhance.PersistenceCapable.</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/PCEnhancer.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/apache/openjpa/enhance/PCDataGenerator.DynamicPCData.html" title="interface in org.apache.openjpa.enhance"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/openjpa/enhance/PCEnhancer.AuxiliaryEnhancer.html" title="interface in org.apache.openjpa.enhance"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/openjpa/enhance/PCEnhancer.html" target="_top">Frames</a></li>
<li><a href="PCEnhancer.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2006&#x2013;2020 <a href="http://www.apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>