diff options
author | Jesse Morgan <morganjm@amazon.com> | 2013-12-03 14:03:28 -0800 |
---|---|---|
committer | Jesse Morgan <morganjm@amazon.com> | 2013-12-03 14:03:28 -0800 |
commit | d479253768d296a40b4f699e1de9b03c7146a97a (patch) | |
tree | 208e70d81fc3e477a37d3f9ca6475c39bb6410d3 /apidocs/com/amazon/carbonado/Join.html |
Adding javadocs and Carbonado User Guidegh-pages
Diffstat (limited to 'apidocs/com/amazon/carbonado/Join.html')
-rw-r--r-- | apidocs/com/amazon/carbonado/Join.html | 314 |
1 files changed, 314 insertions, 0 deletions
diff --git a/apidocs/com/amazon/carbonado/Join.html b/apidocs/com/amazon/carbonado/Join.html new file mode 100644 index 0000000..3a5394b --- /dev/null +++ b/apidocs/com/amazon/carbonado/Join.html @@ -0,0 +1,314 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!-- NewPage --> +<html lang="en"> +<head> +<!-- Generated by javadoc (version 1.7.0_25) on Tue Dec 03 13:53:40 PST 2013 --> +<meta http-equiv="Content-Type" content="text/html" charset="UTF-8"> +<title>Join (Carbonado 1.2.3 API)</title> +<meta name="date" content="2013-12-03"> +<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style"> +</head> +<body> +<script type="text/javascript"><!-- + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="Join (Carbonado 1.2.3 API)"; + } +//--> +</script> +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<!-- ========= START OF TOP NAVBAR ======= --> +<div class="topNav"><a name="navbar_top"> +<!-- --> +</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="class-use/Join.html">Use</a></li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-files/index-1.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/amazon/carbonado/IsolationLevel.html" title="enum in com.amazon.carbonado"><span class="strong">Prev Class</span></a></li> +<li><a href="../../../com/amazon/carbonado/Key.html" title="annotation in com.amazon.carbonado"><span class="strong">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/amazon/carbonado/Join.html" target="_top">Frames</a></li> +<li><a href="Join.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_top"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_top"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Required | </li> +<li><a href="#annotation_type_optional_element_summary">Optional</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#annotation_type_element_detail">Element</a></li> +</ul> +</div> +<a name="skip-navbar_top"> +<!-- --> +</a></div> +<!-- ========= END OF TOP NAVBAR ========= --> +<!-- ======== START OF CLASS DATA ======== --> +<div class="header"> +<div class="subTitle">com.amazon.carbonado</div> +<h2 title="Annotation Type Join" class="title">Annotation Type Join</h2> +</div> +<div class="contentContainer"> +<div class="description"> +<ul class="blockList"> +<li class="blockList"> +<hr> +<br> +<pre>@Documented +@Retention(value=RUNTIME) +@Target(value=METHOD) +public @interface <span class="strong">Join</span></pre> +<div class="block">Identifies a <a href="../../../com/amazon/carbonado/Storable.html" title="interface in com.amazon.carbonado"><code>Storable</code></a> property as defining a join relationship + with another Storable type. Joins can also refer to their own enclosing + class or interface. + <p> + To complete the join, lists of internal and external properties may be + supplied. If these lists are not supplied, then join is "natural", and the + properties are determined automatically. When the lists are specified, the + join is "explicit". Natural joins are merely a convenience; they can always + be replaced by an explicit join. + <p> + The lists used for explicit joins must have the same length, and each must + have at least one element. Each element in the internal list must refer to + a property defined in this property's class or interface, and each element + in the external list must refer to a matching property defined in the joined + type. The matched up property pairs must not themselves be join properties, + and they must be compatible with each other. + <p> + If the join is made to external properties which do not completely specify a + primary key, then the type of the join property must be a <a href="../../../com/amazon/carbonado/Query.html" title="interface in com.amazon.carbonado"><code>Query</code></a> of + the joined type. When the type is a Query, a property mutator method cannot + be defined. The returned query has all of the "with" parameters filled in. + <p> + With a natural join, the internal and external properties are deduced by + examining the type of the referenced join property. If the type is a Query, + then the internal and external properties are set to match this property's + primary key. The referenced join property (specified as a parameterized type + to Query) must have properties matching name and type of this property's + primary key. + <p> + If a natural join's property type is not defined by a Query, then the + internal and external properties are set to match the referenced property's + primary key. This join property must have properties matching name and type + of the referenced property's primary key. + + <p>Example:<pre> + @PrimaryKey("addressID") + public interface Address extends Storable { + int getAddressID(); + + ... + } + + @PrimaryKey("userID") + public interface UserInfo extends Storable { + int getUserID(); + void setUserID(int id); + + int getAddressID(); + void setAddressID(int value); + + // Natural join, which works because Address has a primary key + // property of addressID which matches a property in this type. + <b>@Join</b> + Address getAddress() throws FetchException; + void setAddress(Address address); + + // Explicit join, equivalent to getAddress. + <b>@Join(internal="addressID", external="addressID")</b> + Address getCurrentAddress() throws FetchException; + void setCurrentAddress(Address address); + + @Nullable + Integer getParentID(); + void setParentID(Integer value); + + // Many-to-one relationship + @Nullable + <b>@Join(internal="parentID", external="userID")</b> + UserInfo getParent() throws FetchException; + void setParent(UserInfo parent); + + // One-to-many relationship + <b>@Join(internal="userID", external="parentID")</b> + Query<UserInfo> getChildren() throws FetchException; + + ... + } + </pre></div> +<dl><dt><span class="strong">Author:</span></dt> + <dd>Brian S O'Neill</dd></dl> +</li> +</ul> +</div> +<div class="summary"> +<ul class="blockList"> +<li class="blockList"> +<!-- =========== ANNOTATION TYPE OPTIONAL MEMBER SUMMARY =========== --> +<ul class="blockList"> +<li class="blockList"><a name="annotation_type_optional_element_summary"> +<!-- --> +</a> +<h3>Optional Element Summary</h3> +<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Optional Element Summary table, listing optional elements, and an explanation"> +<caption><span>Optional Elements</span><span class="tabEnd"> </span></caption> +<tr> +<th class="colFirst" scope="col">Modifier and Type</th> +<th class="colLast" scope="col">Optional Element and Description</th> +</tr> +<tr class="altColor"> +<td class="colFirst"><code>java.lang.String[]</code></td> +<td class="colLast"><code><strong><a href="../../../com/amazon/carbonado/Join.html#external()">external</a></strong></code> +<div class="block">List of property names defined in the foreign property's enclosing class + or interface.</div> +</td> +</tr> +<tr class="rowColor"> +<td class="colFirst"><code>java.lang.String[]</code></td> +<td class="colLast"><code><strong><a href="../../../com/amazon/carbonado/Join.html#internal()">internal</a></strong></code> +<div class="block">List of property names defined in this property's enclosing class or + interface.</div> +</td> +</tr> +</table> +</li> +</ul> +</li> +</ul> +</div> +<div class="details"> +<ul class="blockList"> +<li class="blockList"> +<!-- ============ ANNOTATION TYPE MEMBER DETAIL =========== --> +<ul class="blockList"> +<li class="blockList"><a name="annotation_type_element_detail"> +<!-- --> +</a> +<h3>Element Detail</h3> +<a name="internal()"> +<!-- --> +</a> +<ul class="blockList"> +<li class="blockList"> +<h4>internal</h4> +<pre>public abstract java.lang.String[] internal</pre> +<div class="block">List of property names defined in this property's enclosing class or + interface.</div> +<dl> +<dt>Default:</dt> +<dd>{}</dd> +</dl> +</li> +</ul> +<a name="external()"> +<!-- --> +</a> +<ul class="blockListLast"> +<li class="blockList"> +<h4>external</h4> +<pre>public abstract java.lang.String[] external</pre> +<div class="block">List of property names defined in the foreign property's enclosing class + or interface.</div> +<dl> +<dt>Default:</dt> +<dd>{}</dd> +</dl> +</li> +</ul> +</li> +</ul> +</li> +</ul> +</div> +</div> +<!-- ========= END OF CLASS DATA ========= --> +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<div class="bottomNav"><a name="navbar_bottom"> +<!-- --> +</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow"> +<!-- --> +</a> +<ul class="navList" title="Navigation"> +<li><a href="../../../overview-summary.html">Overview</a></li> +<li><a href="package-summary.html">Package</a></li> +<li class="navBarCell1Rev">Class</li> +<li><a href="class-use/Join.html">Use</a></li> +<li><a href="package-tree.html">Tree</a></li> +<li><a href="../../../deprecated-list.html">Deprecated</a></li> +<li><a href="../../../index-files/index-1.html">Index</a></li> +<li><a href="../../../help-doc.html">Help</a></li> +</ul> +</div> +<div class="subNav"> +<ul class="navList"> +<li><a href="../../../com/amazon/carbonado/IsolationLevel.html" title="enum in com.amazon.carbonado"><span class="strong">Prev Class</span></a></li> +<li><a href="../../../com/amazon/carbonado/Key.html" title="annotation in com.amazon.carbonado"><span class="strong">Next Class</span></a></li> +</ul> +<ul class="navList"> +<li><a href="../../../index.html?com/amazon/carbonado/Join.html" target="_top">Frames</a></li> +<li><a href="Join.html" target="_top">No Frames</a></li> +</ul> +<ul class="navList" id="allclasses_navbar_bottom"> +<li><a href="../../../allclasses-noframe.html">All Classes</a></li> +</ul> +<div> +<script type="text/javascript"><!-- + allClassesLink = document.getElementById("allclasses_navbar_bottom"); + if(window==top) { + allClassesLink.style.display = "block"; + } + else { + allClassesLink.style.display = "none"; + } + //--> +</script> +</div> +<div> +<ul class="subNavList"> +<li>Summary: </li> +<li>Required | </li> +<li><a href="#annotation_type_optional_element_summary">Optional</a></li> +</ul> +<ul class="subNavList"> +<li>Detail: </li> +<li><a href="#annotation_type_element_detail">Element</a></li> +</ul> +</div> +<a name="skip-navbar_bottom"> +<!-- --> +</a></div> +<!-- ======== END OF BOTTOM NAVBAR ======= --> +<p class="legalCopy"><small>Copyright © 2006-2013 <a href="https://github.com/Carbonado/Carbonado">Amazon Technologies, Inc.</a>. All Rights Reserved.</small></p> +</body> +</html> |