summaryrefslogtreecommitdiff
path: root/apidocs/com/amazon/carbonado/raw/GenericEncodingStrategy.html
diff options
context:
space:
mode:
Diffstat (limited to 'apidocs/com/amazon/carbonado/raw/GenericEncodingStrategy.html')
-rw-r--r--apidocs/com/amazon/carbonado/raw/GenericEncodingStrategy.html1000
1 files changed, 1000 insertions, 0 deletions
diff --git a/apidocs/com/amazon/carbonado/raw/GenericEncodingStrategy.html b/apidocs/com/amazon/carbonado/raw/GenericEncodingStrategy.html
new file mode 100644
index 0000000..9e13630
--- /dev/null
+++ b/apidocs/com/amazon/carbonado/raw/GenericEncodingStrategy.html
@@ -0,0 +1,1000 @@
+<!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:43 PST 2013 -->
+<meta http-equiv="Content-Type" content="text/html" charset="UTF-8">
+<title>GenericEncodingStrategy (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="GenericEncodingStrategy (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/GenericEncodingStrategy.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/raw/DataEncoder.html" title="class in com.amazon.carbonado.raw"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../com/amazon/carbonado/raw/GenericInstanceFactory.html" title="interface in com.amazon.carbonado.raw"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?com/amazon/carbonado/raw/GenericEncodingStrategy.html" target="_top">Frames</a></li>
+<li><a href="GenericEncodingStrategy.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:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_top">
+<!-- -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">com.amazon.carbonado.raw</div>
+<h2 title="Class GenericEncodingStrategy" class="title">Class GenericEncodingStrategy&lt;S extends <a href="../../../../com/amazon/carbonado/Storable.html" title="interface in com.amazon.carbonado">Storable</a>&gt;</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>java.lang.Object</li>
+<li>
+<ul class="inheritance">
+<li>com.amazon.carbonado.raw.GenericEncodingStrategy&lt;S&gt;</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../com/amazon/carbonado/raw/CompressedEncodingStrategy.html" title="class in com.amazon.carbonado.raw">CompressedEncodingStrategy</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="strong">GenericEncodingStrategy&lt;S extends <a href="../../../../com/amazon/carbonado/Storable.html" title="interface in com.amazon.carbonado">Storable</a>&gt;</span>
+extends java.lang.Object</pre>
+<div class="block">Generates bytecode instructions for encoding/decoding Storable properties
+ to/from raw bytes.
+
+ <p>Note: subclasses must override and specialize the hashCode and equals
+ methods. Failure to do so interferes with <a href="../../../../com/amazon/carbonado/raw/StorableCodecFactory.html" title="interface in com.amazon.carbonado.raw"><code>StorableCodecFactory</code></a>'s
+ generated code cache.</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">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_summary">
+<!-- -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><strong><a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html#GenericEncodingStrategy(java.lang.Class, com.amazon.carbonado.info.StorableIndex)">GenericEncodingStrategy</a></strong>(java.lang.Class&lt;<a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html" title="type parameter in GenericEncodingStrategy">S</a>&gt;&nbsp;type,
+ <a href="../../../../com/amazon/carbonado/info/StorableIndex.html" title="class in com.amazon.carbonado.info">StorableIndex</a>&lt;<a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html" title="type parameter in GenericEncodingStrategy">S</a>&gt;&nbsp;pkIndex)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><strong><a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html#GenericEncodingStrategy(java.lang.Class, com.amazon.carbonado.info.StorableIndex, int, int, int, int)">GenericEncodingStrategy</a></strong>(java.lang.Class&lt;<a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html" title="type parameter in GenericEncodingStrategy">S</a>&gt;&nbsp;type,
+ <a href="../../../../com/amazon/carbonado/info/StorableIndex.html" title="class in com.amazon.carbonado.info">StorableIndex</a>&lt;<a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html" title="type parameter in GenericEncodingStrategy">S</a>&gt;&nbsp;pkIndex,
+ int&nbsp;keyPrefixPadding,
+ int&nbsp;keySuffixPadding,
+ int&nbsp;dataPrefixPadding,
+ int&nbsp;dataSuffixPadding)</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_summary">
+<!-- -->
+</a>
+<h3>Method Summary</h3>
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html#buildDataDecoding(org.cojen.classfile.CodeAssembler, com.amazon.carbonado.info.StorableProperty[], org.cojen.classfile.LocalVariable, java.lang.Class, boolean, int, org.cojen.classfile.Label, org.cojen.classfile.LocalVariable)">buildDataDecoding</a></strong>(org.cojen.classfile.CodeAssembler&nbsp;assembler,
+ <a href="../../../../com/amazon/carbonado/info/StorableProperty.html" title="interface in com.amazon.carbonado.info">StorableProperty</a>&lt;<a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html" title="type parameter in GenericEncodingStrategy">S</a>&gt;[]&nbsp;properties,
+ org.cojen.classfile.LocalVariable&nbsp;instanceVar,
+ java.lang.Class&lt;?&gt;&nbsp;adapterInstanceClass,
+ boolean&nbsp;useWriteMethods,
+ int&nbsp;generation,
+ org.cojen.classfile.Label&nbsp;altGenerationHandler,
+ org.cojen.classfile.LocalVariable&nbsp;encodedVar)</code>
+<div class="block">Generates bytecode instructions to decode properties.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>org.cojen.classfile.LocalVariable</code></td>
+<td class="colLast"><code><strong><a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html#buildDataEncoding(org.cojen.classfile.CodeAssembler, com.amazon.carbonado.info.StorableProperty[], org.cojen.classfile.LocalVariable, java.lang.Class, boolean, int)">buildDataEncoding</a></strong>(org.cojen.classfile.CodeAssembler&nbsp;assembler,
+ <a href="../../../../com/amazon/carbonado/info/StorableProperty.html" title="interface in com.amazon.carbonado.info">StorableProperty</a>&lt;<a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html" title="type parameter in GenericEncodingStrategy">S</a>&gt;[]&nbsp;properties,
+ org.cojen.classfile.LocalVariable&nbsp;instanceVar,
+ java.lang.Class&lt;?&gt;&nbsp;adapterInstanceClass,
+ boolean&nbsp;useReadMethods,
+ int&nbsp;generation)</code>
+<div class="block">Generates bytecode instructions to encode properties.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html#buildKeyDecoding(org.cojen.classfile.CodeAssembler, com.amazon.carbonado.info.OrderedProperty[], org.cojen.classfile.LocalVariable, java.lang.Class, boolean, org.cojen.classfile.LocalVariable)">buildKeyDecoding</a></strong>(org.cojen.classfile.CodeAssembler&nbsp;assembler,
+ <a href="../../../../com/amazon/carbonado/info/OrderedProperty.html" title="class in com.amazon.carbonado.info">OrderedProperty</a>&lt;<a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html" title="type parameter in GenericEncodingStrategy">S</a>&gt;[]&nbsp;properties,
+ org.cojen.classfile.LocalVariable&nbsp;instanceVar,
+ java.lang.Class&lt;?&gt;&nbsp;adapterInstanceClass,
+ boolean&nbsp;useWriteMethods,
+ org.cojen.classfile.LocalVariable&nbsp;encodedVar)</code>
+<div class="block">Generates bytecode instructions to decode properties.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>org.cojen.classfile.LocalVariable</code></td>
+<td class="colLast"><code><strong><a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html#buildKeyEncoding(org.cojen.classfile.CodeAssembler, com.amazon.carbonado.info.OrderedProperty[], org.cojen.classfile.LocalVariable, java.lang.Class, boolean, org.cojen.classfile.LocalVariable, org.cojen.classfile.LocalVariable)">buildKeyEncoding</a></strong>(org.cojen.classfile.CodeAssembler&nbsp;assembler,
+ <a href="../../../../com/amazon/carbonado/info/OrderedProperty.html" title="class in com.amazon.carbonado.info">OrderedProperty</a>&lt;<a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html" title="type parameter in GenericEncodingStrategy">S</a>&gt;[]&nbsp;properties,
+ org.cojen.classfile.LocalVariable&nbsp;instanceVar,
+ java.lang.Class&lt;?&gt;&nbsp;adapterInstanceClass,
+ boolean&nbsp;useReadMethods,
+ org.cojen.classfile.LocalVariable&nbsp;partialStartVar,
+ org.cojen.classfile.LocalVariable&nbsp;partialEndVar)</code>
+<div class="block">Generates bytecode instructions to encode properties.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><strong><a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html#buildSerialDecoding(org.cojen.classfile.CodeAssembler, com.amazon.carbonado.info.StorableProperty[], org.cojen.classfile.LocalVariable)">buildSerialDecoding</a></strong>(org.cojen.classfile.CodeAssembler&nbsp;assembler,
+ <a href="../../../../com/amazon/carbonado/info/StorableProperty.html" title="interface in com.amazon.carbonado.info">StorableProperty</a>&lt;<a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html" title="type parameter in GenericEncodingStrategy">S</a>&gt;[]&nbsp;properties,
+ org.cojen.classfile.LocalVariable&nbsp;encodedVar)</code>
+<div class="block">Generates bytecode instructions to decode properties and their states.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>org.cojen.classfile.LocalVariable</code></td>
+<td class="colLast"><code><strong><a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html#buildSerialEncoding(org.cojen.classfile.CodeAssembler, com.amazon.carbonado.info.StorableProperty[])">buildSerialEncoding</a></strong>(org.cojen.classfile.CodeAssembler&nbsp;assembler,
+ <a href="../../../../com/amazon/carbonado/info/StorableProperty.html" title="interface in com.amazon.carbonado.info">StorableProperty</a>&lt;<a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html" title="type parameter in GenericEncodingStrategy">S</a>&gt;[]&nbsp;properties)</code>
+<div class="block">Generates bytecode instructions to encode properties and their
+ states.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../com/amazon/carbonado/raw/StorablePropertyInfo.html" title="class in com.amazon.carbonado.raw">StorablePropertyInfo</a></code></td>
+<td class="colLast"><code><strong><a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html#checkSupport(com.amazon.carbonado.info.StorableProperty)">checkSupport</a></strong>(<a href="../../../../com/amazon/carbonado/info/StorableProperty.html" title="interface in com.amazon.carbonado.info">StorableProperty</a>&lt;<a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html" title="type parameter in GenericEncodingStrategy">S</a>&gt;&nbsp;property)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected <a href="../../../../com/amazon/carbonado/raw/StorablePropertyInfo.html" title="class in com.amazon.carbonado.raw">StorablePropertyInfo</a>[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html#checkSupport(com.amazon.carbonado.info.StorableProperty[])">checkSupport</a></strong>(<a href="../../../../com/amazon/carbonado/info/StorableProperty.html" title="interface in com.amazon.carbonado.info">StorableProperty</a>&lt;<a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html" title="type parameter in GenericEncodingStrategy">S</a>&gt;[]&nbsp;properties)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html#equals(java.lang.Object)">equals</a></strong>(java.lang.Object&nbsp;obj)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><strong><a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html#extraDataDecoding(org.cojen.classfile.CodeAssembler, org.cojen.classfile.LocalVariable, int, int)">extraDataDecoding</a></strong>(org.cojen.classfile.CodeAssembler&nbsp;a,
+ org.cojen.classfile.LocalVariable&nbsp;dataVar,
+ int&nbsp;prefix,
+ int&nbsp;suffix)</code>
+<div class="block">Second phase decoding, which does nothing by default.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><strong><a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html#extraDataEncoding(org.cojen.classfile.CodeAssembler, org.cojen.classfile.LocalVariable, int, int)">extraDataEncoding</a></strong>(org.cojen.classfile.CodeAssembler&nbsp;a,
+ org.cojen.classfile.LocalVariable&nbsp;dataVar,
+ int&nbsp;prefix,
+ int&nbsp;suffix)</code>
+<div class="block">Second phase encoding, which does nothing by default.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected <a href="../../../../com/amazon/carbonado/info/StorableProperty.html" title="interface in com.amazon.carbonado.info">StorableProperty</a>&lt;<a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html" title="type parameter in GenericEncodingStrategy">S</a>&gt;[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html#gatherAllDataProperties()">gatherAllDataProperties</a></strong>()</code>
+<div class="block">Returns all non-derived data properties for storable.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../com/amazon/carbonado/info/OrderedProperty.html" title="class in com.amazon.carbonado.info">OrderedProperty</a>&lt;<a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html" title="type parameter in GenericEncodingStrategy">S</a>&gt;[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html#gatherAllKeyProperties()">gatherAllKeyProperties</a></strong>()</code>
+<div class="block">Returns all key properties as ordered properties, possibly with
+ unspecified directions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected <a href="../../../../com/amazon/carbonado/info/StorableProperty.html" title="interface in com.amazon.carbonado.info">StorableProperty</a>&lt;<a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html" title="type parameter in GenericEncodingStrategy">S</a>&gt;[]</code></td>
+<td class="colLast"><code><strong><a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html#gatherAllProperties()">gatherAllProperties</a></strong>()</code>
+<div class="block">Returns all non-join, non-derived properties for storable.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html#getConstantKeyPrefixLength()">getConstantKeyPrefixLength</a></strong>()</code>
+<div class="block">Returns amount of prefix key bytes that encoding strategy instance
+ produces which are always the same.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html#getDataPrefixPadding()">getDataPrefixPadding</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html#getDataSuffixPadding()">getDataSuffixPadding</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html#getKeyPrefixPadding()">getKeyPrefixPadding</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html#getKeySuffixPadding()">getKeySuffixPadding</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected <a href="../../../../com/amazon/carbonado/info/StorableIndex.html" title="class in com.amazon.carbonado.info">StorableIndex</a>&lt;<a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html" title="type parameter in GenericEncodingStrategy">S</a>&gt;</code></td>
+<td class="colLast"><code><strong><a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html#getPrimaryKeyIndex()">getPrimaryKeyIndex</a></strong>()</code>
+<div class="block">Returns all key properties in the form of an index.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>java.lang.Class&lt;<a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html" title="type parameter in GenericEncodingStrategy">S</a>&gt;</code></td>
+<td class="colLast"><code><strong><a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html#getType()">getType</a></strong>()</code>
+<div class="block">Returns the type of Storable that code is generated for.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><strong><a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html#hashCode()">hashCode</a></strong>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html#isSupported(java.lang.Class)">isSupported</a></strong>(java.lang.Class&lt;?&gt;&nbsp;propertyType)</code>
+<div class="block">Returns true if the type of the given property type is supported.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html#isSupported(org.cojen.classfile.TypeDesc)">isSupported</a></strong>(org.cojen.classfile.TypeDesc&nbsp;propertyType)</code>
+<div class="block">Returns true if the type of the given property type is supported.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html#loadPropertyValue(org.cojen.classfile.CodeAssembler, com.amazon.carbonado.raw.StorablePropertyInfo, int, boolean, org.cojen.classfile.LocalVariable, java.lang.Class, org.cojen.classfile.LocalVariable)">loadPropertyValue</a></strong>(org.cojen.classfile.CodeAssembler&nbsp;a,
+ <a href="../../../../com/amazon/carbonado/raw/StorablePropertyInfo.html" title="class in com.amazon.carbonado.raw">StorablePropertyInfo</a>&nbsp;info,
+ int&nbsp;ordinal,
+ boolean&nbsp;useReadMethod,
+ org.cojen.classfile.LocalVariable&nbsp;instanceVar,
+ java.lang.Class&lt;?&gt;&nbsp;adapterInstanceClass,
+ org.cojen.classfile.LocalVariable&nbsp;partialStartVar)</code>
+<div class="block">Generates code to load a property value onto the operand stack.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected boolean</code></td>
+<td class="colLast"><code><strong><a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html#loadPropertyValue(org.cojen.classfile.LocalVariable[], java.lang.Boolean[], org.cojen.classfile.CodeAssembler, com.amazon.carbonado.raw.StorablePropertyInfo, int, boolean, org.cojen.classfile.LocalVariable, java.lang.Class, org.cojen.classfile.LocalVariable)">loadPropertyValue</a></strong>(org.cojen.classfile.LocalVariable[]&nbsp;stashedProperties,
+ java.lang.Boolean[]&nbsp;stashedFromInstances,
+ org.cojen.classfile.CodeAssembler&nbsp;a,
+ <a href="../../../../com/amazon/carbonado/raw/StorablePropertyInfo.html" title="class in com.amazon.carbonado.raw">StorablePropertyInfo</a>&nbsp;info,
+ int&nbsp;ordinal,
+ boolean&nbsp;useReadMethod,
+ org.cojen.classfile.LocalVariable&nbsp;instanceVar,
+ java.lang.Class&lt;?&gt;&nbsp;adapterInstanceClass,
+ org.cojen.classfile.LocalVariable&nbsp;partialStartVar)</code>
+<div class="block">Generates code to load a property value onto the operand stack.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><strong><a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html#pushDecodingInstanceVar(org.cojen.classfile.CodeAssembler, int, org.cojen.classfile.LocalVariable)">pushDecodingInstanceVar</a></strong>(org.cojen.classfile.CodeAssembler&nbsp;a,
+ int&nbsp;ordinal,
+ org.cojen.classfile.LocalVariable&nbsp;instanceVar)</code>
+<div class="block">Push decoding instanceVar to stack in preparation to calling
+ storePropertyValue.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><strong><a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html#pushRawSupport(org.cojen.classfile.CodeAssembler, org.cojen.classfile.LocalVariable)">pushRawSupport</a></strong>(org.cojen.classfile.CodeAssembler&nbsp;a,
+ org.cojen.classfile.LocalVariable&nbsp;instanceVar)</code>
+<div class="block">Generates code to push RawSupport instance to the stack.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><strong><a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html#storePropertyValue(org.cojen.classfile.CodeAssembler, com.amazon.carbonado.raw.StorablePropertyInfo, boolean, org.cojen.classfile.LocalVariable, java.lang.Class)">storePropertyValue</a></strong>(org.cojen.classfile.CodeAssembler&nbsp;a,
+ <a href="../../../../com/amazon/carbonado/raw/StorablePropertyInfo.html" title="class in com.amazon.carbonado.raw">StorablePropertyInfo</a>&nbsp;info,
+ boolean&nbsp;useWriteMethod,
+ org.cojen.classfile.LocalVariable&nbsp;instanceVar,
+ java.lang.Class&lt;?&gt;&nbsp;adapterInstanceClass)</code>
+<div class="block">Generates code to store a property value into an instance which is
+ already on the operand stack.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
+<code>clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor_detail">
+<!-- -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GenericEncodingStrategy(java.lang.Class, com.amazon.carbonado.info.StorableIndex)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GenericEncodingStrategy</h4>
+<pre>public&nbsp;GenericEncodingStrategy(java.lang.Class&lt;<a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html" title="type parameter in GenericEncodingStrategy">S</a>&gt;&nbsp;type,
+ <a href="../../../../com/amazon/carbonado/info/StorableIndex.html" title="class in com.amazon.carbonado.info">StorableIndex</a>&lt;<a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html" title="type parameter in GenericEncodingStrategy">S</a>&gt;&nbsp;pkIndex)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>type</code> - type of Storable to generate code for</dd><dd><code>pkIndex</code> - specifies sequence and ordering of key properties (optional)</dd></dl>
+</li>
+</ul>
+<a name="GenericEncodingStrategy(java.lang.Class, com.amazon.carbonado.info.StorableIndex, int, int, int, int)">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GenericEncodingStrategy</h4>
+<pre>public&nbsp;GenericEncodingStrategy(java.lang.Class&lt;<a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html" title="type parameter in GenericEncodingStrategy">S</a>&gt;&nbsp;type,
+ <a href="../../../../com/amazon/carbonado/info/StorableIndex.html" title="class in com.amazon.carbonado.info">StorableIndex</a>&lt;<a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html" title="type parameter in GenericEncodingStrategy">S</a>&gt;&nbsp;pkIndex,
+ int&nbsp;keyPrefixPadding,
+ int&nbsp;keySuffixPadding,
+ int&nbsp;dataPrefixPadding,
+ int&nbsp;dataSuffixPadding)</pre>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>type</code> - type of Storable to generate code for</dd><dd><code>pkIndex</code> - specifies sequence and ordering of key properties (optional)</dd><dd><code>keyPrefixPadding</code> - amount of padding bytes at start of keys</dd><dd><code>keySuffixPadding</code> - amount of padding bytes at end of keys</dd><dd><code>dataPrefixPadding</code> - amount of padding bytes at start of data values</dd><dd><code>dataSuffixPadding</code> - amount of padding bytes at end of data values</dd></dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method_detail">
+<!-- -->
+</a>
+<h3>Method Detail</h3>
+<a name="buildKeyEncoding(org.cojen.classfile.CodeAssembler, com.amazon.carbonado.info.OrderedProperty[], org.cojen.classfile.LocalVariable, java.lang.Class, boolean, org.cojen.classfile.LocalVariable, org.cojen.classfile.LocalVariable)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>buildKeyEncoding</h4>
+<pre>public&nbsp;org.cojen.classfile.LocalVariable&nbsp;buildKeyEncoding(org.cojen.classfile.CodeAssembler&nbsp;assembler,
+ <a href="../../../../com/amazon/carbonado/info/OrderedProperty.html" title="class in com.amazon.carbonado.info">OrderedProperty</a>&lt;<a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html" title="type parameter in GenericEncodingStrategy">S</a>&gt;[]&nbsp;properties,
+ org.cojen.classfile.LocalVariable&nbsp;instanceVar,
+ java.lang.Class&lt;?&gt;&nbsp;adapterInstanceClass,
+ boolean&nbsp;useReadMethods,
+ org.cojen.classfile.LocalVariable&nbsp;partialStartVar,
+ org.cojen.classfile.LocalVariable&nbsp;partialEndVar)
+ throws <a href="../../../../com/amazon/carbonado/SupportException.html" title="class in com.amazon.carbonado">SupportException</a></pre>
+<div class="block">Generates bytecode instructions to encode properties. The encoding is
+ suitable for "key" encoding, which means it is correctly comparable.
+
+ <p>Note: if a partialStartVar is provided and this strategy has a key
+ prefix, the prefix is allocated only if the runtime value of
+ partialStartVar is zero. Likewise, if a partialEndVar is provided and
+ this strategy has a key suffix, the suffix is allocated only of the
+ runtime value of partialEndVar is one less than the property count.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>assembler</code> - code assembler to receive bytecode instructions</dd><dd><code>properties</code> - specific properties to encode, defaults to all key
+ properties if null</dd><dd><code>instanceVar</code> - local variable referencing Storable instance,
+ defaults to "this" if null. If variable type is an Object array, then
+ property values are read from the runtime value of this array instead
+ of a Storable instance.</dd><dd><code>adapterInstanceClass</code> - class containing static references to
+ adapter instances - defaults to instanceVar</dd><dd><code>useReadMethods</code> - when true, access properties by public read
+ methods instead of protected fields - should be used if class being
+ generated doesn't have access to these fields</dd><dd><code>partialStartVar</code> - optional variable for supporting partial key
+ generation. It must be an int, whose runtime value must be less than the
+ properties array length. It marks the range start of the partial
+ property range.</dd><dd><code>partialEndVar</code> - optional variable for supporting partial key
+ generation. It must be an int, whose runtime value must be less than or
+ equal to the properties array length. It marks the range end (exclusive)
+ of the partial property range.</dd>
+<dt><span class="strong">Returns:</span></dt><dd>local variable referencing a byte array with encoded key</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="../../../../com/amazon/carbonado/SupportException.html" title="class in com.amazon.carbonado">SupportException</a></code> - if any property type is not supported</dd>
+<dd><code>java.lang.IllegalArgumentException</code> - if assembler is null, or if instanceVar
+ is not the correct instance type, or if partial variable types are not
+ ints</dd></dl>
+</li>
+</ul>
+<a name="buildKeyDecoding(org.cojen.classfile.CodeAssembler, com.amazon.carbonado.info.OrderedProperty[], org.cojen.classfile.LocalVariable, java.lang.Class, boolean, org.cojen.classfile.LocalVariable)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>buildKeyDecoding</h4>
+<pre>public&nbsp;void&nbsp;buildKeyDecoding(org.cojen.classfile.CodeAssembler&nbsp;assembler,
+ <a href="../../../../com/amazon/carbonado/info/OrderedProperty.html" title="class in com.amazon.carbonado.info">OrderedProperty</a>&lt;<a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html" title="type parameter in GenericEncodingStrategy">S</a>&gt;[]&nbsp;properties,
+ org.cojen.classfile.LocalVariable&nbsp;instanceVar,
+ java.lang.Class&lt;?&gt;&nbsp;adapterInstanceClass,
+ boolean&nbsp;useWriteMethods,
+ org.cojen.classfile.LocalVariable&nbsp;encodedVar)
+ throws <a href="../../../../com/amazon/carbonado/SupportException.html" title="class in com.amazon.carbonado">SupportException</a></pre>
+<div class="block">Generates bytecode instructions to decode properties. A
+ CorruptEncodingException may be thrown from generated code.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>assembler</code> - code assembler to receive bytecode instructions</dd><dd><code>properties</code> - specific properties to decode, defaults to all key
+ properties if null</dd><dd><code>instanceVar</code> - local variable referencing Storable instance,
+ defaults to "this" if null. If variable type is an Object array, then
+ property values are placed into the runtime value of this array instead
+ of a Storable instance.</dd><dd><code>adapterInstanceClass</code> - class containing static references to
+ adapter instances - defaults to instanceVar</dd><dd><code>useWriteMethods</code> - when true, set properties by public write
+ methods instead of protected fields - should be used if class being
+ generated doesn't have access to these fields</dd><dd><code>encodedVar</code> - required variable, which must be a byte array. At
+ runtime, it references an encoded key.</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="../../../../com/amazon/carbonado/SupportException.html" title="class in com.amazon.carbonado">SupportException</a></code> - if any property type is not supported</dd>
+<dd><code>java.lang.IllegalArgumentException</code> - if assembler is null, or if instanceVar
+ is not the correct instance type, or if encodedVar is not a byte array</dd></dl>
+</li>
+</ul>
+<a name="buildDataEncoding(org.cojen.classfile.CodeAssembler, com.amazon.carbonado.info.StorableProperty[], org.cojen.classfile.LocalVariable, java.lang.Class, boolean, int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>buildDataEncoding</h4>
+<pre>public&nbsp;org.cojen.classfile.LocalVariable&nbsp;buildDataEncoding(org.cojen.classfile.CodeAssembler&nbsp;assembler,
+ <a href="../../../../com/amazon/carbonado/info/StorableProperty.html" title="interface in com.amazon.carbonado.info">StorableProperty</a>&lt;<a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html" title="type parameter in GenericEncodingStrategy">S</a>&gt;[]&nbsp;properties,
+ org.cojen.classfile.LocalVariable&nbsp;instanceVar,
+ java.lang.Class&lt;?&gt;&nbsp;adapterInstanceClass,
+ boolean&nbsp;useReadMethods,
+ int&nbsp;generation)
+ throws <a href="../../../../com/amazon/carbonado/SupportException.html" title="class in com.amazon.carbonado">SupportException</a></pre>
+<div class="block">Generates bytecode instructions to encode properties. The encoding is
+ suitable for "data" encoding, which means it is not correctly
+ comparable, but it is more efficient than key encoding. Partial encoding
+ is not supported.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>assembler</code> - code assembler to receive bytecode instructions</dd><dd><code>properties</code> - specific properties to encode, defaults to all non-key
+ properties if null</dd><dd><code>instanceVar</code> - local variable referencing Storable instance,
+ defaults to "this" if null. If variable type is an Object array, then
+ property values are read from the runtime value of this array instead
+ of a Storable instance.</dd><dd><code>adapterInstanceClass</code> - class containing static references to
+ adapter instances - defaults to instanceVar</dd><dd><code>useReadMethods</code> - when true, access properties by public read
+ methods instead of protected fields</dd><dd><code>generation</code> - when non-negative, write a storable layout generation
+ value in one or four bytes. Generation 0..127 is encoded in one byte, and
+ 128..max is encoded in four bytes, with the most significant bit set.</dd>
+<dt><span class="strong">Returns:</span></dt><dd>local variable referencing a byte array with encoded data</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="../../../../com/amazon/carbonado/SupportException.html" title="class in com.amazon.carbonado">SupportException</a></code> - if any property type is not supported</dd>
+<dd><code>java.lang.IllegalArgumentException</code> - if assembler is null, or if instanceVar
+ is not the correct instance type</dd></dl>
+</li>
+</ul>
+<a name="buildDataDecoding(org.cojen.classfile.CodeAssembler, com.amazon.carbonado.info.StorableProperty[], org.cojen.classfile.LocalVariable, java.lang.Class, boolean, int, org.cojen.classfile.Label, org.cojen.classfile.LocalVariable)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>buildDataDecoding</h4>
+<pre>public&nbsp;void&nbsp;buildDataDecoding(org.cojen.classfile.CodeAssembler&nbsp;assembler,
+ <a href="../../../../com/amazon/carbonado/info/StorableProperty.html" title="interface in com.amazon.carbonado.info">StorableProperty</a>&lt;<a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html" title="type parameter in GenericEncodingStrategy">S</a>&gt;[]&nbsp;properties,
+ org.cojen.classfile.LocalVariable&nbsp;instanceVar,
+ java.lang.Class&lt;?&gt;&nbsp;adapterInstanceClass,
+ boolean&nbsp;useWriteMethods,
+ int&nbsp;generation,
+ org.cojen.classfile.Label&nbsp;altGenerationHandler,
+ org.cojen.classfile.LocalVariable&nbsp;encodedVar)
+ throws <a href="../../../../com/amazon/carbonado/SupportException.html" title="class in com.amazon.carbonado">SupportException</a></pre>
+<div class="block">Generates bytecode instructions to decode properties. A
+ CorruptEncodingException may be thrown from generated code.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>assembler</code> - code assembler to receive bytecode instructions</dd><dd><code>properties</code> - specific properties to decode, defaults to all non-key
+ properties if null</dd><dd><code>instanceVar</code> - local variable referencing Storable instance,
+ defaults to "this" if null. If variable type is an Object array, then
+ property values are placed into the runtime value of this array instead
+ of a Storable instance.</dd><dd><code>adapterInstanceClass</code> - class containing static references to
+ adapter instances - defaults to instanceVar</dd><dd><code>useWriteMethods</code> - when true, set properties by public write
+ methods instead of protected fields - should be used if class being
+ generated doesn't have access to these fields</dd><dd><code>generation</code> - when non-negative, decoder expects a storable layout
+ generation value to match this value. Otherwise, it throws a
+ CorruptEncodingException.</dd><dd><code>altGenerationHandler</code> - if non-null and a generation is provided,
+ this label defines an alternate generation handler. It is executed
+ instead of throwing a CorruptEncodingException if the generation doesn't
+ match. The actual generation is available on the top of the stack for
+ the handler to consume.</dd><dd><code>encodedVar</code> - required variable, which must be a byte array. At
+ runtime, it references encoded data.</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="../../../../com/amazon/carbonado/SupportException.html" title="class in com.amazon.carbonado">SupportException</a></code> - if any property type is not supported</dd>
+<dd><code>java.lang.IllegalArgumentException</code> - if assembler is null, or if instanceVar
+ is not the correct instance type, or if encodedVar is not a byte array</dd></dl>
+</li>
+</ul>
+<a name="buildSerialEncoding(org.cojen.classfile.CodeAssembler, com.amazon.carbonado.info.StorableProperty[])">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>buildSerialEncoding</h4>
+<pre>public&nbsp;org.cojen.classfile.LocalVariable&nbsp;buildSerialEncoding(org.cojen.classfile.CodeAssembler&nbsp;assembler,
+ <a href="../../../../com/amazon/carbonado/info/StorableProperty.html" title="interface in com.amazon.carbonado.info">StorableProperty</a>&lt;<a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html" title="type parameter in GenericEncodingStrategy">S</a>&gt;[]&nbsp;properties)
+ throws <a href="../../../../com/amazon/carbonado/SupportException.html" title="class in com.amazon.carbonado">SupportException</a></pre>
+<div class="block">Generates bytecode instructions to encode properties and their
+ states. This encoding is suitable for short-term serialization only.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>assembler</code> - code assembler to receive bytecode instructions</dd><dd><code>properties</code> - specific properties to decode, defaults to all
+ properties if null</dd>
+<dt><span class="strong">Returns:</span></dt><dd>local variable referencing a byte array with encoded data</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="../../../../com/amazon/carbonado/SupportException.html" title="class in com.amazon.carbonado">SupportException</a></code> - if any property type is not supported</dd><dt><span class="strong">Since:</span></dt>
+ <dd>1.2</dd></dl>
+</li>
+</ul>
+<a name="buildSerialDecoding(org.cojen.classfile.CodeAssembler, com.amazon.carbonado.info.StorableProperty[], org.cojen.classfile.LocalVariable)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>buildSerialDecoding</h4>
+<pre>public&nbsp;void&nbsp;buildSerialDecoding(org.cojen.classfile.CodeAssembler&nbsp;assembler,
+ <a href="../../../../com/amazon/carbonado/info/StorableProperty.html" title="interface in com.amazon.carbonado.info">StorableProperty</a>&lt;<a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html" title="type parameter in GenericEncodingStrategy">S</a>&gt;[]&nbsp;properties,
+ org.cojen.classfile.LocalVariable&nbsp;encodedVar)
+ throws <a href="../../../../com/amazon/carbonado/SupportException.html" title="class in com.amazon.carbonado">SupportException</a></pre>
+<div class="block">Generates bytecode instructions to decode properties and their states. A
+ CorruptEncodingException may be thrown from generated code.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>assembler</code> - code assembler to receive bytecode instructions</dd><dd><code>properties</code> - specific properties to decode, defaults to all
+ properties if null</dd><dd><code>encodedVar</code> - required variable, which must be a byte array. At
+ runtime, it references encoded data.</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="../../../../com/amazon/carbonado/SupportException.html" title="class in com.amazon.carbonado">SupportException</a></code> - if any property type is not supported</dd>
+<dd><code>java.lang.IllegalArgumentException</code> - if encodedVar is not a byte array</dd><dt><span class="strong">Since:</span></dt>
+ <dd>1.2</dd></dl>
+</li>
+</ul>
+<a name="getType()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getType</h4>
+<pre>public final&nbsp;java.lang.Class&lt;<a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html" title="type parameter in GenericEncodingStrategy">S</a>&gt;&nbsp;getType()</pre>
+<div class="block">Returns the type of Storable that code is generated for.</div>
+</li>
+</ul>
+<a name="isSupported(java.lang.Class)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isSupported</h4>
+<pre>public&nbsp;boolean&nbsp;isSupported(java.lang.Class&lt;?&gt;&nbsp;propertyType)</pre>
+<div class="block">Returns true if the type of the given property type is supported. The
+ types currently supported are primitives, primitive wrapper objects,
+ Strings, and byte arrays.</div>
+</li>
+</ul>
+<a name="isSupported(org.cojen.classfile.TypeDesc)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isSupported</h4>
+<pre>public&nbsp;boolean&nbsp;isSupported(org.cojen.classfile.TypeDesc&nbsp;propertyType)</pre>
+<div class="block">Returns true if the type of the given property type is supported. The
+ types currently supported are primitives, primitive wrapper objects,
+ Strings, byte arrays and Lobs.</div>
+</li>
+</ul>
+<a name="getKeyPrefixPadding()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getKeyPrefixPadding</h4>
+<pre>public&nbsp;int&nbsp;getKeyPrefixPadding()</pre>
+</li>
+</ul>
+<a name="getKeySuffixPadding()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getKeySuffixPadding</h4>
+<pre>public&nbsp;int&nbsp;getKeySuffixPadding()</pre>
+</li>
+</ul>
+<a name="getDataPrefixPadding()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDataPrefixPadding</h4>
+<pre>public&nbsp;int&nbsp;getDataPrefixPadding()</pre>
+</li>
+</ul>
+<a name="getDataSuffixPadding()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDataSuffixPadding</h4>
+<pre>public&nbsp;int&nbsp;getDataSuffixPadding()</pre>
+</li>
+</ul>
+<a name="getConstantKeyPrefixLength()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConstantKeyPrefixLength</h4>
+<pre>public&nbsp;int&nbsp;getConstantKeyPrefixLength()</pre>
+<div class="block">Returns amount of prefix key bytes that encoding strategy instance
+ produces which are always the same. Default implementation returns 0.</div>
+</li>
+</ul>
+<a name="hashCode()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre>public&nbsp;int&nbsp;hashCode()</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code>hashCode</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></dd>
+</dl>
+</li>
+</ul>
+<a name="equals(java.lang.Object)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre>public&nbsp;boolean&nbsp;equals(java.lang.Object&nbsp;obj)</pre>
+<dl>
+<dt><strong>Overrides:</strong></dt>
+<dd><code>equals</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></dd>
+</dl>
+</li>
+</ul>
+<a name="getPrimaryKeyIndex()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPrimaryKeyIndex</h4>
+<pre>protected&nbsp;<a href="../../../../com/amazon/carbonado/info/StorableIndex.html" title="class in com.amazon.carbonado.info">StorableIndex</a>&lt;<a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html" title="type parameter in GenericEncodingStrategy">S</a>&gt;&nbsp;getPrimaryKeyIndex()</pre>
+<div class="block">Returns all key properties in the form of an index.</div>
+</li>
+</ul>
+<a name="gatherAllKeyProperties()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>gatherAllKeyProperties</h4>
+<pre>protected&nbsp;<a href="../../../../com/amazon/carbonado/info/OrderedProperty.html" title="class in com.amazon.carbonado.info">OrderedProperty</a>&lt;<a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html" title="type parameter in GenericEncodingStrategy">S</a>&gt;[]&nbsp;gatherAllKeyProperties()</pre>
+<div class="block">Returns all key properties as ordered properties, possibly with
+ unspecified directions.</div>
+</li>
+</ul>
+<a name="gatherAllDataProperties()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>gatherAllDataProperties</h4>
+<pre>protected&nbsp;<a href="../../../../com/amazon/carbonado/info/StorableProperty.html" title="interface in com.amazon.carbonado.info">StorableProperty</a>&lt;<a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html" title="type parameter in GenericEncodingStrategy">S</a>&gt;[]&nbsp;gatherAllDataProperties()</pre>
+<div class="block">Returns all non-derived data properties for storable.</div>
+</li>
+</ul>
+<a name="gatherAllProperties()">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>gatherAllProperties</h4>
+<pre>protected&nbsp;<a href="../../../../com/amazon/carbonado/info/StorableProperty.html" title="interface in com.amazon.carbonado.info">StorableProperty</a>&lt;<a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html" title="type parameter in GenericEncodingStrategy">S</a>&gt;[]&nbsp;gatherAllProperties()</pre>
+<div class="block">Returns all non-join, non-derived properties for storable.</div>
+</li>
+</ul>
+<a name="checkSupport(com.amazon.carbonado.info.StorableProperty)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>checkSupport</h4>
+<pre>protected&nbsp;<a href="../../../../com/amazon/carbonado/raw/StorablePropertyInfo.html" title="class in com.amazon.carbonado.raw">StorablePropertyInfo</a>&nbsp;checkSupport(<a href="../../../../com/amazon/carbonado/info/StorableProperty.html" title="interface in com.amazon.carbonado.info">StorableProperty</a>&lt;<a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html" title="type parameter in GenericEncodingStrategy">S</a>&gt;&nbsp;property)
+ throws <a href="../../../../com/amazon/carbonado/SupportException.html" title="class in com.amazon.carbonado">SupportException</a></pre>
+<dl><dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="../../../../com/amazon/carbonado/SupportException.html" title="class in com.amazon.carbonado">SupportException</a></code></dd></dl>
+</li>
+</ul>
+<a name="checkSupport(com.amazon.carbonado.info.StorableProperty[])">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>checkSupport</h4>
+<pre>protected&nbsp;<a href="../../../../com/amazon/carbonado/raw/StorablePropertyInfo.html" title="class in com.amazon.carbonado.raw">StorablePropertyInfo</a>[]&nbsp;checkSupport(<a href="../../../../com/amazon/carbonado/info/StorableProperty.html" title="interface in com.amazon.carbonado.info">StorableProperty</a>&lt;<a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html" title="type parameter in GenericEncodingStrategy">S</a>&gt;[]&nbsp;properties)
+ throws <a href="../../../../com/amazon/carbonado/SupportException.html" title="class in com.amazon.carbonado">SupportException</a></pre>
+<dl><dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="../../../../com/amazon/carbonado/SupportException.html" title="class in com.amazon.carbonado">SupportException</a></code></dd></dl>
+</li>
+</ul>
+<a name="extraDataEncoding(org.cojen.classfile.CodeAssembler, org.cojen.classfile.LocalVariable, int, int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>extraDataEncoding</h4>
+<pre>protected&nbsp;void&nbsp;extraDataEncoding(org.cojen.classfile.CodeAssembler&nbsp;a,
+ org.cojen.classfile.LocalVariable&nbsp;dataVar,
+ int&nbsp;prefix,
+ int&nbsp;suffix)</pre>
+<div class="block">Second phase encoding, which does nothing by default.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>dataVar</code> - local variable referencing a byte array with data</dd><dd><code>prefix</code> - prefix of byte array to preserve</dd><dd><code>suffix</code> - suffix of byte array to preserve</dd></dl>
+</li>
+</ul>
+<a name="extraDataDecoding(org.cojen.classfile.CodeAssembler, org.cojen.classfile.LocalVariable, int, int)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>extraDataDecoding</h4>
+<pre>protected&nbsp;void&nbsp;extraDataDecoding(org.cojen.classfile.CodeAssembler&nbsp;a,
+ org.cojen.classfile.LocalVariable&nbsp;dataVar,
+ int&nbsp;prefix,
+ int&nbsp;suffix)</pre>
+<div class="block">Second phase decoding, which does nothing by default.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>dataVar</code> - local variable referencing a byte array with data</dd></dl>
+</li>
+</ul>
+<a name="loadPropertyValue(org.cojen.classfile.LocalVariable[], java.lang.Boolean[], org.cojen.classfile.CodeAssembler, com.amazon.carbonado.raw.StorablePropertyInfo, int, boolean, org.cojen.classfile.LocalVariable, java.lang.Class, org.cojen.classfile.LocalVariable)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>loadPropertyValue</h4>
+<pre>protected&nbsp;boolean&nbsp;loadPropertyValue(org.cojen.classfile.LocalVariable[]&nbsp;stashedProperties,
+ java.lang.Boolean[]&nbsp;stashedFromInstances,
+ org.cojen.classfile.CodeAssembler&nbsp;a,
+ <a href="../../../../com/amazon/carbonado/raw/StorablePropertyInfo.html" title="class in com.amazon.carbonado.raw">StorablePropertyInfo</a>&nbsp;info,
+ int&nbsp;ordinal,
+ boolean&nbsp;useReadMethod,
+ org.cojen.classfile.LocalVariable&nbsp;instanceVar,
+ java.lang.Class&lt;?&gt;&nbsp;adapterInstanceClass,
+ org.cojen.classfile.LocalVariable&nbsp;partialStartVar)</pre>
+<div class="block">Generates code to load a property value onto the operand stack.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>info</code> - info for property to load</dd><dd><code>ordinal</code> - zero-based property ordinal, used only if instanceVar
+ refers to an object array.</dd><dd><code>useReadMethod</code> - when true, access property by public read method
+ instead of protected field</dd><dd><code>instanceVar</code> - local variable referencing Storable instance,
+ defaults to "this" if null. If variable type is an Object array, then
+ property values are read from the runtime value of this array instead
+ of a Storable instance.</dd><dd><code>adapterInstanceClass</code> - class containing static references to
+ adapter instances - defaults to instanceVar</dd><dd><code>partialStartVar</code> - optional variable for supporting partial key
+ generation. It must be an int, whose runtime value must be less than the
+ properties array length. It marks the range start of the partial
+ property range.</dd>
+<dt><span class="strong">Returns:</span></dt><dd>true if property was loaded from instance, false if loaded from
+ value array</dd></dl>
+</li>
+</ul>
+<a name="loadPropertyValue(org.cojen.classfile.CodeAssembler, com.amazon.carbonado.raw.StorablePropertyInfo, int, boolean, org.cojen.classfile.LocalVariable, java.lang.Class, org.cojen.classfile.LocalVariable)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>loadPropertyValue</h4>
+<pre>protected&nbsp;boolean&nbsp;loadPropertyValue(org.cojen.classfile.CodeAssembler&nbsp;a,
+ <a href="../../../../com/amazon/carbonado/raw/StorablePropertyInfo.html" title="class in com.amazon.carbonado.raw">StorablePropertyInfo</a>&nbsp;info,
+ int&nbsp;ordinal,
+ boolean&nbsp;useReadMethod,
+ org.cojen.classfile.LocalVariable&nbsp;instanceVar,
+ java.lang.Class&lt;?&gt;&nbsp;adapterInstanceClass,
+ org.cojen.classfile.LocalVariable&nbsp;partialStartVar)</pre>
+<div class="block">Generates code to load a property value onto the operand stack.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>info</code> - info for property to load</dd><dd><code>ordinal</code> - zero-based property ordinal, used only if instanceVar
+ refers to an object array.</dd><dd><code>useReadMethod</code> - when true, access property by public read method
+ instead of protected field</dd><dd><code>instanceVar</code> - local variable referencing Storable instance,
+ defaults to "this" if null. If variable type is an Object array, then
+ property values are read from the runtime value of this array instead
+ of a Storable instance.</dd><dd><code>adapterInstanceClass</code> - class containing static references to
+ adapter instances - defaults to instanceVar</dd><dd><code>partialStartVar</code> - optional variable for supporting partial key
+ generation. It must be an int, whose runtime value must be less than the
+ properties array length. It marks the range start of the partial
+ property range.</dd>
+<dt><span class="strong">Returns:</span></dt><dd>true if property was loaded from instance, false if loaded from
+ value array</dd></dl>
+</li>
+</ul>
+<a name="pushRawSupport(org.cojen.classfile.CodeAssembler, org.cojen.classfile.LocalVariable)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>pushRawSupport</h4>
+<pre>protected&nbsp;void&nbsp;pushRawSupport(org.cojen.classfile.CodeAssembler&nbsp;a,
+ org.cojen.classfile.LocalVariable&nbsp;instanceVar)
+ throws <a href="../../../../com/amazon/carbonado/SupportException.html" title="class in com.amazon.carbonado">SupportException</a></pre>
+<div class="block">Generates code to push RawSupport instance to the stack. RawSupport is
+ available only in Storable instances. If instanceVar is an Object[], a
+ SupportException is thrown.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>instanceVar</code> - Storable instance or array of property values. Null
+ is storable instance of "this".</dd>
+<dt><span class="strong">Throws:</span></dt>
+<dd><code><a href="../../../../com/amazon/carbonado/SupportException.html" title="class in com.amazon.carbonado">SupportException</a></code></dd></dl>
+</li>
+</ul>
+<a name="pushDecodingInstanceVar(org.cojen.classfile.CodeAssembler, int, org.cojen.classfile.LocalVariable)">
+<!-- -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>pushDecodingInstanceVar</h4>
+<pre>protected&nbsp;void&nbsp;pushDecodingInstanceVar(org.cojen.classfile.CodeAssembler&nbsp;a,
+ int&nbsp;ordinal,
+ org.cojen.classfile.LocalVariable&nbsp;instanceVar)</pre>
+<div class="block">Push decoding instanceVar to stack in preparation to calling
+ storePropertyValue.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>ordinal</code> - zero-based property ordinal, used only if instanceVar
+ refers to an object array.</dd><dd><code>instanceVar</code> - local variable referencing Storable instance,
+ defaults to "this" if null. If variable type is an Object array, then
+ property values are written to the runtime value of this array instead
+ of a Storable instance.</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html#storePropertyValue(org.cojen.classfile.CodeAssembler, com.amazon.carbonado.raw.StorablePropertyInfo, boolean, org.cojen.classfile.LocalVariable, java.lang.Class)"><code>storePropertyValue</code></a></dd></dl>
+</li>
+</ul>
+<a name="storePropertyValue(org.cojen.classfile.CodeAssembler, com.amazon.carbonado.raw.StorablePropertyInfo, boolean, org.cojen.classfile.LocalVariable, java.lang.Class)">
+<!-- -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>storePropertyValue</h4>
+<pre>protected&nbsp;void&nbsp;storePropertyValue(org.cojen.classfile.CodeAssembler&nbsp;a,
+ <a href="../../../../com/amazon/carbonado/raw/StorablePropertyInfo.html" title="class in com.amazon.carbonado.raw">StorablePropertyInfo</a>&nbsp;info,
+ boolean&nbsp;useWriteMethod,
+ org.cojen.classfile.LocalVariable&nbsp;instanceVar,
+ java.lang.Class&lt;?&gt;&nbsp;adapterInstanceClass)</pre>
+<div class="block">Generates code to store a property value into an instance which is
+ already on the operand stack. If instance is an Object array, index into
+ array must also be on the operand stack.</div>
+<dl><dt><span class="strong">Parameters:</span></dt><dd><code>info</code> - info for property to store to</dd><dd><code>useWriteMethod</code> - when true, set property by public write method
+ instead of protected field</dd><dd><code>instanceVar</code> - local variable referencing Storable instance,
+ defaults to "this" if null. If variable type is an Object array, then
+ property values are written to the runtime value of this array instead
+ of a Storable instance.</dd><dd><code>adapterInstanceClass</code> - class containing static references to
+ adapter instances - defaults to instanceVar</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../com/amazon/carbonado/raw/GenericEncodingStrategy.html#pushDecodingInstanceVar(org.cojen.classfile.CodeAssembler, int, org.cojen.classfile.LocalVariable)"><code>pushDecodingInstanceVar</code></a></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/GenericEncodingStrategy.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/raw/DataEncoder.html" title="class in com.amazon.carbonado.raw"><span class="strong">Prev Class</span></a></li>
+<li><a href="../../../../com/amazon/carbonado/raw/GenericInstanceFactory.html" title="interface in com.amazon.carbonado.raw"><span class="strong">Next Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?com/amazon/carbonado/raw/GenericEncodingStrategy.html" target="_top">Frames</a></li>
+<li><a href="GenericEncodingStrategy.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:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method_detail">Method</a></li>
+</ul>
+</div>
+<a name="skip-navbar_bottom">
+<!-- -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2006-2013 <a href="https://github.com/Carbonado/Carbonado">Amazon Technologies, Inc.</a>. All Rights Reserved.</small></p>
+</body>
+</html>