<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.6.0_18) on Mon Apr 19 13:38:22 EDT 2010 -->
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>
ClassMetaData (OpenJPA Parent POM 2.0.0 API)
</TITLE>

<META NAME="date" CONTENT="2010-04-19">

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

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

</HEAD>

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


<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ClassMetaData.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/meta/AccessCode.html" title="class in org.apache.openjpa.meta"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../org/apache/openjpa/meta/DelegatingMetaDataFactory.html" title="class in org.apache.openjpa.meta"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../index.html?org/apache/openjpa/meta/ClassMetaData.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="ClassMetaData.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;NESTED&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.meta</FONT>
<BR>
Class ClassMetaData</H2>
<PRE>
<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../org/apache/openjpa/meta/Extensions.html" title="class in org.apache.openjpa.meta">org.apache.openjpa.meta.Extensions</A>
      <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.apache.openjpa.meta.ClassMetaData</B>
</PRE>
<DL>
<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</A>&lt;<A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>&gt;, <A HREF="../../../../org/apache/openjpa/lib/conf/ValueListener.html" title="interface in org.apache.openjpa.lib.conf">ValueListener</A>, <A HREF="../../../../org/apache/openjpa/lib/meta/SourceTracker.html" title="interface in org.apache.openjpa.lib.meta">SourceTracker</A>, <A HREF="../../../../org/apache/openjpa/lib/xml/Commentable.html" title="interface in org.apache.openjpa.lib.xml">Commentable</A>, <A HREF="../../../../org/apache/openjpa/meta/MetaDataContext.html" title="interface in org.apache.openjpa.meta">MetaDataContext</A>, <A HREF="../../../../org/apache/openjpa/meta/MetaDataModes.html" title="interface in org.apache.openjpa.meta">MetaDataModes</A></DD>
</DL>
<DL>
<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../../org/apache/openjpa/jdbc/meta/ClassMapping.html" title="class in org.apache.openjpa.jdbc.meta">ClassMapping</A></DD>
</DL>
<HR>
<DL>
<DT><PRE>public class <B>ClassMetaData</B><DT>extends <A HREF="../../../../org/apache/openjpa/meta/Extensions.html" title="class in org.apache.openjpa.meta">Extensions</A><DT>implements <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</A>&lt;<A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>&gt;, <A HREF="../../../../org/apache/openjpa/lib/meta/SourceTracker.html" title="interface in org.apache.openjpa.lib.meta">SourceTracker</A>, <A HREF="../../../../org/apache/openjpa/meta/MetaDataContext.html" title="interface in org.apache.openjpa.meta">MetaDataContext</A>, <A HREF="../../../../org/apache/openjpa/meta/MetaDataModes.html" title="interface in org.apache.openjpa.meta">MetaDataModes</A>, <A HREF="../../../../org/apache/openjpa/lib/xml/Commentable.html" title="interface in org.apache.openjpa.lib.xml">Commentable</A>, <A HREF="../../../../org/apache/openjpa/lib/conf/ValueListener.html" title="interface in org.apache.openjpa.lib.conf">ValueListener</A></DL>
</PRE>

<P>
Contains metadata about a persistent type.
 This metadata is available both at enhancement time and runtime.
  Note that this class employs aggressive caching, and therefore it is
 important to finalize the configuration of field metadatas before invoking
 methods that depend on that configuration, such as
 <A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#getPrimaryKeyFields()"><CODE>getPrimaryKeyFields()</CODE></A>.
<P>

<P>
<DL>
<DT><B>Author:</B></DT>
  <DD>Abe White</DD>
<DT><B>See Also:</B><DD><A HREF="../../../../serialized-form.html#org.apache.openjpa.meta.ClassMetaData">Serialized Form</A></DL>
<HR>

<P>
<!-- =========== 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/meta/ClassMetaData.html#ACCESS_EXPLICIT">ACCESS_EXPLICIT</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Persistent class has explicitly defined an access type.</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/meta/ClassMetaData.html#ACCESS_FIELD">ACCESS_FIELD</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Persistent attributes are accessed via direct field access.</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/meta/ClassMetaData.html#ACCESS_PROPERTY">ACCESS_PROPERTY</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Persistent attributes are accessed via setters and getters.</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/meta/ClassMetaData.html#ACCESS_UNKNOWN">ACCESS_UNKNOWN</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Unknown access type.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected static&nbsp;<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#DEFAULT_STRING">DEFAULT_STRING</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/meta/ClassMetaData.html#ID_APPLICATION">ID_APPLICATION</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Application identity type.</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/meta/ClassMetaData.html#ID_DATASTORE">ID_DATASTORE</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Datastore identity type.</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/meta/ClassMetaData.html#ID_UNKNOWN">ID_UNKNOWN</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Unknown identity type.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#SYNTHETIC">SYNTHETIC</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Value for using a synthetic detached state field, which is the default.</TD>
</TR>
</TABLE>
&nbsp;<A NAME="fields_inherited_from_class_org.apache.openjpa.meta.Extensions"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Fields inherited from class org.apache.openjpa.meta.<A HREF="../../../../org/apache/openjpa/meta/Extensions.html" title="class in org.apache.openjpa.meta">Extensions</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../org/apache/openjpa/meta/Extensions.html#OPENJPA">OPENJPA</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="fields_inherited_from_class_org.apache.openjpa.lib.meta.SourceTracker"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Fields inherited from interface org.apache.openjpa.lib.meta.<A HREF="../../../../org/apache/openjpa/lib/meta/SourceTracker.html" title="interface in org.apache.openjpa.lib.meta">SourceTracker</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../org/apache/openjpa/lib/meta/SourceTracker.html#SRC_ANNOTATIONS">SRC_ANNOTATIONS</A>, <A HREF="../../../../org/apache/openjpa/lib/meta/SourceTracker.html#SRC_OTHER">SRC_OTHER</A>, <A HREF="../../../../org/apache/openjpa/lib/meta/SourceTracker.html#SRC_XML">SRC_XML</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="fields_inherited_from_class_org.apache.openjpa.meta.MetaDataModes"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Fields inherited from interface org.apache.openjpa.meta.<A HREF="../../../../org/apache/openjpa/meta/MetaDataModes.html" title="interface in org.apache.openjpa.meta">MetaDataModes</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../org/apache/openjpa/meta/MetaDataModes.html#MODE_ALL">MODE_ALL</A>, <A HREF="../../../../org/apache/openjpa/meta/MetaDataModes.html#MODE_ANN_MAPPING">MODE_ANN_MAPPING</A>, <A HREF="../../../../org/apache/openjpa/meta/MetaDataModes.html#MODE_MAPPING">MODE_MAPPING</A>, <A HREF="../../../../org/apache/openjpa/meta/MetaDataModes.html#MODE_MAPPING_INIT">MODE_MAPPING_INIT</A>, <A HREF="../../../../org/apache/openjpa/meta/MetaDataModes.html#MODE_META">MODE_META</A>, <A HREF="../../../../org/apache/openjpa/meta/MetaDataModes.html#MODE_NONE">MODE_NONE</A>, <A HREF="../../../../org/apache/openjpa/meta/MetaDataModes.html#MODE_QUERY">MODE_QUERY</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="fields_inherited_from_class_org.apache.openjpa.lib.xml.Commentable"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Fields inherited from interface org.apache.openjpa.lib.xml.<A HREF="../../../../org/apache/openjpa/lib/xml/Commentable.html" title="interface in org.apache.openjpa.lib.xml">Commentable</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../org/apache/openjpa/lib/xml/Commentable.html#EMPTY_COMMENTS">EMPTY_COMMENTS</A></CODE></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 ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected </CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#ClassMetaData(java.lang.Class, org.apache.openjpa.meta.MetaDataRepository)">ClassMetaData</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&lt;?&gt;&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 ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected </CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#ClassMetaData(org.apache.openjpa.meta.ValueMetaData)">ClassMetaData</A></B>(<A HREF="../../../../org/apache/openjpa/meta/ValueMetaData.html" title="interface in org.apache.openjpa.meta">ValueMetaData</A>&nbsp;owner)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Embedded 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;<A HREF="../../../../org/apache/openjpa/meta/FetchGroup.html" title="class in org.apache.openjpa.meta">FetchGroup</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#addDeclaredFetchGroup(java.lang.String)">addDeclaredFetchGroup</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Adds fetch group of the given name, or returns existing instance.</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/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#addDeclaredField(java.lang.String, java.lang.Class)">addDeclaredField</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name,
                 <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&lt;?&gt;&nbsp;type)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add a new field metadata to this 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/meta/ClassMetaData.html#addDeclaredInterface(java.lang.Class)">addDeclaredInterface</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&lt;?&gt;&nbsp;iface)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Explicitly declare the given interface among the ones this
 class implements.</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/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#addDefinedSuperclassField(java.lang.String, java.lang.Class, java.lang.Class)">addDefinedSuperclassField</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name,
                          <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&lt;?&gt;&nbsp;type,
                          <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&lt;?&gt;&nbsp;sup)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add a new defined superclass field metadata to this class.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#addExtensionKeys(java.util.Collection)">addExtensionKeys</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&nbsp;exts)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add all the known extension keys to the specified collection; any
 implementation that utilized new extensions should override this
 method to include both the known extensions of its superclass as well
 as its own extension keys.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#clearAllFieldCache()">clearAllFieldCache</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Clear cached field data.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#clearDefinedFieldCache()">clearDefinedFieldCache</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Clear defined field data.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#clearFieldCache()">clearFieldCache</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Clear cached field data.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#clearSubclassCache()">clearSubclassCache</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Clear cached subclass data.</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/meta/ClassMetaData.html#compareTo(org.apache.openjpa.meta.ClassMetaData)">compareTo</A></B>(<A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>&nbsp;other)</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>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#copy(org.apache.openjpa.meta.ClassMetaData)">copy</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;Copy the metadata from the given instance to this one.</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/meta/ClassMetaData.html#defineSuperclassFields(boolean)">defineSuperclassFields</A></B>(boolean&nbsp;force)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Incorporate superclass fields redefined in this subclass into this
 metadata.</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/meta/ClassMetaData.html#equals(java.lang.Object)">equals</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;other)</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>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#getAccessType()">getAccessType</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The access type used by this class.</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/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#getCacheEnabled()">getCacheEnabled</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns tri-state status on whether this class has been enabled for caching.</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/meta/ClassMetaData.html#getColNumber()">getColNumber</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the column number in the line of the file at which this
 instance was parsed.</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/String.html?is-external=true" title="class or interface in java.lang">String</A>[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#getComments()">getComments</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return comments, or empty array if none.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/openjpa/meta/FetchGroup.html" title="class in org.apache.openjpa.meta">FetchGroup</A>[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#getCustomFetchGroups()">getCustomFetchGroups</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return all fetch groups for this type, including superclass groups.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/openjpa/datacache/DataCache.html" title="interface in org.apache.openjpa.datacache">DataCache</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#getDataCache()">getDataCache</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the data cache for this class, or null if it is not cachable.</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/meta/ClassMetaData.html#getDataCacheEnabled()">getDataCacheEnabled</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Affirms true if this receiver is annotated with @DataCache and is not disabled.</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/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#getDataCacheName()">getDataCacheName</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The name of the data cache that stores the managed instance of this class, by default.</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/meta/ClassMetaData.html#getDataCacheTimeout()">getDataCacheTimeout</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The cache timeout for this 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/meta/FetchGroup.html" title="class in org.apache.openjpa.meta">FetchGroup</A>[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#getDeclaredFetchGroups()">getDeclaredFetchGroups</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the fetch groups declared explicitly in this type.</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/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#getDeclaredField(int)">getDeclaredField</A></B>(int&nbsp;index)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the metadata for the persistent or transactional field with
 the given relative index.</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/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#getDeclaredField(java.lang.String)">getDeclaredField</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the metadata for the persistent or transactional field with
 the given name, without including superclass fields.</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/String.html?is-external=true" title="class or interface in java.lang">String</A>[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#getDeclaredFieldNames()">getDeclaredFieldNames</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Utility method to get names of all declared fields excluding the 
 superclasses' sorted in lexical order.</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/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#getDeclaredFields()">getDeclaredFields</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return only the fields for this class, without superclass fields.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&lt;?&gt;[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#getDeclaredInterfaces()">getDeclaredInterfaces</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return all explicitly declared interfaces this class implements.</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/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#getDeclaredUnmanagedFields()">getDeclaredUnmanagedFields</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return any fields that were added as non-managed.</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/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#getDefaultFetchGroupFields()">getDefaultFetchGroupFields</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the list of fields in the default fetch group,
 including superclass fields, or an empty array if none.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#getDefinedFields()">getDefinedFields</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an array of all the fields defined by this 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/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#getDefinedFieldsInListingOrder()">getDefinedFieldsInListingOrder</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns all fields defined by this class in the order they are listed
 in the metadata file.</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/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#getDefinedSuperclassField(java.lang.String)">getDefinedSuperclassField</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the defined superclass field with the given name, or null if none.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&lt;?&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#getDescribedType()">getDescribedType</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The persistence capable class described by this metadata.</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/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#getDetachedState()">getDetachedState</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The name of the detach state field, or null if none.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/reflect/Field.html?is-external=true" title="class or interface in java.lang.reflect">Field</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#getDetachedStateField()">getDetachedStateField</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the detach state field, or null if none.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/openjpa/meta/ValueMetaData.html" title="interface in org.apache.openjpa.meta">ValueMetaData</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#getEmbeddingMetaData()">getEmbeddingMetaData</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If this metadata is for an embedded object, returning the owning value.</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/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#getEnvClassLoader()">getEnvClassLoader</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The environmental loader used when loading this metadata.</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/meta/ClassMetaData.html#getExtraFieldDataIndex(int)">getExtraFieldDataIndex</A></B>(int&nbsp;field)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the intermediate field data index of the given field
 in the compacted array, or -1 if the field does not use extra data.</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/meta/ClassMetaData.html#getExtraFieldDataLength()">getExtraFieldDataLength</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the number of fields that use impl or intermediate data, in
 order to create a compacted array for storage of said data.</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/FetchGroup.html" title="class in org.apache.openjpa.meta">FetchGroup</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#getFetchGroup(java.lang.String)">getFetchGroup</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets a named fetch group.</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/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#getField(int)">getField</A></B>(int&nbsp;index)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the metadata for the persistent or transactional field with
 the given absolute index.</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/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#getField(java.lang.String)">getField</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the metadata for the persistent or transactional field with
 the given name.</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/String.html?is-external=true" title="class or interface in java.lang">String</A>[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#getFieldNames()">getFieldNames</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Utility method to get names of all fields including the superclasses'
 sorted in lexical order.</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/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#getFields()">getFields</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return all field metadata, including superclass fields.</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/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#getFieldsInListingOrder()">getFieldsInListingOrder</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns all fields in the order they are listed in the metadata
 file.</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/SequenceMetaData.html" title="class in org.apache.openjpa.meta">SequenceMetaData</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#getIdentitySequenceMetaData()">getIdentitySequenceMetaData</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Metadata for the datastore identity sequence.</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/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#getIdentitySequenceName()">getIdentitySequenceName</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The datastore identity sequence name, or null for none.</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/meta/ClassMetaData.html#getIdentityStrategy()">getIdentityStrategy</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The strategy to use for datastore identity generation.</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/meta/ClassMetaData.html#getIdentityType()">getIdentityType</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The type of identity being used.</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/String.html?is-external=true" title="class or interface in java.lang">String</A>[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#getInterfaceAliasedProperties(java.lang.Class)">getInterfaceAliasedProperties</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&lt;?&gt;&nbsp;iface)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return all aliases property named for the given interface.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&lt;?&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#getInterfaceImpl()">getInterfaceImpl</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the managed interface implementor if any.</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/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#getInterfacePropertyAlias(java.lang.Class, java.lang.String)">getInterfacePropertyAlias</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&lt;?&gt;&nbsp;iface,
                          <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;orig)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get local field alias for the given interface property.</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/LifecycleMetaData.html" title="class in org.apache.openjpa.meta">LifecycleMetaData</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#getLifecycleMetaData()">getLifecycleMetaData</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Information about lifecycle callbacks for this class.</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/meta/ClassMetaData.html#getLineNumber()">getLineNumber</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the line number of the file at which this instance was parsed.</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/meta/ClassMetaData.html#getListingIndex()">getListingIndex</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The index in which this class was listed in the metadata.</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/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#getLrsFields()">getLrsFields</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return all large result set fields.</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/meta/ClassMetaData.html#getMappedPCSubclassMetaDatas()">getMappedPCSubclassMetaDatas</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return all mapped subclasses.</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/meta/ClassMetaData.html#getMappedPCSuperclassMetaData()">getMappedPCSuperclassMetaData</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the closest mapped superclass.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&lt;?&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#getObjectIdType()">getObjectIdType</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The metadata-specified class to use for the object ID.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&lt;?&gt;[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#getPCSubclasses()">getPCSubclasses</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the known persistence capable subclasses of the described type,
 or empty array if none or if this is embedded metadata.</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/meta/ClassMetaData.html#getPCSubclassMetaDatas()">getPCSubclassMetaDatas</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the metadata for the known persistence capable subclasses of
 the described type, or empty array if none or if this is embedded
 metadata.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&lt;?&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#getPCSuperclass()">getPCSuperclass</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The persistence capable superclass of the described type.</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/meta/ClassMetaData.html#getPCSuperclassMetaData()">getPCSuperclassMetaData</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The metadata for this class' superclass.</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/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#getPrimaryKeyFields()">getPrimaryKeyFields</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return primary key fields, or empty array if none.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>[]</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#getProxyFields()">getProxyFields</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return all fields that are types that need to be wrappered by a proxy.</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/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#getRepository()">getRepository</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the owning repository.</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/meta/ClassMetaData.html#getRequiresExtent()">getRequiresExtent</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Whether the type requires extent management.</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/meta/ClassMetaData.html#getResolve()">getResolve</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The resolve mode for this metadata.</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/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#getResourceName()">getResourceName</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the domain-meaningful name of the resource that was loaded
 from this source.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io">File</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#getSourceFile()">getSourceFile</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the file from which this instance was parsed.</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/meta/ClassMetaData.html#getSourceMode()">getSourceMode</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The source mode this metadata has been loaded under.</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/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#getSourceScope()">getSourceScope</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the domain-dependent scope of this instance within its file.</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/meta/ClassMetaData.html#getSourceType()">getSourceType</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the type of source.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#getSuperclassField(org.apache.openjpa.meta.FieldMetaData)">getSuperclassField</A></B>(<A HREF="../../../../org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>&nbsp;supField)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the superclass copy of the given field.</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/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#getTypeAlias()">getTypeAlias</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the alias for the described type, or <code>null</code> if none
 has been set.</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/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#getVersionField()">getVersionField</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the version field for this class, if any.</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/meta/ClassMetaData.html#hasAbstractPKField()">hasAbstractPKField</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Convenience method to determine if the pcType modeled by
 this ClassMetaData object is both abstract and declares PKFields.</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/meta/ClassMetaData.html#hashCode()">hashCode</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>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#hasPKFieldsFromAbstractClass()">hasPKFieldsFromAbstractClass</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Convenience method to determine if this type is a direct
 decendent of an abstract type declaring PKFields.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#initializeMapping()">initializeMapping</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Initialize mapping.</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/meta/ClassMetaData.html#isAbstract()">isAbstract</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>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#isAccessibleField(java.lang.String)">isAccessibleField</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;field)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return whether the given name represents a managed or static field of
 this class, including superclass fields.</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/meta/ClassMetaData.html#isDetachable()">isDetachable</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Whether instances are detachable.</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/meta/ClassMetaData.html#isEmbeddable()">isEmbeddable</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>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#isEmbeddedOnly()">isEmbeddedOnly</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Whether the type can only be used as an embedded object.</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/meta/ClassMetaData.html#isExplicitAccess()">isExplicitAccess</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Affirms if access style is explicitly defined.</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/meta/ClassMetaData.html#isIntercepting()">isIntercepting</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Whether the type's fields are actively intercepted, either by
 redefinition or enhancement.</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/meta/ClassMetaData.html#isManagedInterface()">isManagedInterface</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Whether the type is a managed interface.</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/meta/ClassMetaData.html#isMapped()">isMapped</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Whether this class is mapped to the datastore.</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/meta/ClassMetaData.html#isMixedAccess()">isMixedAccess</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Affirms if attributes of this class use mixed access types.</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/meta/ClassMetaData.html#isObjectIdTypeShared()">isObjectIdTypeShared</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Whether this type uses an application identity class that is shared
 with other classes, and is therefore wrapped in an <A HREF="../../../../org/apache/openjpa/util/ObjectId.html" title="class in org.apache.openjpa.util"><CODE>ObjectId</CODE></A>.</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/meta/ClassMetaData.html#isOpenJPAIdentity()">isOpenJPAIdentity</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Whether this type uses OpenJPA identity.</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/meta/ClassMetaData.html#isReplicated()">isReplicated</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Affirms the persistence instances of this receiver is replicated across
 multiple databases.</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/meta/ClassMetaData.html#registerForValueUpdate(java.lang.String...)">registerForValueUpdate</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>...&nbsp;values)</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>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#removeDeclaredFetchGroup(org.apache.openjpa.meta.FetchGroup)">removeDeclaredFetchGroup</A></B>(<A HREF="../../../../org/apache/openjpa/meta/FetchGroup.html" title="class in org.apache.openjpa.meta">FetchGroup</A>&nbsp;fg)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Remove a declared fetch group.</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/meta/ClassMetaData.html#removeDeclaredField(org.apache.openjpa.meta.FieldMetaData)">removeDeclaredField</A></B>(<A HREF="../../../../org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>&nbsp;field)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Remove the given field from management.</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/meta/ClassMetaData.html#removeDeclaredInterface(java.lang.Class)">removeDeclaredInterface</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&lt;?&gt;&nbsp;iface)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Remove the given interface from the declared list.</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/meta/ClassMetaData.html#removeDefinedSuperclassField(org.apache.openjpa.meta.FieldMetaData)">removeDefinedSuperclassField</A></B>(<A HREF="../../../../org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>&nbsp;field)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Remove the given field from management.</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/meta/ClassMetaData.html#resolve(int)">resolve</A></B>(int&nbsp;mode)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Resolve and validate metadata.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#resolveMapping(boolean)">resolveMapping</A></B>(boolean&nbsp;runtime)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Resolve mapping data.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#resolveMeta(boolean)">resolveMeta</A></B>(boolean&nbsp;runtime)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Resolve metadata.</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/meta/ClassMetaData.html#setAbstract(boolean)">setAbstract</A></B>(boolean&nbsp;flag)</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>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#setAccessType(int)">setAccessType</A></B>(int&nbsp;type)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the access type.</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/meta/ClassMetaData.html#setCacheEnabled(boolean)">setCacheEnabled</A></B>(boolean&nbsp;enabled)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the eligibility status of this class for cache.</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/meta/ClassMetaData.html#setColNumber(int)">setColNumber</A></B>(int&nbsp;colNum)</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>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#setComments(java.lang.String[])">setComments</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;comments)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set comments.</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/meta/ClassMetaData.html#setDataCacheName(java.lang.String)">setDataCacheName</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the cache name for this 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/meta/ClassMetaData.html#setDataCacheTimeout(int)">setDataCacheTimeout</A></B>(int&nbsp;timeout)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The cache timeout for this class.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#setDescribedType(java.lang.Class)">setDescribedType</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&lt;?&gt;&nbsp;type)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the class described by this metadata.</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/meta/ClassMetaData.html#setDetachable(boolean)">setDetachable</A></B>(boolean&nbsp;detachable)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Whether instances are detachable.</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/meta/ClassMetaData.html#setDetachedState(java.lang.String)">setDetachedState</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;field)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The name of the detach state field, 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/meta/ClassMetaData.html#setEmbeddable()">setEmbeddable</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>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#setEmbeddedOnly(boolean)">setEmbeddedOnly</A></B>(boolean&nbsp;embed)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Whether the type can only be used as an embedded object.</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/meta/ClassMetaData.html#setEnvClassLoader(java.lang.ClassLoader)">setEnvClassLoader</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</A>&nbsp;loader)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The class environmental loader used when loading this metadata.</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/meta/ClassMetaData.html#setIdentitySequenceName(java.lang.String)">setIdentitySequenceName</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;seqName)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The datastore identity sequence name, or null for 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/meta/ClassMetaData.html#setIdentityStrategy(int)">setIdentityStrategy</A></B>(int&nbsp;strategy)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The strategy to use for datastore identity generation.</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/meta/ClassMetaData.html#setIdentityType(int)">setIdentityType</A></B>(int&nbsp;type)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The type of identity being used.</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/meta/ClassMetaData.html#setIntercepting(boolean)">setIntercepting</A></B>(boolean&nbsp;intercepting)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Whether the type's fields are actively intercepted, either by
 redefinition or enhancement.</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/meta/ClassMetaData.html#setInterfaceImpl(java.lang.Class)">setInterfaceImpl</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&lt;?&gt;&nbsp;impl)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the managed interface implementor 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/meta/ClassMetaData.html#setInterfacePropertyAlias(java.lang.Class, java.lang.String, java.lang.String)">setInterfacePropertyAlias</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&lt;?&gt;&nbsp;iface,
                          <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;orig,
                          <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;local)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Alias properties from the given interface during  queries to
 the local field.</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/meta/ClassMetaData.html#setLineNumber(int)">setLineNumber</A></B>(int&nbsp;lineNum)</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>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#setListingIndex(int)">setListingIndex</A></B>(int&nbsp;index)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The index in which this field was listed in the metadata.</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/meta/ClassMetaData.html#setManagedInterface(boolean)">setManagedInterface</A></B>(boolean&nbsp;managedInterface)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Whether the type is a managed interface</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/meta/ClassMetaData.html#setObjectIdType(java.lang.Class, boolean)">setObjectIdType</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&lt;?&gt;&nbsp;cls,
                boolean&nbsp;shared)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The metadata-specified class to use for the object ID.</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/meta/ClassMetaData.html#setPCSuperclass(java.lang.Class)">setPCSuperclass</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&lt;?&gt;&nbsp;pc)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The persistence capable superclass of the described type.</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/meta/ClassMetaData.html#setPCSuperclassMetaData(org.apache.openjpa.meta.ClassMetaData)">setPCSuperclassMetaData</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;The metadata for this class' superclass.</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/meta/ClassMetaData.html#setReplicated(boolean)">setReplicated</A></B>(boolean&nbsp;flag)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the persistence instances of this receiver to be replicated across
 multiple databases.</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/meta/ClassMetaData.html#setRequiresExtent(boolean)">setRequiresExtent</A></B>(boolean&nbsp;req)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Whether the type requires extent management.</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/meta/ClassMetaData.html#setResolve(int)">setResolve</A></B>(int&nbsp;mode)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The resolve mode for this metadata.</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/meta/ClassMetaData.html#setResolve(int, boolean)">setResolve</A></B>(int&nbsp;mode,
           boolean&nbsp;on)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The resolve mode for this metadata.</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/meta/ClassMetaData.html#setSource(java.io.File, int)">setSource</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io">File</A>&nbsp;file,
          int&nbsp;srcType)</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>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#setSourceMode(int)">setSourceMode</A></B>(int&nbsp;mode)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The source mode this metadata has been loaded under.</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/meta/ClassMetaData.html#setSourceMode(int, boolean)">setSourceMode</A></B>(int&nbsp;mode,
              boolean&nbsp;on)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The source mode this metadata has been loaded under.</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/meta/ClassMetaData.html#setTypeAlias(java.lang.String)">setTypeAlias</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;alias)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the alias for the described 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/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#toString()">toString</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>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#useIdClassFromParent()">useIdClassFromParent</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return true if this class uses IdClass derived from idClass of the 
 parent entity which annotated as id in the child class.</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/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#usesDetachedState()">usesDetachedState</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Whether an instance of this type has detached state.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#validateMapping(boolean)">validateMapping</A></B>(boolean&nbsp;runtime)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Validate mapping data.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#validateMeta(boolean)">validateMeta</A></B>(boolean&nbsp;runtime)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Validate resolved metadata.</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/meta/ClassMetaData.html#valueChanged(org.apache.openjpa.lib.conf.Value)">valueChanged</A></B>(<A HREF="../../../../org/apache/openjpa/lib/conf/Value.html" title="class in org.apache.openjpa.lib.conf">Value</A>&nbsp;val)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Callback used by <A HREF="../../../../org/apache/openjpa/lib/conf/Value.html" title="class in org.apache.openjpa.lib.conf"><CODE>Value</CODE></A> objects to notify listener of change.</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_org.apache.openjpa.meta.Extensions"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class org.apache.openjpa.meta.<A HREF="../../../../org/apache/openjpa/meta/Extensions.html" title="class in org.apache.openjpa.meta">Extensions</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../org/apache/openjpa/meta/Extensions.html#addExtension(java.lang.String, java.lang.Object)">addExtension</A>, <A HREF="../../../../org/apache/openjpa/meta/Extensions.html#addExtension(java.lang.String, java.lang.String, java.lang.Object)">addExtension</A>, <A HREF="../../../../org/apache/openjpa/meta/Extensions.html#copy(org.apache.openjpa.meta.Extensions)">copy</A>, <A HREF="../../../../org/apache/openjpa/meta/Extensions.html#getBooleanExtension(java.lang.String)">getBooleanExtension</A>, <A HREF="../../../../org/apache/openjpa/meta/Extensions.html#getBooleanExtension(java.lang.String, java.lang.String)">getBooleanExtension</A>, <A HREF="../../../../org/apache/openjpa/meta/Extensions.html#getDoubleExtension(java.lang.String)">getDoubleExtension</A>, <A HREF="../../../../org/apache/openjpa/meta/Extensions.html#getDoubleExtension(java.lang.String, java.lang.String)">getDoubleExtension</A>, <A HREF="../../../../org/apache/openjpa/meta/Extensions.html#getEmbeddedExtensions(java.lang.String, boolean)">getEmbeddedExtensions</A>, <A HREF="../../../../org/apache/openjpa/meta/Extensions.html#getEmbeddedExtensions(java.lang.String, java.lang.String, boolean)">getEmbeddedExtensions</A>, <A HREF="../../../../org/apache/openjpa/meta/Extensions.html#getExtensionKeys()">getExtensionKeys</A>, <A HREF="../../../../org/apache/openjpa/meta/Extensions.html#getExtensionKeys(java.lang.String)">getExtensionKeys</A>, <A HREF="../../../../org/apache/openjpa/meta/Extensions.html#getExtensionVendors()">getExtensionVendors</A>, <A HREF="../../../../org/apache/openjpa/meta/Extensions.html#getIntExtension(java.lang.String)">getIntExtension</A>, <A HREF="../../../../org/apache/openjpa/meta/Extensions.html#getIntExtension(java.lang.String, java.lang.String)">getIntExtension</A>, <A HREF="../../../../org/apache/openjpa/meta/Extensions.html#getObjectExtension(java.lang.String)">getObjectExtension</A>, <A HREF="../../../../org/apache/openjpa/meta/Extensions.html#getObjectExtension(java.lang.String, java.lang.String)">getObjectExtension</A>, <A HREF="../../../../org/apache/openjpa/meta/Extensions.html#getStringExtension(java.lang.String)">getStringExtension</A>, <A HREF="../../../../org/apache/openjpa/meta/Extensions.html#getStringExtension(java.lang.String, java.lang.String)">getStringExtension</A>, <A HREF="../../../../org/apache/openjpa/meta/Extensions.html#hasExtension(java.lang.String)">hasExtension</A>, <A HREF="../../../../org/apache/openjpa/meta/Extensions.html#hasExtension(java.lang.String, java.lang.String)">hasExtension</A>, <A HREF="../../../../org/apache/openjpa/meta/Extensions.html#isEmpty()">isEmpty</A>, <A HREF="../../../../org/apache/openjpa/meta/Extensions.html#removeEmbeddedExtensions(java.lang.String)">removeEmbeddedExtensions</A>, <A HREF="../../../../org/apache/openjpa/meta/Extensions.html#removeEmbeddedExtensions(java.lang.String, java.lang.String)">removeEmbeddedExtensions</A>, <A HREF="../../../../org/apache/openjpa/meta/Extensions.html#removeExtension(java.lang.String)">removeExtension</A>, <A HREF="../../../../org/apache/openjpa/meta/Extensions.html#removeExtension(java.lang.String, java.lang.String)">removeExtension</A>, <A HREF="../../../../org/apache/openjpa/meta/Extensions.html#validateDataStoreExtensionPrefix(java.lang.String)">validateDataStoreExtensionPrefix</A>, <A HREF="../../../../org/apache/openjpa/meta/Extensions.html#validateExtensionKeys()">validateExtensionKeys</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>

<!-- ============ FIELD DETAIL =========== -->

<A NAME="field_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Field Detail</B></FONT></TH>
</TR>
</TABLE>

<A NAME="ID_UNKNOWN"><!-- --></A><H3>
ID_UNKNOWN</H3>
<PRE>
public static final int <B>ID_UNKNOWN</B></PRE>
<DL>
<DD>Unknown identity type.
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.apache.openjpa.meta.ClassMetaData.ID_UNKNOWN">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="ID_DATASTORE"><!-- --></A><H3>
ID_DATASTORE</H3>
<PRE>
public static final int <B>ID_DATASTORE</B></PRE>
<DL>
<DD>Datastore identity type.
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.apache.openjpa.meta.ClassMetaData.ID_DATASTORE">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="ID_APPLICATION"><!-- --></A><H3>
ID_APPLICATION</H3>
<PRE>
public static final int <B>ID_APPLICATION</B></PRE>
<DL>
<DD>Application identity type.
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.apache.openjpa.meta.ClassMetaData.ID_APPLICATION">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="ACCESS_UNKNOWN"><!-- --></A><H3>
ACCESS_UNKNOWN</H3>
<PRE>
public static final int <B>ACCESS_UNKNOWN</B></PRE>
<DL>
<DD>Unknown access type.
<P>
<DL>
</DL>
</DL>
<HR>

<A NAME="ACCESS_FIELD"><!-- --></A><H3>
ACCESS_FIELD</H3>
<PRE>
public static final int <B>ACCESS_FIELD</B></PRE>
<DL>
<DD>Persistent attributes are accessed via direct field access. Bit flag.
<P>
<DL>
</DL>
</DL>
<HR>

<A NAME="ACCESS_PROPERTY"><!-- --></A><H3>
ACCESS_PROPERTY</H3>
<PRE>
public static final int <B>ACCESS_PROPERTY</B></PRE>
<DL>
<DD>Persistent attributes are accessed via setters and getters. Bit flag.
<P>
<DL>
</DL>
</DL>
<HR>

<A NAME="ACCESS_EXPLICIT"><!-- --></A><H3>
ACCESS_EXPLICIT</H3>
<PRE>
public static final int <B>ACCESS_EXPLICIT</B></PRE>
<DL>
<DD>Persistent class has explicitly defined an access type. 
 This will allow the attributes to use mixed access i.e. some field 
 may use ACCESS_FIELD while others ACCESS_PROPERTY.
<P>
<DL>
</DL>
</DL>
<HR>

<A NAME="SYNTHETIC"><!-- --></A><H3>
SYNTHETIC</H3>
<PRE>
public static final <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>SYNTHETIC</B></PRE>
<DL>
<DD>Value for using a synthetic detached state field, which is the default.
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.apache.openjpa.meta.ClassMetaData.SYNTHETIC">Constant Field Values</A></DL>
</DL>
<HR>

<A NAME="DEFAULT_STRING"><!-- --></A><H3>
DEFAULT_STRING</H3>
<PRE>
protected static final <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>DEFAULT_STRING</B></PRE>
<DL>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.apache.openjpa.meta.ClassMetaData.DEFAULT_STRING">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="ClassMetaData(java.lang.Class, org.apache.openjpa.meta.MetaDataRepository)"><!-- --></A><H3>
ClassMetaData</H3>
<PRE>
protected <B>ClassMetaData</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&lt;?&gt;&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 described type and repository.
<P>
</DL>
<HR>

<A NAME="ClassMetaData(org.apache.openjpa.meta.ValueMetaData)"><!-- --></A><H3>
ClassMetaData</H3>
<PRE>
protected <B>ClassMetaData</B>(<A HREF="../../../../org/apache/openjpa/meta/ValueMetaData.html" title="interface in org.apache.openjpa.meta">ValueMetaData</A>&nbsp;owner)</PRE>
<DL>
<DD>Embedded constructor. Supply embedding value.
<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="getRepository()"><!-- --></A><H3>
getRepository</H3>
<PRE>
public <A HREF="../../../../org/apache/openjpa/meta/MetaDataRepository.html" title="class in org.apache.openjpa.meta">MetaDataRepository</A> <B>getRepository</B>()</PRE>
<DL>
<DD>Return the owning repository.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/openjpa/meta/MetaDataContext.html#getRepository()">getRepository</A></CODE> in interface <CODE><A HREF="../../../../org/apache/openjpa/meta/MetaDataContext.html" title="interface in org.apache.openjpa.meta">MetaDataContext</A></CODE><DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/openjpa/meta/Extensions.html#getRepository()">getRepository</A></CODE> in class <CODE><A HREF="../../../../org/apache/openjpa/meta/Extensions.html" title="class in org.apache.openjpa.meta">Extensions</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getEmbeddingMetaData()"><!-- --></A><H3>
getEmbeddingMetaData</H3>
<PRE>
public <A HREF="../../../../org/apache/openjpa/meta/ValueMetaData.html" title="interface in org.apache.openjpa.meta">ValueMetaData</A> <B>getEmbeddingMetaData</B>()</PRE>
<DL>
<DD>If this metadata is for an embedded object, returning the owning value.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getDescribedType()"><!-- --></A><H3>
getDescribedType</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&lt;?&gt; <B>getDescribedType</B>()</PRE>
<DL>
<DD>The persistence capable class described by this metadata.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="setDescribedType(java.lang.Class)"><!-- --></A><H3>
setDescribedType</H3>
<PRE>
protected void <B>setDescribedType</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&lt;?&gt;&nbsp;type)</PRE>
<DL>
<DD>Set the class described by this metadata. The type may be reset when
 an embedded value changes its declared type.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getEnvClassLoader()"><!-- --></A><H3>
getEnvClassLoader</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</A> <B>getEnvClassLoader</B>()</PRE>
<DL>
<DD>The environmental loader used when loading this metadata.
 The class metadata should use this loader when loading metadata for
 its superclass and field types.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="setEnvClassLoader(java.lang.ClassLoader)"><!-- --></A><H3>
setEnvClassLoader</H3>
<PRE>
public void <B>setEnvClassLoader</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</A>&nbsp;loader)</PRE>
<DL>
<DD>The class environmental loader used when loading this metadata.
 The class metadata should use this loader when loading metadata for
 its superclass and field types.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getPCSuperclass()"><!-- --></A><H3>
getPCSuperclass</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&lt;?&gt; <B>getPCSuperclass</B>()</PRE>
<DL>
<DD>The persistence capable superclass of the described type.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="setPCSuperclass(java.lang.Class)"><!-- --></A><H3>
setPCSuperclass</H3>
<PRE>
public void <B>setPCSuperclass</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&lt;?&gt;&nbsp;pc)</PRE>
<DL>
<DD>The persistence capable superclass of the described type.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getPCSuperclassMetaData()"><!-- --></A><H3>
getPCSuperclassMetaData</H3>
<PRE>
public <A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A> <B>getPCSuperclassMetaData</B>()</PRE>
<DL>
<DD>The metadata for this class' superclass.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="setPCSuperclassMetaData(org.apache.openjpa.meta.ClassMetaData)"><!-- --></A><H3>
setPCSuperclassMetaData</H3>
<PRE>
public void <B>setPCSuperclassMetaData</B>(<A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>&nbsp;meta)</PRE>
<DL>
<DD>The metadata for this class' superclass.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="isMapped()"><!-- --></A><H3>
isMapped</H3>
<PRE>
public boolean <B>isMapped</B>()</PRE>
<DL>
<DD>Whether this class is mapped to the datastore. By default, only
 returns false if class is embedded-only, but subclasses might override
 to allow unmapped other types.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getMappedPCSuperclassMetaData()"><!-- --></A><H3>
getMappedPCSuperclassMetaData</H3>
<PRE>
public <A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A> <B>getMappedPCSuperclassMetaData</B>()</PRE>
<DL>
<DD>Return the closest mapped superclass.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getPCSubclasses()"><!-- --></A><H3>
getPCSubclasses</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&lt;?&gt;[] <B>getPCSubclasses</B>()</PRE>
<DL>
<DD>Return the known persistence capable subclasses of the described type,
 or empty array if none or if this is embedded metadata.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getPCSubclassMetaDatas()"><!-- --></A><H3>
getPCSubclassMetaDatas</H3>
<PRE>
public <A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>[] <B>getPCSubclassMetaDatas</B>()</PRE>
<DL>
<DD>Return the metadata for the known persistence capable subclasses of
 the described type, or empty array if none or if this is embedded
 metadata.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getMappedPCSubclassMetaDatas()"><!-- --></A><H3>
getMappedPCSubclassMetaDatas</H3>
<PRE>
public <A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>[] <B>getMappedPCSubclassMetaDatas</B>()</PRE>
<DL>
<DD>Return all mapped subclasses.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getIdentityType()"><!-- --></A><H3>
getIdentityType</H3>
<PRE>
public int <B>getIdentityType</B>()</PRE>
<DL>
<DD>The type of identity being used. This will be one of:
 <ul>
 <li><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#ID_UNKNOWN"><CODE>ID_UNKNOWN</CODE></A>: unknown identity type</li>
 <li><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#ID_DATASTORE"><CODE>ID_DATASTORE</CODE></A>: identity managed by the data store and
 independent    of the fields of the instance</li>
 <li><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#ID_APPLICATION"><CODE>ID_APPLICATION</CODE></A>: identity managed by the application and
 defined by one or more fields of the instance</li>
 </ul> If unspecified, defaults to <A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#ID_DATASTORE"><CODE>ID_DATASTORE</CODE></A> if there are no
 primary key fields, and <A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#ID_APPLICATION"><CODE>ID_APPLICATION</CODE></A> otherwise.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="setIdentityType(int)"><!-- --></A><H3>
setIdentityType</H3>
<PRE>
public void <B>setIdentityType</B>(int&nbsp;type)</PRE>
<DL>
<DD>The type of identity being used. This will be one of:
 <ul>
 <li><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#ID_UNKNOWN"><CODE>ID_UNKNOWN</CODE></A>: unknown identity type</li>
 <li><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#ID_DATASTORE"><CODE>ID_DATASTORE</CODE></A>: identity managed by the data store and
 independent    of the fields of the instance</li>
 <li><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#ID_APPLICATION"><CODE>ID_APPLICATION</CODE></A>: identity managed by the application and
 defined by one or more fields of the instance</li>
 </ul> If unspecified, defaults to <A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#ID_DATASTORE"><CODE>ID_DATASTORE</CODE></A> if there are no
 primary key fields, and <A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#ID_APPLICATION"><CODE>ID_APPLICATION</CODE></A> otherwise.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getObjectIdType()"><!-- --></A><H3>
getObjectIdType</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&lt;?&gt; <B>getObjectIdType</B>()</PRE>
<DL>
<DD>The metadata-specified class to use for the object ID.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="setObjectIdType(java.lang.Class, boolean)"><!-- --></A><H3>
setObjectIdType</H3>
<PRE>
public void <B>setObjectIdType</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&lt;?&gt;&nbsp;cls,
                            boolean&nbsp;shared)</PRE>
<DL>
<DD>The metadata-specified class to use for the object ID.
 When there is IdClass annotation, AnnotationMetaDataParser
 will call this method to set ObjectId type. However, if 
 this is a derived identity in the child entity where a 
 relation field (parent entity) is used as an id, and this 
 relation field has an IdClass, the IdClass annotation in 
 the child entity can be ignored as Openjpa will automatically   
 wrap parent's IdClass as child's IdClass.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="isObjectIdTypeShared()"><!-- --></A><H3>
isObjectIdTypeShared</H3>
<PRE>
public boolean <B>isObjectIdTypeShared</B>()</PRE>
<DL>
<DD>Whether this type uses an application identity class that is shared
 with other classes, and is therefore wrapped in an <A HREF="../../../../org/apache/openjpa/util/ObjectId.html" title="class in org.apache.openjpa.util"><CODE>ObjectId</CODE></A>.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="isOpenJPAIdentity()"><!-- --></A><H3>
isOpenJPAIdentity</H3>
<PRE>
public boolean <B>isOpenJPAIdentity</B>()</PRE>
<DL>
<DD>Whether this type uses OpenJPA identity.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getIdentityStrategy()"><!-- --></A><H3>
getIdentityStrategy</H3>
<PRE>
public int <B>getIdentityStrategy</B>()</PRE>
<DL>
<DD>The strategy to use for datastore identity generation.
 One of the constants from <A HREF="../../../../org/apache/openjpa/meta/ValueStrategies.html" title="class in org.apache.openjpa.meta"><CODE>ValueStrategies</CODE></A>.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="setIdentityStrategy(int)"><!-- --></A><H3>
setIdentityStrategy</H3>
<PRE>
public void <B>setIdentityStrategy</B>(int&nbsp;strategy)</PRE>
<DL>
<DD>The strategy to use for datastore identity generation.
 One of the constants from <A HREF="../../../../org/apache/openjpa/meta/ValueStrategies.html" title="class in org.apache.openjpa.meta"><CODE>ValueStrategies</CODE></A>.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getIdentitySequenceName()"><!-- --></A><H3>
getIdentitySequenceName</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getIdentitySequenceName</B>()</PRE>
<DL>
<DD>The datastore identity sequence name, or null for none.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="setIdentitySequenceName(java.lang.String)"><!-- --></A><H3>
setIdentitySequenceName</H3>
<PRE>
public void <B>setIdentitySequenceName</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;seqName)</PRE>
<DL>
<DD>The datastore identity sequence name, or null for none.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getIdentitySequenceMetaData()"><!-- --></A><H3>
getIdentitySequenceMetaData</H3>
<PRE>
public <A HREF="../../../../org/apache/openjpa/meta/SequenceMetaData.html" title="class in org.apache.openjpa.meta">SequenceMetaData</A> <B>getIdentitySequenceMetaData</B>()</PRE>
<DL>
<DD>Metadata for the datastore identity sequence.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getLifecycleMetaData()"><!-- --></A><H3>
getLifecycleMetaData</H3>
<PRE>
public <A HREF="../../../../org/apache/openjpa/meta/LifecycleMetaData.html" title="class in org.apache.openjpa.meta">LifecycleMetaData</A> <B>getLifecycleMetaData</B>()</PRE>
<DL>
<DD>Information about lifecycle callbacks for this class.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getTypeAlias()"><!-- --></A><H3>
getTypeAlias</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getTypeAlias</B>()</PRE>
<DL>
<DD>Returns the alias for the described type, or <code>null</code> if none
 has been set.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>See Also:</B><DD><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#setTypeAlias(java.lang.String)"><CODE>setTypeAlias(java.lang.String)</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="setTypeAlias(java.lang.String)"><!-- --></A><H3>
setTypeAlias</H3>
<PRE>
public void <B>setTypeAlias</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;alias)</PRE>
<DL>
<DD>Sets the alias for the described type. The alias can be
 any arbitrary string that the implementation can later use to
 refer to the class. Note that at runtime, only the alias
 computed when the persistent type was enhanced is used.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>alias</CODE> - the alias name to apply to the described type</DL>
</DD>
</DL>
<HR>

<A NAME="getAccessType()"><!-- --></A><H3>
getAccessType</H3>
<PRE>
public int <B>getAccessType</B>()</PRE>
<DL>
<DD>The access type used by this class.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="setAccessType(int)"><!-- --></A><H3>
setAccessType</H3>
<PRE>
public void <B>setAccessType</B>(int&nbsp;type)</PRE>
<DL>
<DD>Sets the access type.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="isExplicitAccess()"><!-- --></A><H3>
isExplicitAccess</H3>
<PRE>
public boolean <B>isExplicitAccess</B>()</PRE>
<DL>
<DD>Affirms if access style is explicitly defined.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="isMixedAccess()"><!-- --></A><H3>
isMixedAccess</H3>
<PRE>
public boolean <B>isMixedAccess</B>()</PRE>
<DL>
<DD>Affirms if attributes of this class use mixed access types.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getRequiresExtent()"><!-- --></A><H3>
getRequiresExtent</H3>
<PRE>
public boolean <B>getRequiresExtent</B>()</PRE>
<DL>
<DD>Whether the type requires extent management.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="setRequiresExtent(boolean)"><!-- --></A><H3>
setRequiresExtent</H3>
<PRE>
public void <B>setRequiresExtent</B>(boolean&nbsp;req)</PRE>
<DL>
<DD>Whether the type requires extent management.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="isEmbeddedOnly()"><!-- --></A><H3>
isEmbeddedOnly</H3>
<PRE>
public boolean <B>isEmbeddedOnly</B>()</PRE>
<DL>
<DD>Whether the type can only be used as an embedded object.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="setEmbeddedOnly(boolean)"><!-- --></A><H3>
setEmbeddedOnly</H3>
<PRE>
public void <B>setEmbeddedOnly</B>(boolean&nbsp;embed)</PRE>
<DL>
<DD>Whether the type can only be used as an embedded object.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="isEmbeddable()"><!-- --></A><H3>
isEmbeddable</H3>
<PRE>
public boolean <B>isEmbeddable</B>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="setEmbeddable()"><!-- --></A><H3>
setEmbeddable</H3>
<PRE>
public void <B>setEmbeddable</B>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="isIntercepting()"><!-- --></A><H3>
isIntercepting</H3>
<PRE>
public boolean <B>isIntercepting</B>()</PRE>
<DL>
<DD>Whether the type's fields are actively intercepted, either by
 redefinition or enhancement.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="setIntercepting(boolean)"><!-- --></A><H3>
setIntercepting</H3>
<PRE>
public void <B>setIntercepting</B>(boolean&nbsp;intercepting)</PRE>
<DL>
<DD>Whether the type's fields are actively intercepted, either by
 redefinition or enhancement.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="isManagedInterface()"><!-- --></A><H3>
isManagedInterface</H3>
<PRE>
public boolean <B>isManagedInterface</B>()</PRE>
<DL>
<DD>Whether the type is a managed interface.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="setManagedInterface(boolean)"><!-- --></A><H3>
setManagedInterface</H3>
<PRE>
public void <B>setManagedInterface</B>(boolean&nbsp;managedInterface)</PRE>
<DL>
<DD>Whether the type is a managed interface
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getInterfaceImpl()"><!-- --></A><H3>
getInterfaceImpl</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&lt;?&gt; <B>getInterfaceImpl</B>()</PRE>
<DL>
<DD>Return the managed interface implementor if any.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="setInterfaceImpl(java.lang.Class)"><!-- --></A><H3>
setInterfaceImpl</H3>
<PRE>
public void <B>setInterfaceImpl</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&lt;?&gt;&nbsp;impl)</PRE>
<DL>
<DD>Set the managed interface implementor class.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getDeclaredInterfaces()"><!-- --></A><H3>
getDeclaredInterfaces</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&lt;?&gt;[] <B>getDeclaredInterfaces</B>()</PRE>
<DL>
<DD>Return all explicitly declared interfaces this class implements.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="addDeclaredInterface(java.lang.Class)"><!-- --></A><H3>
addDeclaredInterface</H3>
<PRE>
public void <B>addDeclaredInterface</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&lt;?&gt;&nbsp;iface)</PRE>
<DL>
<DD>Explicitly declare the given interface among the ones this
 class implements.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="removeDeclaredInterface(java.lang.Class)"><!-- --></A><H3>
removeDeclaredInterface</H3>
<PRE>
public boolean <B>removeDeclaredInterface</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&lt;?&gt;&nbsp;iface)</PRE>
<DL>
<DD>Remove the given interface from the declared list.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="setInterfacePropertyAlias(java.lang.Class, java.lang.String, java.lang.String)"><!-- --></A><H3>
setInterfacePropertyAlias</H3>
<PRE>
public void <B>setInterfacePropertyAlias</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&lt;?&gt;&nbsp;iface,
                                      <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;orig,
                                      <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;local)</PRE>
<DL>
<DD>Alias properties from the given interface during  queries to
 the local field.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getInterfacePropertyAlias(java.lang.Class, java.lang.String)"><!-- --></A><H3>
getInterfacePropertyAlias</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getInterfacePropertyAlias</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&lt;?&gt;&nbsp;iface,
                                        <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;orig)</PRE>
<DL>
<DD>Get local field alias for the given interface property.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getInterfaceAliasedProperties(java.lang.Class)"><!-- --></A><H3>
getInterfaceAliasedProperties</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[] <B>getInterfaceAliasedProperties</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&lt;?&gt;&nbsp;iface)</PRE>
<DL>
<DD>Return all aliases property named for the given interface.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getExtraFieldDataLength()"><!-- --></A><H3>
getExtraFieldDataLength</H3>
<PRE>
public int <B>getExtraFieldDataLength</B>()</PRE>
<DL>
<DD>Return the number of fields that use impl or intermediate data, in
 order to create a compacted array for storage of said data.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getExtraFieldDataIndex(int)"><!-- --></A><H3>
getExtraFieldDataIndex</H3>
<PRE>
public int <B>getExtraFieldDataIndex</B>(int&nbsp;field)</PRE>
<DL>
<DD>Return the intermediate field data index of the given field
 in the compacted array, or -1 if the field does not use extra data.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>See Also:</B><DD><A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html#getExtraFieldDataLength()"><CODE>getExtraFieldDataLength()</CODE></A></DL>
</DD>
</DL>
<HR>

<A NAME="isAccessibleField(java.lang.String)"><!-- --></A><H3>
isAccessibleField</H3>
<PRE>
public boolean <B>isAccessibleField</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;field)</PRE>
<DL>
<DD>Return whether the given name represents a managed or static field of
 this class, including superclass fields.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getProxyFields()"><!-- --></A><H3>
getProxyFields</H3>
<PRE>
public <A HREF="../../../../org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>[] <B>getProxyFields</B>()</PRE>
<DL>
<DD>Return all fields that are types that need to be wrappered by a proxy.
 The types that need to be proxied are:
 <p>
  <li>org.apache.openjpa.meta.JavaTypes.CALENDAR
  <li>org.apache.openjpa.meta.JavaTypes.COLLECTION
  <li>org.apache.openjpa.meta.JavaTypes.DATE
  <li>org.apache.openjpa.meta.JavaTypes.MAP
  <li>org.apache.openjpa.meta.JavaTypes.OBJECT
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getLrsFields()"><!-- --></A><H3>
getLrsFields</H3>
<PRE>
public <A HREF="../../../../org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>[] <B>getLrsFields</B>()</PRE>
<DL>
<DD>Return all large result set fields. Will never return null.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getFields()"><!-- --></A><H3>
getFields</H3>
<PRE>
public <A HREF="../../../../org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>[] <B>getFields</B>()</PRE>
<DL>
<DD>Return all field metadata, including superclass fields.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getSuperclassField(org.apache.openjpa.meta.FieldMetaData)"><!-- --></A><H3>
getSuperclassField</H3>
<PRE>
protected <A HREF="../../../../org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A> <B>getSuperclassField</B>(<A HREF="../../../../org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>&nbsp;supField)</PRE>
<DL>
<DD>Return the superclass copy of the given field.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getDeclaredFields()"><!-- --></A><H3>
getDeclaredFields</H3>
<PRE>
public <A HREF="../../../../org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>[] <B>getDeclaredFields</B>()</PRE>
<DL>
<DD>Return only the fields for this class, without superclass fields.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getPrimaryKeyFields()"><!-- --></A><H3>
getPrimaryKeyFields</H3>
<PRE>
public <A HREF="../../../../org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>[] <B>getPrimaryKeyFields</B>()</PRE>
<DL>
<DD>Return primary key fields, or empty array if none. The order
 in which the keys are returned will be the order in which
 the fields are declared, starting at the least-derived superclass
 and ending with the primary key fields of the most-derived subclass.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getDefaultFetchGroupFields()"><!-- --></A><H3>
getDefaultFetchGroupFields</H3>
<PRE>
public <A HREF="../../../../org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>[] <B>getDefaultFetchGroupFields</B>()</PRE>
<DL>
<DD>Return the list of fields in the default fetch group,
 including superclass fields, or an empty array if none.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getVersionField()"><!-- --></A><H3>
getVersionField</H3>
<PRE>
public <A HREF="../../../../org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A> <B>getVersionField</B>()</PRE>
<DL>
<DD>Return the version field for this class, if any.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getField(int)"><!-- --></A><H3>
getField</H3>
<PRE>
public <A HREF="../../../../org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A> <B>getField</B>(int&nbsp;index)</PRE>
<DL>
<DD>Return the metadata for the persistent or transactional field with
 the given absolute index.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>the field's metadata, or null if not found</DL>
</DD>
</DL>
<HR>

<A NAME="getDeclaredField(int)"><!-- --></A><H3>
getDeclaredField</H3>
<PRE>
public <A HREF="../../../../org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A> <B>getDeclaredField</B>(int&nbsp;index)</PRE>
<DL>
<DD>Return the metadata for the persistent or transactional field with
 the given relative index.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>the field's metadata, or null if not found</DL>
</DD>
</DL>
<HR>

<A NAME="getField(java.lang.String)"><!-- --></A><H3>
getField</H3>
<PRE>
public <A HREF="../../../../org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A> <B>getField</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</PRE>
<DL>
<DD>Return the metadata for the persistent or transactional field with
 the given name.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>the field's metadata, or null if not found</DL>
</DD>
</DL>
<HR>

<A NAME="getDeclaredField(java.lang.String)"><!-- --></A><H3>
getDeclaredField</H3>
<PRE>
public <A HREF="../../../../org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A> <B>getDeclaredField</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</PRE>
<DL>
<DD>Return the metadata for the persistent or transactional field with
 the given name, without including superclass fields.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>the field's metadata, or null if not found</DL>
</DD>
</DL>
<HR>

<A NAME="getDeclaredUnmanagedFields()"><!-- --></A><H3>
getDeclaredUnmanagedFields</H3>
<PRE>
public <A HREF="../../../../org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>[] <B>getDeclaredUnmanagedFields</B>()</PRE>
<DL>
<DD>Return any fields that were added as non-managed.
 All other methods to get fields return only those that are managed.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="addDeclaredField(java.lang.String, java.lang.Class)"><!-- --></A><H3>
addDeclaredField</H3>
<PRE>
public <A HREF="../../../../org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A> <B>addDeclaredField</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name,
                                      <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&lt;?&gt;&nbsp;type)</PRE>
<DL>
<DD>Add a new field metadata to this class.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="removeDeclaredField(org.apache.openjpa.meta.FieldMetaData)"><!-- --></A><H3>
removeDeclaredField</H3>
<PRE>
public boolean <B>removeDeclaredField</B>(<A HREF="../../../../org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>&nbsp;field)</PRE>
<DL>
<DD>Remove the given field from management.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>true if the field was removed, false otherwise</DL>
</DD>
</DL>
<HR>

<A NAME="getDefinedSuperclassField(java.lang.String)"><!-- --></A><H3>
getDefinedSuperclassField</H3>
<PRE>
public <A HREF="../../../../org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A> <B>getDefinedSuperclassField</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</PRE>
<DL>
<DD>Return the defined superclass field with the given name, or null if none.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="addDefinedSuperclassField(java.lang.String, java.lang.Class, java.lang.Class)"><!-- --></A><H3>
addDefinedSuperclassField</H3>
<PRE>
public <A HREF="../../../../org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A> <B>addDefinedSuperclassField</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name,
                                               <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&lt;?&gt;&nbsp;type,
                                               <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&lt;?&gt;&nbsp;sup)</PRE>
<DL>
<DD>Add a new defined superclass field metadata to this class.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="removeDefinedSuperclassField(org.apache.openjpa.meta.FieldMetaData)"><!-- --></A><H3>
removeDefinedSuperclassField</H3>
<PRE>
public boolean <B>removeDefinedSuperclassField</B>(<A HREF="../../../../org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>&nbsp;field)</PRE>
<DL>
<DD>Remove the given field from management.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>true if the field was removed, false otherwise</DL>
</DD>
</DL>
<HR>

<A NAME="defineSuperclassFields(boolean)"><!-- --></A><H3>
defineSuperclassFields</H3>
<PRE>
public void <B>defineSuperclassFields</B>(boolean&nbsp;force)</PRE>
<DL>
<DD>Incorporate superclass fields redefined in this subclass into this
 metadata. This method is generally called after metadata is resolved
 and mapping information is loaded, but before mapping resolve.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>force</CODE> - whether to force re-mapping of even mapped superclass fields</DL>
</DD>
</DL>
<HR>

<A NAME="getDefinedFields()"><!-- --></A><H3>
getDefinedFields</H3>
<PRE>
public <A HREF="../../../../org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>[] <B>getDefinedFields</B>()</PRE>
<DL>
<DD>Returns an array of all the fields defined by this class.
 This includes mapped declared fields and any concrete mapping of
 unmapped superclass fields performed by this class.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getFieldsInListingOrder()"><!-- --></A><H3>
getFieldsInListingOrder</H3>
<PRE>
public <A HREF="../../../../org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>[] <B>getFieldsInListingOrder</B>()</PRE>
<DL>
<DD>Returns all fields in the order they are listed in the metadata
 file. Unlisted fields are placed after listed ones.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getDefinedFieldsInListingOrder()"><!-- --></A><H3>
getDefinedFieldsInListingOrder</H3>
<PRE>
public <A HREF="../../../../org/apache/openjpa/meta/FieldMetaData.html" title="class in org.apache.openjpa.meta">FieldMetaData</A>[] <B>getDefinedFieldsInListingOrder</B>()</PRE>
<DL>
<DD>Returns all fields defined by this class in the order they are listed
 in the metadata file. Unlisted fields are placed after listed ones.
 This array includes declared transactional and unmanaged fields.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getDataCacheName()"><!-- --></A><H3>
getDataCacheName</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getDataCacheName</B>()</PRE>
<DL>
<DD>The name of the data cache that stores the managed instance of this class, by default.
 This can be overwritten by per-instance basis cache distribution policy.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>null if this class is disabled from cache by @DataCache(enabled=false).
         <A HREF="../../../../org/apache/openjpa/datacache/DataCache.html#NAME_DEFAULT">default</A> if @DataCache(enabled=true) without a name.
         Otherwise, data cache name set by the user via @DataCache name attribute.</DL>
</DD>
</DL>
<HR>

<A NAME="setDataCacheName(java.lang.String)"><!-- --></A><H3>
setDataCacheName</H3>
<PRE>
public void <B>setDataCacheName</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</PRE>
<DL>
<DD>Set the cache name for this class.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>can</CODE> - be null to disable cache.</DL>
</DD>
</DL>
<HR>

<A NAME="getDataCacheEnabled()"><!-- --></A><H3>
getDataCacheEnabled</H3>
<PRE>
public boolean <B>getDataCacheEnabled</B>()</PRE>
<DL>
<DD>Affirms true if this receiver is annotated with @DataCache and is not disabled. 
 A separate state variable is necessary besides the name of the cache defaulted to a special string.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getDataCacheTimeout()"><!-- --></A><H3>
getDataCacheTimeout</H3>
<PRE>
public int <B>getDataCacheTimeout</B>()</PRE>
<DL>
<DD>The cache timeout for this class. -1 indicates no timeout.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="setDataCacheTimeout(int)"><!-- --></A><H3>
setDataCacheTimeout</H3>
<PRE>
public void <B>setDataCacheTimeout</B>(int&nbsp;timeout)</PRE>
<DL>
<DD>The cache timeout for this class. -1 indicates no timeout.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getDataCache()"><!-- --></A><H3>
getDataCache</H3>
<PRE>
public <A HREF="../../../../org/apache/openjpa/datacache/DataCache.html" title="interface in org.apache.openjpa.datacache">DataCache</A> <B>getDataCache</B>()</PRE>
<DL>
<DD>Return the data cache for this class, or null if it is not cachable.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="isDetachable()"><!-- --></A><H3>
isDetachable</H3>
<PRE>
public boolean <B>isDetachable</B>()</PRE>
<DL>
<DD>Whether instances are detachable.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="setDetachable(boolean)"><!-- --></A><H3>
setDetachable</H3>
<PRE>
public void <B>setDetachable</B>(boolean&nbsp;detachable)</PRE>
<DL>
<DD>Whether instances are detachable.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getDetachedState()"><!-- --></A><H3>
getDetachedState</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getDetachedState</B>()</PRE>
<DL>
<DD>The name of the detach state field, or null if none.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="setDetachedState(java.lang.String)"><!-- --></A><H3>
setDetachedState</H3>
<PRE>
public void <B>setDetachedState</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;field)</PRE>
<DL>
<DD>The name of the detach state field, or null if none.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getDetachedStateField()"><!-- --></A><H3>
getDetachedStateField</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/reflect/Field.html?is-external=true" title="class or interface in java.lang.reflect">Field</A> <B>getDetachedStateField</B>()</PRE>
<DL>
<DD>Return the detach state field, or null if none.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="usesDetachedState()"><!-- --></A><H3>
usesDetachedState</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</A> <B>usesDetachedState</B>()</PRE>
<DL>
<DD>Whether an instance of this type has detached state.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>true if a detached instance must have detached state, false
 if it does not, and null if it may use a
 manually-constructed instance without detached state</DL>
</DD>
</DL>
<HR>

<A NAME="clearAllFieldCache()"><!-- --></A><H3>
clearAllFieldCache</H3>
<PRE>
protected void <B>clearAllFieldCache</B>()</PRE>
<DL>
<DD>Clear cached field data.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="clearDefinedFieldCache()"><!-- --></A><H3>
clearDefinedFieldCache</H3>
<PRE>
protected void <B>clearDefinedFieldCache</B>()</PRE>
<DL>
<DD>Clear defined field data.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="clearFieldCache()"><!-- --></A><H3>
clearFieldCache</H3>
<PRE>
protected void <B>clearFieldCache</B>()</PRE>
<DL>
<DD>Clear cached field data.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="clearSubclassCache()"><!-- --></A><H3>
clearSubclassCache</H3>
<PRE>
protected void <B>clearSubclassCache</B>()</PRE>
<DL>
<DD>Clear cached subclass data.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="hashCode()"><!-- --></A><H3>
hashCode</H3>
<PRE>
public int <B>hashCode</B>()</PRE>
<DL>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A></CODE> in class <CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="equals(java.lang.Object)"><!-- --></A><H3>
equals</H3>
<PRE>
public boolean <B>equals</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;other)</PRE>
<DL>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A></CODE> in class <CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="compareTo(org.apache.openjpa.meta.ClassMetaData)"><!-- --></A><H3>
compareTo</H3>
<PRE>
public int <B>compareTo</B>(<A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>&nbsp;other)</PRE>
<DL>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Comparable.html?is-external=true#compareTo(T)" title="class or interface in java.lang">compareTo</A></CODE> in interface <CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</A>&lt;<A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>&gt;</CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="toString()"><!-- --></A><H3>
toString</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>toString</B>()</PRE>
<DL>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A></CODE> in class <CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getResolve()"><!-- --></A><H3>
getResolve</H3>
<PRE>
public int <B>getResolve</B>()</PRE>
<DL>
<DD>The resolve mode for this metadata.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="setResolve(int)"><!-- --></A><H3>
setResolve</H3>
<PRE>
public void <B>setResolve</B>(int&nbsp;mode)</PRE>
<DL>
<DD>The resolve mode for this metadata.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="setResolve(int, boolean)"><!-- --></A><H3>
setResolve</H3>
<PRE>
public void <B>setResolve</B>(int&nbsp;mode,
                       boolean&nbsp;on)</PRE>
<DL>
<DD>The resolve mode for this metadata.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="resolve(int)"><!-- --></A><H3>
resolve</H3>
<PRE>
public boolean <B>resolve</B>(int&nbsp;mode)</PRE>
<DL>
<DD>Resolve and validate metadata. Return true if already resolved.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="resolveMeta(boolean)"><!-- --></A><H3>
resolveMeta</H3>
<PRE>
protected void <B>resolveMeta</B>(boolean&nbsp;runtime)</PRE>
<DL>
<DD>Resolve metadata.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="validateMeta(boolean)"><!-- --></A><H3>
validateMeta</H3>
<PRE>
protected void <B>validateMeta</B>(boolean&nbsp;runtime)</PRE>
<DL>
<DD>Validate resolved metadata.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="resolveMapping(boolean)"><!-- --></A><H3>
resolveMapping</H3>
<PRE>
protected void <B>resolveMapping</B>(boolean&nbsp;runtime)</PRE>
<DL>
<DD>Resolve mapping data. Logs resolve message and resolves super by default.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="validateMapping(boolean)"><!-- --></A><H3>
validateMapping</H3>
<PRE>
protected void <B>validateMapping</B>(boolean&nbsp;runtime)</PRE>
<DL>
<DD>Validate mapping data.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="initializeMapping()"><!-- --></A><H3>
initializeMapping</H3>
<PRE>
protected void <B>initializeMapping</B>()</PRE>
<DL>
<DD>Initialize mapping. Logs init message by default.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="useIdClassFromParent()"><!-- --></A><H3>
useIdClassFromParent</H3>
<PRE>
public boolean <B>useIdClassFromParent</B>()</PRE>
<DL>
<DD>Return true if this class uses IdClass derived from idClass of the 
 parent entity which annotated as id in the child class. 
 In this case, there are no key fields in the child entity corresponding 
 to the fields in the IdClass.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getDeclaredFetchGroups()"><!-- --></A><H3>
getDeclaredFetchGroups</H3>
<PRE>
public <A HREF="../../../../org/apache/openjpa/meta/FetchGroup.html" title="class in org.apache.openjpa.meta">FetchGroup</A>[] <B>getDeclaredFetchGroups</B>()</PRE>
<DL>
<DD>Return the fetch groups declared explicitly in this type.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getCustomFetchGroups()"><!-- --></A><H3>
getCustomFetchGroups</H3>
<PRE>
public <A HREF="../../../../org/apache/openjpa/meta/FetchGroup.html" title="class in org.apache.openjpa.meta">FetchGroup</A>[] <B>getCustomFetchGroups</B>()</PRE>
<DL>
<DD>Return all fetch groups for this type, including superclass groups.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getFetchGroup(java.lang.String)"><!-- --></A><H3>
getFetchGroup</H3>
<PRE>
public <A HREF="../../../../org/apache/openjpa/meta/FetchGroup.html" title="class in org.apache.openjpa.meta">FetchGroup</A> <B>getFetchGroup</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</PRE>
<DL>
<DD>Gets a named fetch group. If not available in this receiver then looks
 up the inheritance hierarchy.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - name of a fetch group.
<DT><B>Returns:</B><DD>an existing fetch group of the given name if known to this 
 receiver or any of its superclasses. Otherwise null.</DL>
</DD>
</DL>
<HR>

<A NAME="addDeclaredFetchGroup(java.lang.String)"><!-- --></A><H3>
addDeclaredFetchGroup</H3>
<PRE>
public <A HREF="../../../../org/apache/openjpa/meta/FetchGroup.html" title="class in org.apache.openjpa.meta">FetchGroup</A> <B>addDeclaredFetchGroup</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;name)</PRE>
<DL>
<DD>Adds fetch group of the given name, or returns existing instance.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - a non-null, non-empty name. Must be unique within this
 receiver's scope. The super class <em>may</em> have a group with
 the same name.</DL>
</DD>
</DL>
<HR>

<A NAME="removeDeclaredFetchGroup(org.apache.openjpa.meta.FetchGroup)"><!-- --></A><H3>
removeDeclaredFetchGroup</H3>
<PRE>
public boolean <B>removeDeclaredFetchGroup</B>(<A HREF="../../../../org/apache/openjpa/meta/FetchGroup.html" title="class in org.apache.openjpa.meta">FetchGroup</A>&nbsp;fg)</PRE>
<DL>
<DD>Remove a declared fetch group.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getSourceFile()"><!-- --></A><H3>
getSourceFile</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io">File</A> <B>getSourceFile</B>()</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../org/apache/openjpa/lib/meta/SourceTracker.html#getSourceFile()">SourceTracker</A></CODE></B></DD>
<DD>Return the file from which this instance was parsed.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/openjpa/lib/meta/SourceTracker.html#getSourceFile()">getSourceFile</A></CODE> in interface <CODE><A HREF="../../../../org/apache/openjpa/lib/meta/SourceTracker.html" title="interface in org.apache.openjpa.lib.meta">SourceTracker</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getSourceScope()"><!-- --></A><H3>
getSourceScope</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A> <B>getSourceScope</B>()</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../org/apache/openjpa/lib/meta/SourceTracker.html#getSourceScope()">SourceTracker</A></CODE></B></DD>
<DD>Return the domain-dependent scope of this instance within its file.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/openjpa/lib/meta/SourceTracker.html#getSourceScope()">getSourceScope</A></CODE> in interface <CODE><A HREF="../../../../org/apache/openjpa/lib/meta/SourceTracker.html" title="interface in org.apache.openjpa.lib.meta">SourceTracker</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getSourceType()"><!-- --></A><H3>
getSourceType</H3>
<PRE>
public int <B>getSourceType</B>()</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../org/apache/openjpa/lib/meta/SourceTracker.html#getSourceType()">SourceTracker</A></CODE></B></DD>
<DD>Return the type of source.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/openjpa/lib/meta/SourceTracker.html#getSourceType()">getSourceType</A></CODE> in interface <CODE><A HREF="../../../../org/apache/openjpa/lib/meta/SourceTracker.html" title="interface in org.apache.openjpa.lib.meta">SourceTracker</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="setSource(java.io.File, int)"><!-- --></A><H3>
setSource</H3>
<PRE>
public void <B>setSource</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io">File</A>&nbsp;file,
                      int&nbsp;srcType)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getResourceName()"><!-- --></A><H3>
getResourceName</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>getResourceName</B>()</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../org/apache/openjpa/lib/meta/SourceTracker.html#getResourceName()">SourceTracker</A></CODE></B></DD>
<DD>Return the domain-meaningful name of the resource that was loaded
 from this source. I.e., if we had loaded the source for a Java
 class, this would return the name of the class.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/openjpa/lib/meta/SourceTracker.html#getResourceName()">getResourceName</A></CODE> in interface <CODE><A HREF="../../../../org/apache/openjpa/lib/meta/SourceTracker.html" title="interface in org.apache.openjpa.lib.meta">SourceTracker</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getLineNumber()"><!-- --></A><H3>
getLineNumber</H3>
<PRE>
public int <B>getLineNumber</B>()</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../org/apache/openjpa/lib/meta/SourceTracker.html#getLineNumber()">SourceTracker</A></CODE></B></DD>
<DD>Return the line number of the file at which this instance was parsed.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/openjpa/lib/meta/SourceTracker.html#getLineNumber()">getLineNumber</A></CODE> in interface <CODE><A HREF="../../../../org/apache/openjpa/lib/meta/SourceTracker.html" title="interface in org.apache.openjpa.lib.meta">SourceTracker</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="setLineNumber(int)"><!-- --></A><H3>
setLineNumber</H3>
<PRE>
public void <B>setLineNumber</B>(int&nbsp;lineNum)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getColNumber()"><!-- --></A><H3>
getColNumber</H3>
<PRE>
public int <B>getColNumber</B>()</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../org/apache/openjpa/lib/meta/SourceTracker.html#getColNumber()">SourceTracker</A></CODE></B></DD>
<DD>Return the column number in the line of the file at which this
 instance was parsed.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/openjpa/lib/meta/SourceTracker.html#getColNumber()">getColNumber</A></CODE> in interface <CODE><A HREF="../../../../org/apache/openjpa/lib/meta/SourceTracker.html" title="interface in org.apache.openjpa.lib.meta">SourceTracker</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="setColNumber(int)"><!-- --></A><H3>
setColNumber</H3>
<PRE>
public void <B>setColNumber</B>(int&nbsp;colNum)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getSourceMode()"><!-- --></A><H3>
getSourceMode</H3>
<PRE>
public int <B>getSourceMode</B>()</PRE>
<DL>
<DD>The source mode this metadata has been loaded under.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="setSourceMode(int)"><!-- --></A><H3>
setSourceMode</H3>
<PRE>
public void <B>setSourceMode</B>(int&nbsp;mode)</PRE>
<DL>
<DD>The source mode this metadata has been loaded under.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="setSourceMode(int, boolean)"><!-- --></A><H3>
setSourceMode</H3>
<PRE>
public void <B>setSourceMode</B>(int&nbsp;mode,
                          boolean&nbsp;on)</PRE>
<DL>
<DD>The source mode this metadata has been loaded under.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getListingIndex()"><!-- --></A><H3>
getListingIndex</H3>
<PRE>
public int <B>getListingIndex</B>()</PRE>
<DL>
<DD>The index in which this class was listed in the metadata. Defaults to
 <code>-1</code> if this class was not listed in the metadata.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="setListingIndex(int)"><!-- --></A><H3>
setListingIndex</H3>
<PRE>
public void <B>setListingIndex</B>(int&nbsp;index)</PRE>
<DL>
<DD>The index in which this field was listed in the metadata. Defaults to
 <code>-1</code> if this class was not listed in the metadata.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getComments()"><!-- --></A><H3>
getComments</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[] <B>getComments</B>()</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../org/apache/openjpa/lib/xml/Commentable.html#getComments()">Commentable</A></CODE></B></DD>
<DD>Return comments, or empty array if none.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/openjpa/lib/xml/Commentable.html#getComments()">getComments</A></CODE> in interface <CODE><A HREF="../../../../org/apache/openjpa/lib/xml/Commentable.html" title="interface in org.apache.openjpa.lib.xml">Commentable</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="setComments(java.lang.String[])"><!-- --></A><H3>
setComments</H3>
<PRE>
public void <B>setComments</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;comments)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../org/apache/openjpa/lib/xml/Commentable.html#setComments(java.lang.String[])">Commentable</A></CODE></B></DD>
<DD>Set comments.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/openjpa/lib/xml/Commentable.html#setComments(java.lang.String[])">setComments</A></CODE> in interface <CODE><A HREF="../../../../org/apache/openjpa/lib/xml/Commentable.html" title="interface in org.apache.openjpa.lib.xml">Commentable</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="copy(org.apache.openjpa.meta.ClassMetaData)"><!-- --></A><H3>
copy</H3>
<PRE>
public void <B>copy</B>(<A HREF="../../../../org/apache/openjpa/meta/ClassMetaData.html" title="class in org.apache.openjpa.meta">ClassMetaData</A>&nbsp;meta)</PRE>
<DL>
<DD>Copy the metadata from the given instance to this one. Do not
 copy mapping information.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="addExtensionKeys(java.util.Collection)"><!-- --></A><H3>
addExtensionKeys</H3>
<PRE>
protected void <B>addExtensionKeys</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</A>&nbsp;exts)</PRE>
<DL>
<DD><B>Description copied from class: <CODE><A HREF="../../../../org/apache/openjpa/meta/Extensions.html#addExtensionKeys(java.util.Collection)">Extensions</A></CODE></B></DD>
<DD>Add all the known extension keys to the specified collection; any
 implementation that utilized new extensions should override this
 method to include both the known extensions of its superclass as well
 as its own extension keys.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../org/apache/openjpa/meta/Extensions.html#addExtensionKeys(java.util.Collection)">addExtensionKeys</A></CODE> in class <CODE><A HREF="../../../../org/apache/openjpa/meta/Extensions.html" title="class in org.apache.openjpa.meta">Extensions</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="registerForValueUpdate(java.lang.String...)"><!-- --></A><H3>
registerForValueUpdate</H3>
<PRE>
public void <B>registerForValueUpdate</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>...&nbsp;values)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="valueChanged(org.apache.openjpa.lib.conf.Value)"><!-- --></A><H3>
valueChanged</H3>
<PRE>
public void <B>valueChanged</B>(<A HREF="../../../../org/apache/openjpa/lib/conf/Value.html" title="class in org.apache.openjpa.lib.conf">Value</A>&nbsp;val)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../org/apache/openjpa/lib/conf/ValueListener.html#valueChanged(org.apache.openjpa.lib.conf.Value)">ValueListener</A></CODE></B></DD>
<DD>Callback used by <A HREF="../../../../org/apache/openjpa/lib/conf/Value.html" title="class in org.apache.openjpa.lib.conf"><CODE>Value</CODE></A> objects to notify listener of change.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../org/apache/openjpa/lib/conf/ValueListener.html#valueChanged(org.apache.openjpa.lib.conf.Value)">valueChanged</A></CODE> in interface <CODE><A HREF="../../../../org/apache/openjpa/lib/conf/ValueListener.html" title="interface in org.apache.openjpa.lib.conf">ValueListener</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getFieldNames()"><!-- --></A><H3>
getFieldNames</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[] <B>getFieldNames</B>()</PRE>
<DL>
<DD>Utility method to get names of all fields including the superclasses'
 sorted in lexical order.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getDeclaredFieldNames()"><!-- --></A><H3>
getDeclaredFieldNames</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[] <B>getDeclaredFieldNames</B>()</PRE>
<DL>
<DD>Utility method to get names of all declared fields excluding the 
 superclasses' sorted in lexical order.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="isReplicated()"><!-- --></A><H3>
isReplicated</H3>
<PRE>
public boolean <B>isReplicated</B>()</PRE>
<DL>
<DD>Affirms the persistence instances of this receiver is replicated across
 multiple databases.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="setReplicated(boolean)"><!-- --></A><H3>
setReplicated</H3>
<PRE>
public void <B>setReplicated</B>(boolean&nbsp;flag)</PRE>
<DL>
<DD>Sets the persistence instances of this receiver to be replicated across
 multiple databases.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="isAbstract()"><!-- --></A><H3>
isAbstract</H3>
<PRE>
public boolean <B>isAbstract</B>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="setAbstract(boolean)"><!-- --></A><H3>
setAbstract</H3>
<PRE>
public void <B>setAbstract</B>(boolean&nbsp;flag)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="hasAbstractPKField()"><!-- --></A><H3>
hasAbstractPKField</H3>
<PRE>
public boolean <B>hasAbstractPKField</B>()</PRE>
<DL>
<DD>Convenience method to determine if the pcType modeled by
 this ClassMetaData object is both abstract and declares PKFields. This
 method is used by the PCEnhancer to determine if special handling is
 required.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD></DL>
</DD>
</DL>
<HR>

<A NAME="hasPKFieldsFromAbstractClass()"><!-- --></A><H3>
hasPKFieldsFromAbstractClass</H3>
<PRE>
public boolean <B>hasPKFieldsFromAbstractClass</B>()</PRE>
<DL>
<DD>Convenience method to determine if this type is a direct
 decendent of an abstract type declaring PKFields. Returns true if there
 are no pcTypes mapped to a table between this type and an abstract pcType
 declaring PKFields. Returns false if there no such abstract pcTypes in
 the inheritance hierarchy or if there are any pcTypes mapped to tables in
 between the type represented by this ClassMetaData object and the
 abstract pcType declaring PKFields.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD></DL>
</DD>
</DL>
<HR>

<A NAME="setCacheEnabled(boolean)"><!-- --></A><H3>
setCacheEnabled</H3>
<PRE>
public void <B>setCacheEnabled</B>(boolean&nbsp;enabled)</PRE>
<DL>
<DD>Sets the eligibility status of this class for cache.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="getCacheEnabled()"><!-- --></A><H3>
getCacheEnabled</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</A> <B>getCacheEnabled</B>()</PRE>
<DL>
<DD>Returns tri-state status on whether this class has been enabled for caching.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>TRUE or FALSE denote this class has been explicitly enabled or disabled for caching.
 If no status has been explicitly set, then the status of the persistent super class, if any, is returned.</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/ClassMetaData.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/meta/AccessCode.html" title="class in org.apache.openjpa.meta"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../org/apache/openjpa/meta/DelegatingMetaDataFactory.html" title="class in org.apache.openjpa.meta"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../index.html?org/apache/openjpa/meta/ClassMetaData.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="ClassMetaData.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;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->

<HR>
Copyright &#169; 2006-2010 <a href="http://www.apache.org">Apache Software Foundation</a>. All Rights Reserved.
</BODY>
</HTML>
