1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 2<!--NewPage--> 3<HTML> 4<HEAD> 5<!-- Generated by javadoc (build 1.5.0) on Thu May 15 17:17:33 EDT 2008 --> 6<TITLE> 7Entity (Oracle - Berkeley DB Java API) 8</TITLE> 9 10<META NAME="keywords" CONTENT="com.sleepycat.persist.model.Entity class"> 11 12<LINK REL ="stylesheet" TYPE="text/css" HREF="/style.css" TITLE="Style"> 13 14<SCRIPT type="text/javascript"> 15function windowTitle() 16{ 17 parent.document.title="Entity (Oracle - Berkeley DB Java API)"; 18} 19</SCRIPT> 20<NOSCRIPT> 21</NOSCRIPT> 22 23</HEAD> 24 25<BODY BGCOLOR="white" onload="windowTitle();"> 26 27 28<!-- ========= START OF TOP NAVBAR ======= --> 29<A NAME="navbar_top"><!-- --></A> 30<A HREF="#skip-navbar_top" title="Skip navigation links"></A> 31<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY=""> 32<TR> 33<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> 34<A NAME="navbar_top_firstrow"><!-- --></A> 35<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY=""> 36 <TR ALIGN="center" VALIGN="top"> 37 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="/overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD> 38 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD> 39 <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD> 40 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/Entity.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD> 41 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD> 42 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="/deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD> 43 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="/index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD> 44 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="/help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD> 45 </TR> 46</TABLE> 47</TD> 48<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM> 49<b>Berkeley DB</b><br><font size="-1"> version 4.7.25</font></EM> 50</TD> 51</TR> 52 53<TR> 54<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> 55 <A HREF="/com/sleepycat/persist/model/DeleteAction.html" title="enum in com.sleepycat.persist.model"><B>PREV CLASS</B></A> 56 <A HREF="/com/sleepycat/persist/model/EntityMetadata.html" title="class in com.sleepycat.persist.model"><B>NEXT CLASS</B></A></FONT></TD> 57<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> 58 <A HREF="/index.html?com/sleepycat/persist/model/Entity.html" target="_top"><B>FRAMES</B></A> 59 <A HREF="Entity.html" target="_top"><B>NO FRAMES</B></A> 60 <SCRIPT type="text/javascript"> 61 <!-- 62 if(window==top) { 63 document.writeln('<A HREF="/allclasses-noframe.html"><B>All Classes</B></A>'); 64 } 65 //--> 66</SCRIPT> 67<NOSCRIPT> 68 <A HREF="/allclasses-noframe.html"><B>All Classes</B></A> 69</NOSCRIPT> 70 71 72</FONT></TD> 73</TR> 74<TR> 75<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2"> 76 SUMMARY: REQUIRED | <A HREF="#annotation_type_optional_element_summary">OPTIONAL</A></FONT></TD> 77<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2"> 78DETAIL: <A HREF="#annotation_type_element_detail">ELEMENT</A></FONT></TD> 79</TR> 80</TABLE> 81<A NAME="skip-navbar_top"></A> 82<!-- ========= END OF TOP NAVBAR ========= --> 83 84<HR> 85<!-- ======== START OF CLASS DATA ======== --> 86<H2> 87<FONT SIZE="-1"> 88com.sleepycat.persist.model</FONT> 89<BR> 90Annotation Type Entity</H2> 91<HR> 92<DL> 93<DT><PRE><FONT SIZE="-1"><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/annotation/Documented.html" title="class or interface in java.lang.annotation">@Documented</A> 94<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/annotation/Retention.html" title="class or interface in java.lang.annotation">@Retention</A>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/annotation/Retention.html#value()" title="class or interface in java.lang.annotation">value</A>=<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/annotation/RetentionPolicy.html#RUNTIME" title="class or interface in java.lang.annotation">RUNTIME</A>) 95<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/annotation/Target.html" title="class or interface in java.lang.annotation">@Target</A>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/annotation/Target.html#value()" title="class or interface in java.lang.annotation">value</A>=<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/annotation/ElementType.html#TYPE" title="class or interface in java.lang.annotation">TYPE</A>) 96</FONT>public @interface <B>Entity</B></DL> 97</PRE> 98 99<P> 100Indicates a persistent entity class. For each entity class, a <A HREF="/com/sleepycat/persist/PrimaryIndex.html" title="class in com.sleepycat.persist"><CODE>PrimaryIndex</CODE></A> can be used to store and access instances of that class. 101 Optionally, one or more <A HREF="/com/sleepycat/persist/SecondaryIndex.html" title="class in com.sleepycat.persist"><CODE>SecondaryIndex</CODE></A> objects may be used to access 102 entity instances by secondary key. 103 104 <p><strong>Entity Subclasses and Superclasses</strong></p> 105 106 <p>An entity class may have any number of subclasses and superclasses; 107 however, none of these may themselves be entity classes (annotated with 108 <code>Entity</code>).</p> 109 110 <p>Entity superclasses are used to share common definitions and instance 111 data. For example, fields in an entity superclass may be defined as primary 112 or secondary keys.</p> 113 114 <p>Entity subclasses are used to provide polymorphism within a single <code>PrimaryIndex</code>. Instances of the entity class and its subclasses are stored 115 in the same <code>PrimaryIndex</code>. Fields in an entity subclass may be 116 defined as secondary keys.</p> 117 118 <p>For example, the following <code>BaseClass</code> defines the primary key for 119 any number of entity classes, using a single sequence to assign primary key 120 values. The entity class <code>Pet</code> extends the base class, implicitly 121 defining a primary index that will contain instances of it and its 122 subclasses, including <code>Cat</code> which is defined below. The primary key 123 (<code>id</code>) and secondary key (<code>name</code>) can be used to retrieve any 124 <code>Pet</code> instance.</p> 125 <pre class="code"> 126 @Persistent 127 class BaseClass { 128 @PrimaryKey(sequence="ID") 129 long id; 130 } 131 132 @Entity 133 class Pet extends BaseClass { 134 @SecondaryKey(relate=ONE_TO_ONE) 135 String name; 136 float height; 137 float weight; 138 }</pre> 139 140 <p>The entity subclass <code>Cat</code> defines a secondary key (<code>finickyness</code>) that only applies to <code>Cat</code> instances. Querying by this 141 key will never retrieve a <code>Dog</code> instance, if such a subclass existed, 142 because a <code>Dog</code> instance will never contain a <code>finickyness</code> 143 key.</p> 144 <pre class="code"> 145 @Persistent 146 class Cat extends Pet { 147 @SecondaryKey(relate=MANY_TO_ONE) 148 int finickyness; 149 }</pre> 150 151 <p><strong>Persistent Fields and Types</strong></p> 152 153 <p>All non-transient instance fields of an entity class, as well as its 154 superclasses and subclasses, are persistent. <code>static</code> and <code>transient</code> fields are not persistent. The persistent fields of a class may 155 be <code>private</code>, package-private (default access), <code>protected</code> or 156 <code>public</code>.</p> 157 158 <p>It is worthwhile to note the reasons that object persistence is defined 159 in terms of fields rather than properties (getters and setters). This 160 allows business methods (getters and setters) to be defined independently of 161 the persistent state of an object; for example, a setter method may perform 162 validation that could not be performed if it were called during object 163 deserialization. Similarly, this allows public methods to evolve somewhat 164 independently of the (typically non-public) persistent fields.</p> 165 166 <p><a name="simpleTypes"><strong>Simple Types</strong></a></p> 167 168 <p>Persistent types are divided into simple types, enum types, complex 169 types, and array types. Simple types and enum types are single valued, 170 while array types may contain multiple elements and complex types may 171 contain one or more named fields.</p> 172 173 <p>Simple types include:</p> 174 <ul> 175 <li>Java primitive types: <code>boolean, char, byte, short, int, long, 176 float, double</code></p> 177 <li>The wrapper classes for Java primitive types</p> 178 <!-- 179 <li><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/math/BigDecimal.html" title="class or interface in java.math"><CODE>BigDecimal</CODE></A></p> 180 --> 181 <li><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/math/BigInteger.html" title="class or interface in java.math"><CODE>BigInteger</CODE></A></p> 182 <li><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang"><CODE>String</CODE></A></p> 183 <li><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Date.html" title="class or interface in java.util"><CODE>Date</CODE></A></p> 184 </ul> 185 186 <p>When null values are required (for optional key fields, for example), 187 primitive wrapper classes must be used instead of primitive types.</p> 188 189 <p>Simple types, enum types and array types do not require annotations to 190 make them persistent.</p> 191 192 <p><a name="proxyTypes"><strong>Complex and Proxy Types</strong></a></p> 193 194 <p>Complex persistent classes must be annotated with <A HREF="/com/sleepycat/persist/model/Entity.html" title="annotation in com.sleepycat.persist.model"><CODE>Entity</CODE></A> or 195 <A HREF="/com/sleepycat/persist/model/Persistent.html" title="annotation in com.sleepycat.persist.model"><CODE>Persistent</CODE></A>, or must be proxied by a persistent proxy class 196 (described below). This includes entity classes, subclasses and 197 superclasses, and all other complex classes referenced via fields of these 198 classes.</p> 199 200 <p>All complex persistent classes must have a default constructor. The 201 default constructor may be <code>private</code>, package-private (default 202 access), <code>protected</code>, or <code>public</code>. Other constructors are 203 allowed but are not used by the persistence mechanism.</p> 204 205 <p>It is sometimes desirable to store instances of a type that is externally 206 defined and cannot be annotated or does not have a default constructor; for 207 example, a class defined in the Java standard libraries or a 3rd party 208 library. In this case, a <A HREF="/com/sleepycat/persist/model/PersistentProxy.html" title="interface in com.sleepycat.persist.model"><CODE>PersistentProxy</CODE></A> class may be used to 209 represent the stored values for the externally defined type. The proxy 210 class itself must be annotated with <A HREF="/com/sleepycat/persist/model/Persistent.html" title="annotation in com.sleepycat.persist.model"><CODE>Persistent</CODE></A> like other persistent 211 classes, and the <A HREF="/com/sleepycat/persist/model/Persistent.html#proxyFor()"><CODE>Persistent.proxyFor()</CODE></A> property must be specified.</p> 212 213 <p>For convenience, built-in proxy classes are included for several common 214 classes (listed below) in the Java library. If you wish, you may define 215 your own <A HREF="/com/sleepycat/persist/model/PersistentProxy.html" title="interface in com.sleepycat.persist.model"><CODE>PersistentProxy</CODE></A> to override these built-in proxies.</p> 216 <ul> 217 <li><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/HashSet.html" title="class or interface in java.util"><CODE>HashSet</CODE></A></li> 218 <li><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/TreeSet.html" title="class or interface in java.util"><CODE>TreeSet</CODE></A></li> 219 <li><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/HashMap.html" title="class or interface in java.util"><CODE>HashMap</CODE></A></li> 220 <li><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/TreeMap.html" title="class or interface in java.util"><CODE>TreeMap</CODE></A></li> 221 <li><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/ArrayList.html" title="class or interface in java.util"><CODE>ArrayList</CODE></A></li> 222 <li><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/util/LinkedList.html" title="class or interface in java.util"><CODE>LinkedList</CODE></A></li> 223 </ul> 224 225 <p>Complex persistent types should in general be application-defined 226 classes. This gives the application control over the persistent state and 227 its evolution over time.</p> 228 229 <p><strong>Other Type Restrictions</strong></p> 230 231 <p>Entity classes and subclasses may not be used in field declarations for 232 persistent types. Fields of entity classes and subclasses must be simple 233 types or non-entity persistent types (annotated with <A HREF="/com/sleepycat/persist/model/Persistent.html" title="annotation in com.sleepycat.persist.model"><CODE>Persistent</CODE></A> not 234 with <A HREF="/com/sleepycat/persist/model/Entity.html" title="annotation in com.sleepycat.persist.model"><CODE>Entity</CODE></A>).</p> 235 236 <p>Entity classes, subclasses and superclasses may be <code>abstract</code> and 237 may implement arbitrary interfaces. Interfaces do not need to be annotated 238 with <A HREF="/com/sleepycat/persist/model/Persistent.html" title="annotation in com.sleepycat.persist.model"><CODE>Persistent</CODE></A> in order to be used in a persistent class, since 239 interfaces do not contain instance fields.</p> 240 241 <p>Persistent instances of static nested classes are allowed, but the nested 242 class must be annotated with <A HREF="/com/sleepycat/persist/model/Persistent.html" title="annotation in com.sleepycat.persist.model"><CODE>Persistent</CODE></A> or <A HREF="/com/sleepycat/persist/model/Entity.html" title="annotation in com.sleepycat.persist.model"><CODE>Entity</CODE></A>. Inner 243 classes (non-static nested classes, including anonymous classes) are not 244 currently allowed as persistent types.</p> 245 246 <p>Arrays of simple and persistent complex types are allowed as fields of 247 persistent types. Arrays may be multidimensional. However, an array may 248 not be stored as a top level instance in a primary index. Only instances of 249 entity classes and subclasses may be top level instances in a primary 250 index.</p> 251 252 <p><strong>Embedded Objects</strong></p> 253 254 <p>As stated above, the embedded (or member) non-transient non-static fields 255 of an entity class are themselves persistent and are stored along with their 256 parent entity object. This allows embedded objects to be stored in an 257 entity to an arbitrary depth.</p> 258 259 <p>There is no arbitrary limit to the nesting depth of embedded objects 260 within an entity; however, there is a practical limit. When an entity is 261 marshalled, each level of nesting is implemented internally via recursive 262 method calls. If the nesting depth is large enough, a <code>StackOverflowError</code> can occur. In practice, this has been observed with a 263 nesting depth of 12,000, using the default Java stack size.</p> 264 265 <p>This restriction on the nesting depth of embedded objects does not apply 266 to cyclic references, since these are handled specially as described 267 below.</p> 268 269 <p><strong>Object Graphs</strong></p> 270 271 <p>When an entity instance is stored, the graph of objects referenced via 272 its fields is stored and retrieved as a graph. In other words, if a single 273 instance is referenced by two or more fields when the entity is stored, the 274 same will be true when the entity is retrieved.</p> 275 276 <p>When a reference to a particular object is stored as a member field 277 inside that object or one of its embedded objects, this is called a cyclic 278 reference. Because multiple references to a single object are stored as 279 such, cycles are also represented correctly and do not cause infinite 280 recursion or infinite processing loops. If an entity containing a cyclic 281 reference is stored, the cyclic reference will be present when the entity is 282 retrieved.</p> 283 284 <p>Note that the stored object graph is restricted in scope to a single 285 entity instance. This is because each entity instance is stored separately. 286 If two entities have a reference to the same object when stored, they will 287 refer to two separate instances when the entities are retrieved.</p> 288<P> 289 290<P> 291<DL> 292<DT><B>See Also:</B><DD><A HREF="/com/sleepycat/persist/model/Persistent.html" title="annotation in com.sleepycat.persist.model"><CODE>Persistent</CODE></A>, 293<A HREF="/com/sleepycat/persist/model/PrimaryKey.html" title="annotation in com.sleepycat.persist.model"><CODE>PrimaryKey</CODE></A>, 294<A HREF="/com/sleepycat/persist/model/SecondaryKey.html" title="annotation in com.sleepycat.persist.model"><CODE>SecondaryKey</CODE></A>, 295<A HREF="/com/sleepycat/persist/model/KeyField.html" title="annotation in com.sleepycat.persist.model"><CODE>KeyField</CODE></A></DL> 296<HR> 297 298<P> 299<!-- =========== ANNOTATION TYPE OPTIONAL MEMBER SUMMARY =========== --> 300 301<A NAME="annotation_type_optional_element_summary"><!-- --></A> 302<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""> 303<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> 304<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2"> 305<B>Optional Element Summary</B></FONT></TH> 306</TR> 307<TR BGCOLOR="white" CLASS="TableRowColor"> 308<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> 309<CODE> int</CODE></FONT></TD> 310<TD><CODE><B><A HREF="/com/sleepycat/persist/model/Entity.html#version()">version</A></B></CODE> 311 312<BR> 313 Identifies a new version of a class when an incompatible class change 314 has been made.</TD> 315</TR> 316</TABLE> 317 318<P> 319<A NAME="version()"><!-- --></A><H3> 320version</H3> 321<PRE> 322public abstract int <B>version</B></PRE> 323<DL> 324<DD>Identifies a new version of a class when an incompatible class change 325 has been made. Prior versions of a class are referred to by version 326 number to perform class evolution and conversion using <A HREF="/com/sleepycat/persist/evolve/Mutations.html" title="class in com.sleepycat.persist.evolve"><CODE>Mutations</CODE></A>. 327 328 <p>The first version of a class is version zero, if <A HREF="/com/sleepycat/persist/model/Entity.html#version()"><CODE>version()</CODE></A> is 329 not specified. When an incompatible class change is made, a version 330 number must be assigned using <A HREF="/com/sleepycat/persist/model/Entity.html#version()"><CODE>version()</CODE></A> that is higher than the 331 previous version number for the class. If this is not done, an <A HREF="/com/sleepycat/persist/evolve/IncompatibleClassException.html" title="class in com.sleepycat.persist.evolve"><CODE>IncompatibleClassException</CODE></A> will be thrown when the store is opened.</p> 332<P> 333<DD><DL> 334</DL> 335</DD> 336<DD><DL> 337</DL> 338<DL> 339<DT><B>Default:</B><DD>0</DD> 340</DL> 341</DL> 342<!-- ========= END OF CLASS DATA ========= --> 343<HR> 344 345 346<!-- ======= START OF BOTTOM NAVBAR ====== --> 347<A NAME="navbar_bottom"><!-- --></A> 348<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A> 349<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY=""> 350<TR> 351<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> 352<A NAME="navbar_bottom_firstrow"><!-- --></A> 353<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY=""> 354 <TR ALIGN="center" VALIGN="top"> 355 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="/overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD> 356 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD> 357 <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD> 358 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/Entity.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD> 359 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD> 360 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="/deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD> 361 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="/index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD> 362 <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="/help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD> 363 </TR> 364</TABLE> 365</TD> 366<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM> 367<b>Berkeley DB</b><br><font size="-1"> version 4.7.25</font></EM> 368</TD> 369</TR> 370 371<TR> 372<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> 373 <A HREF="/com/sleepycat/persist/model/DeleteAction.html" title="enum in com.sleepycat.persist.model"><B>PREV CLASS</B></A> 374 <A HREF="/com/sleepycat/persist/model/EntityMetadata.html" title="class in com.sleepycat.persist.model"><B>NEXT CLASS</B></A></FONT></TD> 375<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> 376 <A HREF="/index.html?com/sleepycat/persist/model/Entity.html" target="_top"><B>FRAMES</B></A> 377 <A HREF="Entity.html" target="_top"><B>NO FRAMES</B></A> 378 <SCRIPT type="text/javascript"> 379 <!-- 380 if(window==top) { 381 document.writeln('<A HREF="/allclasses-noframe.html"><B>All Classes</B></A>'); 382 } 383 //--> 384</SCRIPT> 385<NOSCRIPT> 386 <A HREF="/allclasses-noframe.html"><B>All Classes</B></A> 387</NOSCRIPT> 388 389 390</FONT></TD> 391</TR> 392<TR> 393<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2"> 394 SUMMARY: REQUIRED | <A HREF="#annotation_type_optional_element_summary">OPTIONAL</A></FONT></TD> 395<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2"> 396DETAIL: <A HREF="#annotation_type_element_detail">ELEMENT</A></FONT></TD> 397</TR> 398</TABLE> 399<A NAME="skip-navbar_bottom"></A> 400<!-- ======== END OF BOTTOM NAVBAR ======= --> 401 402<HR> 403<font size=1>Copyright (c) 1996,2008 Oracle. All rights reserved.</font> 404</BODY> 405</HTML> 406