incubator-blur-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From amccu...@apache.org
Subject [31/39] Massive changes to the thrift RPC defs, see mail list for details subject (Rows, Records, Session oh my).
Date Thu, 28 Feb 2013 03:07:37 GMT
http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/11f5141c/src/distribution/src/main/scripts/interface/gen-html/BlurRPCService.html
----------------------------------------------------------------------
diff --git a/src/distribution/src/main/scripts/interface/gen-html/BlurRPCService.html b/src/distribution/src/main/scripts/interface/gen-html/BlurRPCService.html
new file mode 100644
index 0000000..a7e68d8
--- /dev/null
+++ b/src/distribution/src/main/scripts/interface/gen-html/BlurRPCService.html
@@ -0,0 +1,211 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
+<link href="style.css" rel="stylesheet" type="text/css"/>
+<title>Thrift module: BlurRPCService</title></head><body>
+<div class="container-fluid">
+<h1>Thrift module: BlurRPCService</h1>
+<table class="table-bordered table-striped table-condensed"><thead><th>Module</th><th>Services</th><th>Data types</th><th>Constants</th></thead>
+<tr>
+<td>BlurRPCService</td><td><a href="BlurRPCService.html#Svc_Blur">Blur</a><br/>
+<ul>
+<li><a href="BlurRPCService.html#Fn_Blur_addDocuments">addDocuments</a></li>
+<li><a href="BlurRPCService.html#Fn_Blur_blockUntilGenerationIsVisible">blockUntilGenerationIsVisible</a></li>
+<li><a href="BlurRPCService.html#Fn_Blur_cancelQuery">cancelQuery</a></li>
+<li><a href="BlurRPCService.html#Fn_Blur_closeReadSession">closeReadSession</a></li>
+<li><a href="BlurRPCService.html#Fn_Blur_createTable">createTable</a></li>
+<li><a href="BlurRPCService.html#Fn_Blur_deleteDocuments">deleteDocuments</a></li>
+<li><a href="BlurRPCService.html#Fn_Blur_deleteDocumentsByQueries">deleteDocumentsByQueries</a></li>
+<li><a href="BlurRPCService.html#Fn_Blur_describe">describe</a></li>
+<li><a href="BlurRPCService.html#Fn_Blur_disableTable">disableTable</a></li>
+<li><a href="BlurRPCService.html#Fn_Blur_doc">doc</a></li>
+<li><a href="BlurRPCService.html#Fn_Blur_enableTable">enableTable</a></li>
+<li><a href="BlurRPCService.html#Fn_Blur_isInSafeMode">isInSafeMode</a></li>
+<li><a href="BlurRPCService.html#Fn_Blur_openReadSession">openReadSession</a></li>
+<li><a href="BlurRPCService.html#Fn_Blur_queryStatus">queryStatus</a></li>
+<li><a href="BlurRPCService.html#Fn_Blur_queryStatusIdList">queryStatusIdList</a></li>
+<li><a href="BlurRPCService.html#Fn_Blur_removeTable">removeTable</a></li>
+<li><a href="BlurRPCService.html#Fn_Blur_schema">schema</a></li>
+<li><a href="BlurRPCService.html#Fn_Blur_search">search</a></li>
+<li><a href="BlurRPCService.html#Fn_Blur_serverLayout">serverLayout</a></li>
+<li><a href="BlurRPCService.html#Fn_Blur_serverList">serverList</a></li>
+<li><a href="BlurRPCService.html#Fn_Blur_shardLayout">shardLayout</a></li>
+<li><a href="BlurRPCService.html#Fn_Blur_tableList">tableList</a></li>
+<li><a href="BlurRPCService.html#Fn_Blur_tableStats">tableStats</a></li>
+<li><a href="BlurRPCService.html#Fn_Blur_updateDocuments">updateDocuments</a></li>
+</ul>
+</td>
+<td></td>
+<td></code></td>
+</tr></table>
+<hr/><h2 id="Services">Services</h2>
+<h3 id="Svc_Blur">Service: Blur</h3>
+<div class="extends"><em>extends</em> <code><a href="BlurSimple.html#Svc_DocumentGroupService">BlurSimple.DocumentGroupService</a></code></div>
+<div class="definition"><h4 id="Fn_Blur_openReadSession">Function: Blur.openReadSession</h4>
+<pre><code><a href="BlurRPC.html#Struct_Session">BlurRPC.Session</a></code> openReadSession(<code>string</code> table)
+    throws <code><a href="BlurRPC.html#Struct_BlurException">BlurRPC.BlurException</a></code>
+</pre>Creating a session snapshots the readers during search and document
+fetching.  This provides a static view of the indexes so the document
+ids will remain the same during a session.
+@param table the table name.
+@return the new Session.
+<br/></div><div class="definition"><h4 id="Fn_Blur_search">Function: Blur.search</h4>
+<pre><code>list&lt;<code><a href="BlurRPC.html#Struct_TopFieldDocs">BlurRPC.TopFieldDocs</a></code>&gt;</code> search(<code><a href="BlurRPC.html#Struct_Session">BlurRPC.Session</a></code> session,
+                                  <code><a href="BlurRPC.html#Struct_QueryArgs">BlurRPC.QueryArgs</a></code> queryArgs)
+    throws <code><a href="BlurRPC.html#Struct_BlurException">BlurRPC.BlurException</a></code>
+</pre>Runs a search with the given query arguments.  Invalid Sessions will throw a BlurException.
+@param session the Session.
+@param queryArgs the QueryArgs which contains the query, filter, sort, fetch, paging information, etc.
+@return the TopFieldDocs, where there is a TopFieldDocs object for each shard that was search against.
+<br/></div><div class="definition"><h4 id="Fn_Blur_doc">Function: Blur.doc</h4>
+<pre><code>list&lt;<code><a href="BlurRPC.html#Struct_Document">BlurRPC.Document</a></code>&gt;</code> doc(<code><a href="BlurRPC.html#Struct_Session">BlurRPC.Session</a></code> session,
+                           <code>list&lt;<code>i64</code>&gt;</code> docLocations,
+                           <code>set&lt;<code>string</code>&gt;</code> fields)
+    throws <code><a href="BlurRPC.html#Struct_BlurException">BlurRPC.BlurException</a></code>
+</pre>Fetches a document based on the DocLocation list with the fields specified.
+@param session the Session.
+@param docLocations the document locations, which include shard index and document id.
+@param fields the field names to fetch.
+@return the Documents that were requested.
+<br/></div><div class="definition"><h4 id="Fn_Blur_closeReadSession">Function: Blur.closeReadSession</h4>
+<pre><code>void</code> closeReadSession(<code><a href="BlurRPC.html#Struct_Session">BlurRPC.Session</a></code> session)
+    throws <code><a href="BlurRPC.html#Struct_BlurException">BlurRPC.BlurException</a></code>
+</pre>Closes the session and allows the readers to be closed.
+@param session the Session.
+<br/></div><div class="definition"><h4 id="Fn_Blur_addDocuments">Function: Blur.addDocuments</h4>
+<pre><code>list&lt;<code><a href="BlurRPC.html#Struct_Generation">BlurRPC.Generation</a></code>&gt;</code> addDocuments(<code><a href="BlurRPC.html#Struct_MutateOptions">BlurRPC.MutateOptions</a></code> options,
+                                      <code>list&lt;<code><a href="BlurRPC.html#Struct_Document">BlurRPC.Document</a></code>&gt;</code> documents)
+    throws <code><a href="BlurRPC.html#Struct_BlurException">BlurRPC.BlurException</a></code>
+</pre>Add Documents to the given table in the provided shard.  If the table or
+shard is not found on this shard server a BlurException will be thrown.
+@param options the MutateOptions provide the table name, shard index, etc.
+@param documents the documents to be added.  NOTE: All documents
+provided to be indexed in a single segment.
+<br/></div><div class="definition"><h4 id="Fn_Blur_deleteDocumentsByQueries">Function: Blur.deleteDocumentsByQueries</h4>
+<pre><code>list&lt;<code><a href="BlurRPC.html#Struct_Generation">BlurRPC.Generation</a></code>&gt;</code> deleteDocumentsByQueries(<code><a href="BlurRPC.html#Struct_MutateOptions">BlurRPC.MutateOptions</a></code> options,
+                                                  <code>list&lt;<code><a href="BlurRPC.html#Struct_Query">BlurRPC.Query</a></code>&gt;</code> queries)
+    throws <code><a href="BlurRPC.html#Struct_BlurException">BlurRPC.BlurException</a></code>
+</pre>Delete Documents to the given table in the provided shard.  If the table
+or shard is not found on this shard server a BlurException will be thrown.
+@param options the MutateOptions provide the table name, shard index, etc.
+@param queries the Queries that will executed and mark there resulting documents as deleted.
+<br/></div><div class="definition"><h4 id="Fn_Blur_deleteDocuments">Function: Blur.deleteDocuments</h4>
+<pre><code>list&lt;<code><a href="BlurRPC.html#Struct_Generation">BlurRPC.Generation</a></code>&gt;</code> deleteDocuments(<code><a href="BlurRPC.html#Struct_MutateOptions">BlurRPC.MutateOptions</a></code> options,
+                                         <code>list&lt;<code><a href="BlurRPC.html#Struct_Term">BlurRPC.Term</a></code>&gt;</code> terms)
+    throws <code><a href="BlurRPC.html#Struct_BlurException">BlurRPC.BlurException</a></code>
+</pre>Delete Documents to the given table in the provided shard.  If the table
+or shard is not found on this shard server a BlurException will be thrown.
+@param options the MutateOptions provide the table name, shard index, etc.
+@param queries the Terms that will be found and mark deleted all the documents to be deleted.
+<br/></div><div class="definition"><h4 id="Fn_Blur_updateDocuments">Function: Blur.updateDocuments</h4>
+<pre><code>list&lt;<code><a href="BlurRPC.html#Struct_Generation">BlurRPC.Generation</a></code>&gt;</code> updateDocuments(<code><a href="BlurRPC.html#Struct_MutateOptions">BlurRPC.MutateOptions</a></code> options,
+                                         <code>list&lt;<code><a href="BlurRPC.html#Struct_UpdatePackage">BlurRPC.UpdatePackage</a></code>&gt;</code> updatePackages)
+    throws <code><a href="BlurRPC.html#Struct_BlurException">BlurRPC.BlurException</a></code>
+</pre>Update Documents to the given table in the provided shard.  If the table
+or shard is not found on this shard server a BlurException will be thrown.
+@param options the MutateOptions provide the table name, shard index, etc.
+@param updatePackages the documents to be updated.  NOTE: All documents
+within a update document object are indexed in a single segment.
+<br/></div><div class="definition"><h4 id="Fn_Blur_blockUntilGenerationIsVisible">Function: Blur.blockUntilGenerationIsVisible</h4>
+<pre><code>void</code> blockUntilGenerationIsVisible(<code>list&lt;<code><a href="BlurRPC.html#Struct_Generation">BlurRPC.Generation</a></code>&gt;</code> generations,
+                                   <code>bool</code> forceRefresh)
+    throws <code><a href="BlurRPC.html#Struct_BlurException">BlurRPC.BlurException</a></code>
+</pre>This method blocks until all the given generations are visible for reading.
+@param generations the list of Generation objects.
+@param forceRefresh forces a refresh of the indexes if true, if false will
+block until natural refresh occurs.
+<br/></div><div class="definition"><h4 id="Fn_Blur_serverList">Function: Blur.serverList</h4>
+<pre><code>list&lt;<code>string</code>&gt;</code> serverList()
+    throws <code><a href="BlurRPC.html#Struct_BlurException">BlurRPC.BlurException</a></code>
+</pre>Returns a list of all current running servers.
+@return list of servers, e.g. node1:40020.
+<br/></div><div class="definition"><h4 id="Fn_Blur_serverLayout">Function: Blur.serverLayout</h4>
+<pre><code>list&lt;<code>i32</code>&gt;</code> serverLayout(<code>string</code> table,
+                       <code>string</code> server)
+    throws <code><a href="BlurRPC.html#Struct_BlurException">BlurRPC.BlurException</a></code>
+</pre>Gets a list shard ids for the given server and table.
+@param table the table name.
+@param server the server name, e.g. node1:40020
+@return list of shard ids.
+<br/></div><div class="definition"><h4 id="Fn_Blur_shardLayout">Function: Blur.shardLayout</h4>
+<pre><code>map&lt;<code>string</code>, <code><a href="BlurRPC.html#Struct_ShardLayout">BlurRPC.ShardLayout</a></code>&gt;</code> shardLayout(<code>string</code> table)
+    throws <code><a href="BlurRPC.html#Struct_BlurException">BlurRPC.BlurException</a></code>
+</pre>Gets the shard layout for each server in the cluster for the given table.
+@param table the table name.
+@return map of servers to shard layout object.
+<br/></div><div class="definition"><h4 id="Fn_Blur_tableList">Function: Blur.tableList</h4>
+<pre><code>list&lt;<code>string</code>&gt;</code> tableList()
+    throws <code><a href="BlurRPC.html#Struct_BlurException">BlurRPC.BlurException</a></code>
+</pre>Gets a list of the table names.
+@return list of table names.
+<br/></div><div class="definition"><h4 id="Fn_Blur_isInSafeMode">Function: Blur.isInSafeMode</h4>
+<pre><code>bool</code> isInSafeMode()
+    throws <code><a href="BlurRPC.html#Struct_BlurException">BlurRPC.BlurException</a></code>
+</pre>Is cluster in safe mode.
+@return safe mode boolean.
+<br/></div><div class="definition"><h4 id="Fn_Blur_createTable">Function: Blur.createTable</h4>
+<pre><code>void</code> createTable(<code><a href="BlurRPC.html#Struct_TableDescriptor">BlurRPC.TableDescriptor</a></code> tableDescriptor)
+    throws <code><a href="BlurRPC.html#Struct_BlurException">BlurRPC.BlurException</a></code>
+</pre>Create a table with the given table descriptor.
+@param tableDescriptor the TableDescriptor.
+<br/></div><div class="definition"><h4 id="Fn_Blur_enableTable">Function: Blur.enableTable</h4>
+<pre><code>void</code> enableTable(<code>string</code> table)
+    throws <code><a href="BlurRPC.html#Struct_BlurException">BlurRPC.BlurException</a></code>
+</pre>Enables a table with the given table name.
+@param table the table name.
+<br/></div><div class="definition"><h4 id="Fn_Blur_disableTable">Function: Blur.disableTable</h4>
+<pre><code>void</code> disableTable(<code>string</code> table)
+    throws <code><a href="BlurRPC.html#Struct_BlurException">BlurRPC.BlurException</a></code>
+</pre>Disables a table with the given table name.
+@param table the table name.
+<br/></div><div class="definition"><h4 id="Fn_Blur_removeTable">Function: Blur.removeTable</h4>
+<pre><code>void</code> removeTable(<code>string</code> table,
+                 <code>bool</code> deleteIndexFiles)
+    throws <code><a href="BlurRPC.html#Struct_BlurException">BlurRPC.BlurException</a></code>
+</pre>Removes a table with the given table name.
+@param table the table name.
+@param deleteIndexFiles boolean, whether or not to remove the indexes from the HDFS system.
+<br/></div><div class="definition"><h4 id="Fn_Blur_describe">Function: Blur.describe</h4>
+<pre><code><a href="BlurRPC.html#Struct_TableDescriptor">BlurRPC.TableDescriptor</a></code> describe(<code>string</code> table)
+    throws <code><a href="BlurRPC.html#Struct_BlurException">BlurRPC.BlurException</a></code>
+</pre>Returns a table descriptor for the given table.
+@param table the table name.
+<br/></div><div class="definition"><h4 id="Fn_Blur_cancelQuery">Function: Blur.cancelQuery</h4>
+<pre><code>void</code> cancelQuery(<code><a href="BlurRPC.html#Struct_Session">BlurRPC.Session</a></code> session,
+                 <code>string</code> server,
+                 <code>string</code> id)
+    throws <code><a href="BlurRPC.html#Struct_BlurException">BlurRPC.BlurException</a></code>
+</pre>Cancels a query that is executing within the given session.
+@param session the Session.
+@param server the server name to receive the call, null for all servers.
+@param id the id of the query, (QueryArgs.id).
+<br/></div><div class="definition"><h4 id="Fn_Blur_queryStatusIdList">Function: Blur.queryStatusIdList</h4>
+<pre><code>map&lt;<code>string</code>, <code>list&lt;<code>string</code>&gt;</code>&gt;</code> queryStatusIdList(<code><a href="BlurRPC.html#Struct_Session">BlurRPC.Session</a></code> session,
+                                          <code>string</code> server)
+    throws <code><a href="BlurRPC.html#Struct_BlurException">BlurRPC.BlurException</a></code>
+</pre>Returns a list of the query ids of queries that have recently been executed within the given session.
+@param session the Session.
+@param server the server name to receive the call, null for all servers.
+@return the ids of the query objects, (QueryArgs.id).
+<br/></div><div class="definition"><h4 id="Fn_Blur_queryStatus">Function: Blur.queryStatus</h4>
+<pre><code>map&lt;<code>string</code>, <code><a href="BlurRPC.html#Struct_QueryStatus">BlurRPC.QueryStatus</a></code>&gt;</code> queryStatus(<code><a href="BlurRPC.html#Struct_Session">BlurRPC.Session</a></code> session,
+                                           <code>string</code> server,
+                                           <code>string</code> id)
+    throws <code><a href="BlurRPC.html#Struct_BlurException">BlurRPC.BlurException</a></code>
+</pre>Returns the query status for the given session and query id, (QueryArgs.id).
+@param session the Session.
+@param server the server name to receive the call, null for all servers.
+@param id the id of the query, (QueryArgs.id).
+@return a map of server to the query status for the given session and id.
+<br/></div><div class="definition"><h4 id="Fn_Blur_schema">Function: Blur.schema</h4>
+<pre><code><a href="BlurRPC.html#Struct_TableSchema">BlurRPC.TableSchema</a></code> schema(<code><a href="BlurRPC.html#Struct_Session">BlurRPC.Session</a></code> session)
+    throws <code><a href="BlurRPC.html#Struct_BlurException">BlurRPC.BlurException</a></code>
+</pre>Returns the the schema for the given session.
+@param session the Session.
+@return the table schema.
+<br/></div><div class="definition"><h4 id="Fn_Blur_tableStats">Function: Blur.tableStats</h4>
+<pre><code><a href="BlurRPC.html#Struct_TableStats">BlurRPC.TableStats</a></code> tableStats(<code>string</code> table)
+    throws <code><a href="BlurRPC.html#Struct_BlurException">BlurRPC.BlurException</a></code>
+</pre></div></div></body></html>

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/11f5141c/src/distribution/src/main/scripts/interface/gen-html/BlurSimple.html
----------------------------------------------------------------------
diff --git a/src/distribution/src/main/scripts/interface/gen-html/BlurSimple.html b/src/distribution/src/main/scripts/interface/gen-html/BlurSimple.html
new file mode 100644
index 0000000..5989107
--- /dev/null
+++ b/src/distribution/src/main/scripts/interface/gen-html/BlurSimple.html
@@ -0,0 +1,80 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
+<link href="style.css" rel="stylesheet" type="text/css"/>
+<title>Thrift module: BlurSimple</title></head><body>
+<div class="container-fluid">
+<h1>Thrift module: BlurSimple</h1>
+<table class="table-bordered table-striped table-condensed"><thead><th>Module</th><th>Services</th><th>Data types</th><th>Constants</th></thead>
+<tr>
+<td>BlurSimple</td><td><a href="BlurSimple.html#Svc_DocumentService">DocumentService</a><br/>
+<ul>
+<li><a href="BlurSimple.html#Fn_DocumentService_deleteRecord">deleteRecord</a></li>
+<li><a href="BlurSimple.html#Fn_DocumentService_searchRecords">searchRecords</a></li>
+<li><a href="BlurSimple.html#Fn_DocumentService_updateRecord">updateRecord</a></li>
+</ul>
+<a href="BlurSimple.html#Svc_DocumentGroupService">DocumentGroupService</a><br/>
+<ul>
+<li><a href="BlurSimple.html#Fn_DocumentGroupService_deleteGroup">deleteGroup</a></li>
+<li><a href="BlurSimple.html#Fn_DocumentGroupService_searchGroups">searchGroups</a></li>
+<li><a href="BlurSimple.html#Fn_DocumentGroupService_updateGroup">updateGroup</a></li>
+</ul>
+</td>
+<td><a href="BlurSimple.html#Struct_DocumentGroup">DocumentGroup</a><br/>
+<a href="BlurSimple.html#Struct_DocumentGroupResult">DocumentGroupResult</a><br/>
+<a href="BlurSimple.html#Struct_DocumentRecord">DocumentRecord</a><br/>
+<a href="BlurSimple.html#Struct_DocumentResult">DocumentResult</a><br/>
+</td>
+<td></code></td>
+</tr></table>
+<hr/><h2 id="Structs">Data structures</h2>
+<div class="definition"><h3 id="Struct_DocumentRecord">Struct: DocumentRecord</h3>
+<table class="table-bordered table-striped table-condensed"><thead><th>Key</th><th>Field</th><th>Type</th><th>Description</th><th>Requiredness</th><th>Default value</th></thead>
+<tr><td>1</td><td>id</td><td><code>string</code></td><td></td><td>default</td><td></td></tr>
+<tr><td>2</td><td>document</td><td><code><a href="BlurRPC.html#Struct_Document">BlurRPC.Document</a></code></td><td></td><td>default</td><td></td></tr>
+</table><br/></div><div class="definition"><h3 id="Struct_DocumentResult">Struct: DocumentResult</h3>
+<table class="table-bordered table-striped table-condensed"><thead><th>Key</th><th>Field</th><th>Type</th><th>Description</th><th>Requiredness</th><th>Default value</th></thead>
+<tr><td>1</td><td>totalHits</td><td><code>i64</code></td><td></td><td>default</td><td></td></tr>
+<tr><td>2</td><td>documents</td><td><code>list&lt;<code><a href="BlurSimple.html#Struct_DocumentRecord">DocumentRecord</a></code>&gt;</code></td><td></td><td>default</td><td></td></tr>
+<tr><td>3</td><td>scores</td><td><code>list&lt;<code>double</code>&gt;</code></td><td></td><td>default</td><td></td></tr>
+</table><br/></div><div class="definition"><h3 id="Struct_DocumentGroup">Struct: DocumentGroup</h3>
+<table class="table-bordered table-striped table-condensed"><thead><th>Key</th><th>Field</th><th>Type</th><th>Description</th><th>Requiredness</th><th>Default value</th></thead>
+<tr><td>1</td><td>id</td><td><code>string</code></td><td></td><td>default</td><td></td></tr>
+<tr><td>2</td><td>primeDoc</td><td><code><a href="BlurSimple.html#Struct_DocumentRecord">DocumentRecord</a></code></td><td></td><td>default</td><td></td></tr>
+<tr><td>3</td><td>documents</td><td><code>list&lt;<code><a href="BlurSimple.html#Struct_DocumentRecord">DocumentRecord</a></code>&gt;</code></td><td></td><td>default</td><td></td></tr>
+</table><br/></div><div class="definition"><h3 id="Struct_DocumentGroupResult">Struct: DocumentGroupResult</h3>
+<table class="table-bordered table-striped table-condensed"><thead><th>Key</th><th>Field</th><th>Type</th><th>Description</th><th>Requiredness</th><th>Default value</th></thead>
+<tr><td>1</td><td>totalHits</td><td><code>i64</code></td><td></td><td>default</td><td></td></tr>
+<tr><td>2</td><td>documents</td><td><code>list&lt;<code><a href="BlurSimple.html#Struct_DocumentGroup">DocumentGroup</a></code>&gt;</code></td><td></td><td>default</td><td></td></tr>
+<tr><td>3</td><td>scores</td><td><code>list&lt;<code>double</code>&gt;</code></td><td></td><td>default</td><td></td></tr>
+</table><br/></div><hr/><h2 id="Services">Services</h2>
+<h3 id="Svc_DocumentService">Service: DocumentService</h3>
+<div class="definition"><h4 id="Fn_DocumentService_searchRecords">Function: DocumentService.searchRecords</h4>
+<pre><code><a href="BlurSimple.html#Struct_DocumentResult">DocumentResult</a></code> searchRecords(<code>string</code> table,
+                             <code>string</code> query)
+    throws <code><a href="BlurRPC.html#Struct_BlurException">BlurRPC.BlurException</a></code>
+</pre></div><div class="definition"><h4 id="Fn_DocumentService_updateRecord">Function: DocumentService.updateRecord</h4>
+<pre><code>void</code> updateRecord(<code>string</code> table,
+                  <code><a href="BlurSimple.html#Struct_DocumentRecord">DocumentRecord</a></code> record)
+    throws <code><a href="BlurRPC.html#Struct_BlurException">BlurRPC.BlurException</a></code>
+</pre></div><div class="definition"><h4 id="Fn_DocumentService_deleteRecord">Function: DocumentService.deleteRecord</h4>
+<pre><code>void</code> deleteRecord(<code>string</code> table,
+                  <code>string</code> id)
+    throws <code><a href="BlurRPC.html#Struct_BlurException">BlurRPC.BlurException</a></code>
+</pre></div><h3 id="Svc_DocumentGroupService">Service: DocumentGroupService</h3>
+<div class="extends"><em>extends</em> <code><a href="BlurSimple.html#Svc_DocumentService">DocumentService</a></code></div>
+<div class="definition"><h4 id="Fn_DocumentGroupService_searchGroups">Function: DocumentGroupService.searchGroups</h4>
+<pre><code><a href="BlurSimple.html#Struct_DocumentGroupResult">DocumentGroupResult</a></code> searchGroups(<code>string</code> table,
+                                 <code>string</code> query)
+    throws <code><a href="BlurRPC.html#Struct_BlurException">BlurRPC.BlurException</a></code>
+</pre></div><div class="definition"><h4 id="Fn_DocumentGroupService_updateGroup">Function: DocumentGroupService.updateGroup</h4>
+<pre><code>void</code> updateGroup(<code>string</code> table,
+                 <code><a href="BlurSimple.html#Struct_DocumentGroup">DocumentGroup</a></code> group)
+    throws <code><a href="BlurRPC.html#Struct_BlurException">BlurRPC.BlurException</a></code>
+</pre></div><div class="definition"><h4 id="Fn_DocumentGroupService_deleteGroup">Function: DocumentGroupService.deleteGroup</h4>
+<pre><code>void</code> deleteGroup(<code>string</code> table,
+                 <code>string</code> id)
+    throws <code><a href="BlurRPC.html#Struct_BlurException">BlurRPC.BlurException</a></code>
+</pre></div></div></body></html>

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/11f5141c/src/distribution/src/main/scripts/interface/gen-html/index.html
----------------------------------------------------------------------
diff --git a/src/distribution/src/main/scripts/interface/gen-html/index.html b/src/distribution/src/main/scripts/interface/gen-html/index.html
new file mode 100644
index 0000000..718b4eb
--- /dev/null
+++ b/src/distribution/src/main/scripts/interface/gen-html/index.html
@@ -0,0 +1,91 @@
+<html><head>
+<link href="style.css" rel="stylesheet" type="text/css"/>
+<title>All Thrift declarations</title></head><body>
+<div class="container-fluid">
+<h1>All Thrift declarations</h1>
+<table class="table-bordered table-striped table-condensed"><thead><th>Module</th><th>Services</th><th>Data types</th><th>Constants</th></thead>
+<tr>
+<td>BlurRPCService</td><td><a href="BlurRPCService.html#Svc_Blur">Blur</a><br/>
+<ul>
+<li><a href="BlurRPCService.html#Fn_Blur_addDocuments">addDocuments</a></li>
+<li><a href="BlurRPCService.html#Fn_Blur_blockUntilGenerationIsVisible">blockUntilGenerationIsVisible</a></li>
+<li><a href="BlurRPCService.html#Fn_Blur_cancelQuery">cancelQuery</a></li>
+<li><a href="BlurRPCService.html#Fn_Blur_closeReadSession">closeReadSession</a></li>
+<li><a href="BlurRPCService.html#Fn_Blur_createTable">createTable</a></li>
+<li><a href="BlurRPCService.html#Fn_Blur_deleteDocuments">deleteDocuments</a></li>
+<li><a href="BlurRPCService.html#Fn_Blur_deleteDocumentsByQueries">deleteDocumentsByQueries</a></li>
+<li><a href="BlurRPCService.html#Fn_Blur_describe">describe</a></li>
+<li><a href="BlurRPCService.html#Fn_Blur_disableTable">disableTable</a></li>
+<li><a href="BlurRPCService.html#Fn_Blur_doc">doc</a></li>
+<li><a href="BlurRPCService.html#Fn_Blur_enableTable">enableTable</a></li>
+<li><a href="BlurRPCService.html#Fn_Blur_isInSafeMode">isInSafeMode</a></li>
+<li><a href="BlurRPCService.html#Fn_Blur_openReadSession">openReadSession</a></li>
+<li><a href="BlurRPCService.html#Fn_Blur_queryStatus">queryStatus</a></li>
+<li><a href="BlurRPCService.html#Fn_Blur_queryStatusIdList">queryStatusIdList</a></li>
+<li><a href="BlurRPCService.html#Fn_Blur_removeTable">removeTable</a></li>
+<li><a href="BlurRPCService.html#Fn_Blur_schema">schema</a></li>
+<li><a href="BlurRPCService.html#Fn_Blur_search">search</a></li>
+<li><a href="BlurRPCService.html#Fn_Blur_serverLayout">serverLayout</a></li>
+<li><a href="BlurRPCService.html#Fn_Blur_serverList">serverList</a></li>
+<li><a href="BlurRPCService.html#Fn_Blur_shardLayout">shardLayout</a></li>
+<li><a href="BlurRPCService.html#Fn_Blur_tableList">tableList</a></li>
+<li><a href="BlurRPCService.html#Fn_Blur_tableStats">tableStats</a></li>
+<li><a href="BlurRPCService.html#Fn_Blur_updateDocuments">updateDocuments</a></li>
+</ul>
+</td>
+<td></td>
+<td></code></td>
+</tr><tr>
+<td>BlurRPC</td><td></td>
+<td><a href="BlurRPC.html#Struct_Analyzer">Analyzer</a><br/>
+<a href="BlurRPC.html#Struct_AnalyzerSubType">AnalyzerSubType</a><br/>
+<a href="BlurRPC.html#Struct_AnalyzerType">AnalyzerType</a><br/>
+<a href="BlurRPC.html#Struct_BlurException">BlurException</a><br/>
+<a href="BlurRPC.html#Struct_ClassDefinition">ClassDefinition</a><br/>
+<a href="BlurRPC.html#Struct_Document">Document</a><br/>
+<a href="BlurRPC.html#Struct_Field">Field</a><br/>
+<a href="BlurRPC.html#Struct_FieldSchema">FieldSchema</a><br/>
+<a href="BlurRPC.html#Struct_Generation">Generation</a><br/>
+<a href="BlurRPC.html#Struct_MutateOptions">MutateOptions</a><br/>
+<a href="BlurRPC.html#Struct_Query">Query</a><br/>
+<a href="BlurRPC.html#Struct_QueryArgs">QueryArgs</a><br/>
+<a href="BlurRPC.html#Enum_QueryState">QueryState</a><br/>
+<a href="BlurRPC.html#Struct_QueryStatus">QueryStatus</a><br/>
+<a href="BlurRPC.html#Enum_QueryType">QueryType</a><br/>
+<a href="BlurRPC.html#Struct_ScoreDoc">ScoreDoc</a><br/>
+<a href="BlurRPC.html#Struct_Session">Session</a><br/>
+<a href="BlurRPC.html#Struct_ShardLayout">ShardLayout</a><br/>
+<a href="BlurRPC.html#Struct_Sort">Sort</a><br/>
+<a href="BlurRPC.html#Struct_SortField">SortField</a><br/>
+<a href="BlurRPC.html#Enum_SortType">SortType</a><br/>
+<a href="BlurRPC.html#Enum_TYPE">TYPE</a><br/>
+<a href="BlurRPC.html#Struct_TableDescriptor">TableDescriptor</a><br/>
+<a href="BlurRPC.html#Struct_TableSchema">TableSchema</a><br/>
+<a href="BlurRPC.html#Struct_TableStats">TableStats</a><br/>
+<a href="BlurRPC.html#Struct_Term">Term</a><br/>
+<a href="BlurRPC.html#Struct_TopFieldDocs">TopFieldDocs</a><br/>
+<a href="BlurRPC.html#Struct_UpdatePackage">UpdatePackage</a><br/>
+</td>
+<td></code></td>
+</tr><tr>
+<td>BlurSimple</td><td><a href="BlurSimple.html#Svc_DocumentService">DocumentService</a><br/>
+<ul>
+<li><a href="BlurSimple.html#Fn_DocumentService_deleteRecord">deleteRecord</a></li>
+<li><a href="BlurSimple.html#Fn_DocumentService_searchRecords">searchRecords</a></li>
+<li><a href="BlurSimple.html#Fn_DocumentService_updateRecord">updateRecord</a></li>
+</ul>
+<a href="BlurSimple.html#Svc_DocumentGroupService">DocumentGroupService</a><br/>
+<ul>
+<li><a href="BlurSimple.html#Fn_DocumentGroupService_deleteGroup">deleteGroup</a></li>
+<li><a href="BlurSimple.html#Fn_DocumentGroupService_searchGroups">searchGroups</a></li>
+<li><a href="BlurSimple.html#Fn_DocumentGroupService_updateGroup">updateGroup</a></li>
+</ul>
+</td>
+<td><a href="BlurSimple.html#Struct_DocumentGroup">DocumentGroup</a><br/>
+<a href="BlurSimple.html#Struct_DocumentGroupResult">DocumentGroupResult</a><br/>
+<a href="BlurSimple.html#Struct_DocumentRecord">DocumentRecord</a><br/>
+<a href="BlurSimple.html#Struct_DocumentResult">DocumentResult</a><br/>
+</td>
+<td></code></td>
+</tr></table>
+</div></body></html>

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/11f5141c/src/distribution/src/main/scripts/interface/gen-html/style.css
----------------------------------------------------------------------
diff --git a/src/distribution/src/main/scripts/interface/gen-html/style.css b/src/distribution/src/main/scripts/interface/gen-html/style.css
new file mode 100644
index 0000000..34fd9d7
--- /dev/null
+++ b/src/distribution/src/main/scripts/interface/gen-html/style.css
@@ -0,0 +1,184 @@
+/*!
+ * Bootstrap v2.0.3
+ *
+ * Copyright 2012 Twitter, Inc
+ * Licensed under the Apache License v2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Designed and built with all the love in the world @twitter by @mdo and @fat.
+ */
+.clearfix{*zoom:1;}.clearfix:before,.clearfix:after{display:table;content:"";}
+.clearfix:after{clear:both;}
+.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0;}
+.input-block-level{display:block;width:100%;min-height:28px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;}
+article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block;}
+audio,canvas,video{display:inline-block;*display:inline;*zoom:1;}
+audio:not([controls]){display:none;}
+html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;}
+a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;}
+a:hover,a:active{outline:0;}
+sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline;}
+sup{top:-0.5em;}
+sub{bottom:-0.25em;}
+img{max-width:100%;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic;}
+button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle;}
+button,input{*overflow:visible;line-height:normal;}
+button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0;}
+button,input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button;}
+input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield;}
+input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none;}
+textarea{overflow:auto;vertical-align:top;}
+body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;line-height:18px;color:#333333;background-color:#ffffff;}
+a{color:#0088cc;text-decoration:none;}
+a:hover{color:#005580;text-decoration:underline;}
+.row{margin-left:-20px;*zoom:1;}.row:before,.row:after{display:table;content:"";}
+.row:after{clear:both;}
+[class*="span"]{float:left;margin-left:20px;}
+.container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px;}
+.span12{width:940px;}
+.span11{width:860px;}
+.span10{width:780px;}
+.span9{width:700px;}
+.span8{width:620px;}
+.span7{width:540px;}
+.span6{width:460px;}
+.span5{width:380px;}
+.span4{width:300px;}
+.span3{width:220px;}
+.span2{width:140px;}
+.span1{width:60px;}
+.offset12{margin-left:980px;}
+.offset11{margin-left:900px;}
+.offset10{margin-left:820px;}
+.offset9{margin-left:740px;}
+.offset8{margin-left:660px;}
+.offset7{margin-left:580px;}
+.offset6{margin-left:500px;}
+.offset5{margin-left:420px;}
+.offset4{margin-left:340px;}
+.offset3{margin-left:260px;}
+.offset2{margin-left:180px;}
+.offset1{margin-left:100px;}
+.row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";}
+.row-fluid:after{clear:both;}
+.row-fluid [class*="span"]{display:block;width:100%;min-height:28px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;float:left;margin-left:2.127659574%;*margin-left:2.0744680846382977%;}
+.row-fluid [class*="span"]:first-child{margin-left:0;}
+.row-fluid .span12{width:99.99999998999999%;*width:99.94680850063828%;}
+.row-fluid .span11{width:91.489361693%;*width:91.4361702036383%;}
+.row-fluid .span10{width:82.97872339599999%;*width:82.92553190663828%;}
+.row-fluid .span9{width:74.468085099%;*width:74.4148936096383%;}
+.row-fluid .span8{width:65.95744680199999%;*width:65.90425531263828%;}
+.row-fluid .span7{width:57.446808505%;*width:57.3936170156383%;}
+.row-fluid .span6{width:48.93617020799999%;*width:48.88297871863829%;}
+.row-fluid .span5{width:40.425531911%;*width:40.3723404216383%;}
+.row-fluid .span4{width:31.914893614%;*width:31.8617021246383%;}
+.row-fluid .span3{width:23.404255317%;*width:23.3510638276383%;}
+.row-fluid .span2{width:14.89361702%;*width:14.8404255306383%;}
+.row-fluid .span1{width:6.382978723%;*width:6.329787233638298%;}
+.container{margin-right:auto;margin-left:auto;*zoom:1;}.container:before,.container:after{display:table;content:"";}
+.container:after{clear:both;}
+.container-fluid{padding-right:20px;padding-left:20px;*zoom:1;}.container-fluid:before,.container-fluid:after{display:table;content:"";}
+.container-fluid:after{clear:both;}
+p{margin:0 0 9px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;line-height:18px;}p small{font-size:11px;color:#999999;}
+.lead{margin-bottom:18px;font-size:20px;font-weight:200;line-height:27px;}
+h1,h2,h3,h4,h5,h6{margin:0;font-family:inherit;font-weight:bold;color:inherit;text-rendering:optimizelegibility;}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;color:#999999;}
+h1{font-size:30px;line-height:36px;}h1 small{font-size:18px;}
+h2{font-size:24px;line-height:36px;}h2 small{font-size:18px;}
+h3{font-size:18px;line-height:27px;}h3 small{font-size:14px;}
+h4,h5,h6{line-height:18px;}
+h4{font-size:14px;}h4 small{font-size:12px;}
+h5{font-size:12px;}
+h6{font-size:11px;color:#999999;text-transform:uppercase;}
+.page-header{padding-bottom:17px;margin:18px 0;border-bottom:1px solid #eeeeee;}
+.page-header h1{line-height:1;}
+ul,ol{padding:0;margin:0 0 9px 25px;}
+ul ul,ul ol,ol ol,ol ul{margin-bottom:0;}
+ul{list-style:disc;}
+ol{list-style:decimal;}
+li{line-height:18px;}
+ul.unstyled,ol.unstyled{margin-left:0;list-style:none;}
+dl{margin-bottom:18px;}
+dt,dd{line-height:18px;}
+dt{font-weight:bold;line-height:17px;}
+dd{margin-left:9px;}
+.dl-horizontal dt{float:left;width:120px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
+.dl-horizontal dd{margin-left:130px;}
+hr{margin:18px 0;border:0;border-top:1px solid #eeeeee;border-bottom:1px solid #ffffff;}
+strong{font-weight:bold;}
+em{font-style:italic;}
+.muted{color:#999999;}
+abbr[title]{cursor:help;border-bottom:1px dotted #ddd;}
+abbr.initialism{font-size:90%;text-transform:uppercase;}
+blockquote{padding:0 0 0 15px;margin:0 0 18px;border-left:5px solid #eeeeee;}blockquote p{margin-bottom:0;font-size:16px;font-weight:300;line-height:22.5px;}
+blockquote small{display:block;line-height:18px;color:#999999;}blockquote small:before{content:'\2014 \00A0';}
+blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #eeeeee;border-left:0;}blockquote.pull-right p,blockquote.pull-right small{text-align:right;}
+q:before,q:after,blockquote:before,blockquote:after{content:"";}
+address{display:block;margin-bottom:18px;font-style:normal;line-height:18px;}
+small{font-size:100%;}
+cite{font-style:normal;}
+code,pre{padding:0 3px 2px;font-family:Menlo,Monaco,Consolas,"Courier New",monospace;font-size:12px;color:#333333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
+code{padding:2px 4px;color:#d14;background-color:#f7f7f9;border:1px solid #e1e1e8;}
+pre{display:block;padding:8.5px;margin:0 0 9px;font-size:12.025px;line-height:18px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}pre.prettyprint{margin-bottom:18px;}
+pre code{padding:0;color:inherit;background-color:transparent;border:0;}
+.pre-scrollable{max-height:340px;overflow-y:scroll;}
+.label,.badge{font-size:10.998px;font-weight:bold;line-height:14px;color:#ffffff;vertical-align:baseline;white-space:nowrap;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#999999;}
+.label{padding:1px 4px 2px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
+.badge{padding:1px 9px 2px;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px;}
+a.label:hover,a.badge:hover{color:#ffffff;text-decoration:none;cursor:pointer;}
+.label-important,.badge-important{background-color:#b94a48;}
+.label-important[href],.badge-important[href]{background-color:#953b39;}
+.label-warning,.badge-warning{background-color:#f89406;}
+.label-warning[href],.badge-warning[href]{background-color:#c67605;}
+.label-success,.badge-success{background-color:#468847;}
+.label-success[href],.badge-success[href]{background-color:#356635;}
+.label-info,.badge-info{background-color:#3a87ad;}
+.label-info[href],.badge-info[href]{background-color:#2d6987;}
+.label-inverse,.badge-inverse{background-color:#333333;}
+.label-inverse[href],.badge-inverse[href]{background-color:#1a1a1a;}
+table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0;}
+.table{width:100%;margin-bottom:18px;}.table th,.table td{padding:8px;line-height:18px;text-align:left;vertical-align:top;border-top:1px solid #dddddd;}
+.table th{font-weight:bold;}
+.table thead th{vertical-align:bottom;}
+.table caption+thead tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td{border-top:0;}
+.table tbody+tbody{border-top:2px solid #dddddd;}
+.table-condensed th,.table-condensed td{padding:4px 5px;}
+.table-bordered{border:1px solid #dddddd;border-collapse:separate;*border-collapse:collapsed;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}.table-bordered th,.table-bordered td{border-left:1px solid #dddddd;}
+.table-bordered caption+thead tr:first-child th,.table-bordered caption+tbody tr:first-child th,.table-bordered caption+tbody tr:first-child td,.table-bordered colgroup+thead tr:first-child th,.table-bordered colgroup+tbody tr:first-child th,.table-bordered colgroup+tbody tr:first-child td,.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0;}
+.table-bordered thead:first-child tr:first-child th:first-child,.table-bordered tbody:first-child tr:first-child td:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px;}
+.table-bordered thead:first-child tr:first-child th:last-child,.table-bordered tbody:first-child tr:first-child td:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px;}
+.table-bordered thead:last-child tr:last-child th:first-child,.table-bordered tbody:last-child tr:last-child td:first-child{-webkit-border-radius:0 0 0 4px;-moz-border-radius:0 0 0 4px;border-radius:0 0 0 4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;}
+.table-bordered thead:last-child tr:last-child th:last-child,.table-bordered tbody:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;}
+.table-striped tbody tr:nth-child(odd) td,.table-striped tbody tr:nth-child(odd) th{background-color:#f9f9f9;}
+.table tbody tr:hover td,.table tbody tr:hover th{background-color:#f5f5f5;}
+table .span1{float:none;width:44px;margin-left:0;}
+table .span2{float:none;width:124px;margin-left:0;}
+table .span3{float:none;width:204px;margin-left:0;}
+table .span4{float:none;width:284px;margin-left:0;}
+table .span5{float:none;width:364px;margin-left:0;}
+table .span6{float:none;width:444px;margin-left:0;}
+table .span7{float:none;width:524px;margin-left:0;}
+table .span8{float:none;width:604px;margin-left:0;}
+table .span9{float:none;width:684px;margin-left:0;}
+table .span10{float:none;width:764px;margin-left:0;}
+table .span11{float:none;width:844px;margin-left:0;}
+table .span12{float:none;width:924px;margin-left:0;}
+table .span13{float:none;width:1004px;margin-left:0;}
+table .span14{float:none;width:1084px;margin-left:0;}
+table .span15{float:none;width:1164px;margin-left:0;}
+table .span16{float:none;width:1244px;margin-left:0;}
+table .span17{float:none;width:1324px;margin-left:0;}
+table .span18{float:none;width:1404px;margin-left:0;}
+table .span19{float:none;width:1484px;margin-left:0;}
+table .span20{float:none;width:1564px;margin-left:0;}
+table .span21{float:none;width:1644px;margin-left:0;}
+table .span22{float:none;width:1724px;margin-left:0;}
+table .span23{float:none;width:1804px;margin-left:0;}
+table .span24{float:none;width:1884px;margin-left:0;}
+/* Auto-generated CSS for generated Thrift docs */
+h3, h4 { margin-bottom: 6px; }
+div.definition { border: 1px solid #CCC; margin-bottom: 10px; padding: 10px; }
+div.extends { margin: -0.5em 0 1em 5em }
+td { vertical-align: top; }
+table { empty-cells: show; }
+code { line-height: 20px; }
+.table-bordered th, .table-bordered td { border-bottom: 1px solid #DDDDDD; }

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/11f5141c/src/distribution/src/main/scripts/interface/gen-java/org/apache/blur/thrift/generated/Analyzer.java
----------------------------------------------------------------------
diff --git a/src/distribution/src/main/scripts/interface/gen-java/org/apache/blur/thrift/generated/Analyzer.java b/src/distribution/src/main/scripts/interface/gen-java/org/apache/blur/thrift/generated/Analyzer.java
new file mode 100644
index 0000000..c5d4dea
--- /dev/null
+++ b/src/distribution/src/main/scripts/interface/gen-java/org/apache/blur/thrift/generated/Analyzer.java
@@ -0,0 +1,477 @@
+/**
+ * Autogenerated by Thrift Compiler (0.9.0)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.blur.thrift.generated;
+
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * The analyzer allows for defining of alternate analyzers for the given fields.  The TYPE
+ * enum defines the default field types and the default indexing behavior for each.  The
+ * Analyzer struct allows for defining alternate behavior.  Such as a field with a TEXT
+ * type using a Lowercase Analyzer instead of the default StandardAnalyzer.
+ */
+public class Analyzer implements org.apache.thrift.TBase<Analyzer, Analyzer._Fields>, java.io.Serializable, Cloneable {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("Analyzer");
+
+  private static final org.apache.thrift.protocol.TField ANALYZER_TYPES_FIELD_DESC = new org.apache.thrift.protocol.TField("analyzerTypes", org.apache.thrift.protocol.TType.LIST, (short)1);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new AnalyzerStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new AnalyzerTupleSchemeFactory());
+  }
+
+  /**
+   * The list of AnalyzerTypes.
+   */
+  public List<AnalyzerType> analyzerTypes; // required
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    /**
+     * The list of AnalyzerTypes.
+     */
+    ANALYZER_TYPES((short)1, "analyzerTypes");
+
+    private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
+
+    static {
+      for (_Fields field : EnumSet.allOf(_Fields.class)) {
+        byName.put(field.getFieldName(), field);
+      }
+    }
+
+    /**
+     * Find the _Fields constant that matches fieldId, or null if its not found.
+     */
+    public static _Fields findByThriftId(int fieldId) {
+      switch(fieldId) {
+        case 1: // ANALYZER_TYPES
+          return ANALYZER_TYPES;
+        default:
+          return null;
+      }
+    }
+
+    /**
+     * Find the _Fields constant that matches fieldId, throwing an exception
+     * if it is not found.
+     */
+    public static _Fields findByThriftIdOrThrow(int fieldId) {
+      _Fields fields = findByThriftId(fieldId);
+      if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+      return fields;
+    }
+
+    /**
+     * Find the _Fields constant that matches name, or null if its not found.
+     */
+    public static _Fields findByName(String name) {
+      return byName.get(name);
+    }
+
+    private final short _thriftId;
+    private final String _fieldName;
+
+    _Fields(short thriftId, String fieldName) {
+      _thriftId = thriftId;
+      _fieldName = fieldName;
+    }
+
+    public short getThriftFieldId() {
+      return _thriftId;
+    }
+
+    public String getFieldName() {
+      return _fieldName;
+    }
+  }
+
+  // isset id assignments
+  public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+  static {
+    Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+    tmpMap.put(_Fields.ANALYZER_TYPES, new org.apache.thrift.meta_data.FieldMetaData("analyzerTypes", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
+            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, AnalyzerType.class))));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(Analyzer.class, metaDataMap);
+  }
+
+  public Analyzer() {
+  }
+
+  public Analyzer(
+    List<AnalyzerType> analyzerTypes)
+  {
+    this();
+    this.analyzerTypes = analyzerTypes;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public Analyzer(Analyzer other) {
+    if (other.isSetAnalyzerTypes()) {
+      List<AnalyzerType> __this__analyzerTypes = new ArrayList<AnalyzerType>();
+      for (AnalyzerType other_element : other.analyzerTypes) {
+        __this__analyzerTypes.add(new AnalyzerType(other_element));
+      }
+      this.analyzerTypes = __this__analyzerTypes;
+    }
+  }
+
+  public Analyzer deepCopy() {
+    return new Analyzer(this);
+  }
+
+  @Override
+  public void clear() {
+    this.analyzerTypes = null;
+  }
+
+  public int getAnalyzerTypesSize() {
+    return (this.analyzerTypes == null) ? 0 : this.analyzerTypes.size();
+  }
+
+  public java.util.Iterator<AnalyzerType> getAnalyzerTypesIterator() {
+    return (this.analyzerTypes == null) ? null : this.analyzerTypes.iterator();
+  }
+
+  public void addToAnalyzerTypes(AnalyzerType elem) {
+    if (this.analyzerTypes == null) {
+      this.analyzerTypes = new ArrayList<AnalyzerType>();
+    }
+    this.analyzerTypes.add(elem);
+  }
+
+  /**
+   * The list of AnalyzerTypes.
+   */
+  public List<AnalyzerType> getAnalyzerTypes() {
+    return this.analyzerTypes;
+  }
+
+  /**
+   * The list of AnalyzerTypes.
+   */
+  public Analyzer setAnalyzerTypes(List<AnalyzerType> analyzerTypes) {
+    this.analyzerTypes = analyzerTypes;
+    return this;
+  }
+
+  public void unsetAnalyzerTypes() {
+    this.analyzerTypes = null;
+  }
+
+  /** Returns true if field analyzerTypes is set (has been assigned a value) and false otherwise */
+  public boolean isSetAnalyzerTypes() {
+    return this.analyzerTypes != null;
+  }
+
+  public void setAnalyzerTypesIsSet(boolean value) {
+    if (!value) {
+      this.analyzerTypes = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case ANALYZER_TYPES:
+      if (value == null) {
+        unsetAnalyzerTypes();
+      } else {
+        setAnalyzerTypes((List<AnalyzerType>)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case ANALYZER_TYPES:
+      return getAnalyzerTypes();
+
+    }
+    throw new IllegalStateException();
+  }
+
+  /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+  public boolean isSet(_Fields field) {
+    if (field == null) {
+      throw new IllegalArgumentException();
+    }
+
+    switch (field) {
+    case ANALYZER_TYPES:
+      return isSetAnalyzerTypes();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof Analyzer)
+      return this.equals((Analyzer)that);
+    return false;
+  }
+
+  public boolean equals(Analyzer that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_analyzerTypes = true && this.isSetAnalyzerTypes();
+    boolean that_present_analyzerTypes = true && that.isSetAnalyzerTypes();
+    if (this_present_analyzerTypes || that_present_analyzerTypes) {
+      if (!(this_present_analyzerTypes && that_present_analyzerTypes))
+        return false;
+      if (!this.analyzerTypes.equals(that.analyzerTypes))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    return 0;
+  }
+
+  public int compareTo(Analyzer other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+    Analyzer typedOther = (Analyzer)other;
+
+    lastComparison = Boolean.valueOf(isSetAnalyzerTypes()).compareTo(typedOther.isSetAnalyzerTypes());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetAnalyzerTypes()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.analyzerTypes, typedOther.analyzerTypes);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    return 0;
+  }
+
+  public _Fields fieldForId(int fieldId) {
+    return _Fields.findByThriftId(fieldId);
+  }
+
+  public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+    schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
+  }
+
+  public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+    schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder("Analyzer(");
+    boolean first = true;
+
+    sb.append("analyzerTypes:");
+    if (this.analyzerTypes == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.analyzerTypes);
+    }
+    first = false;
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    // check for sub-struct validity
+  }
+
+  private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+    try {
+      write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+    try {
+      read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private static class AnalyzerStandardSchemeFactory implements SchemeFactory {
+    public AnalyzerStandardScheme getScheme() {
+      return new AnalyzerStandardScheme();
+    }
+  }
+
+  private static class AnalyzerStandardScheme extends StandardScheme<Analyzer> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, Analyzer struct) throws org.apache.thrift.TException {
+      org.apache.thrift.protocol.TField schemeField;
+      iprot.readStructBegin();
+      while (true)
+      {
+        schemeField = iprot.readFieldBegin();
+        if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+          break;
+        }
+        switch (schemeField.id) {
+          case 1: // ANALYZER_TYPES
+            if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
+              {
+                org.apache.thrift.protocol.TList _list26 = iprot.readListBegin();
+                struct.analyzerTypes = new ArrayList<AnalyzerType>(_list26.size);
+                for (int _i27 = 0; _i27 < _list26.size; ++_i27)
+                {
+                  AnalyzerType _elem28; // required
+                  _elem28 = new AnalyzerType();
+                  _elem28.read(iprot);
+                  struct.analyzerTypes.add(_elem28);
+                }
+                iprot.readListEnd();
+              }
+              struct.setAnalyzerTypesIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, Analyzer struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.analyzerTypes != null) {
+        oprot.writeFieldBegin(ANALYZER_TYPES_FIELD_DESC);
+        {
+          oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.analyzerTypes.size()));
+          for (AnalyzerType _iter29 : struct.analyzerTypes)
+          {
+            _iter29.write(oprot);
+          }
+          oprot.writeListEnd();
+        }
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class AnalyzerTupleSchemeFactory implements SchemeFactory {
+    public AnalyzerTupleScheme getScheme() {
+      return new AnalyzerTupleScheme();
+    }
+  }
+
+  private static class AnalyzerTupleScheme extends TupleScheme<Analyzer> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, Analyzer struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      BitSet optionals = new BitSet();
+      if (struct.isSetAnalyzerTypes()) {
+        optionals.set(0);
+      }
+      oprot.writeBitSet(optionals, 1);
+      if (struct.isSetAnalyzerTypes()) {
+        {
+          oprot.writeI32(struct.analyzerTypes.size());
+          for (AnalyzerType _iter30 : struct.analyzerTypes)
+          {
+            _iter30.write(oprot);
+          }
+        }
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, Analyzer struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      BitSet incoming = iprot.readBitSet(1);
+      if (incoming.get(0)) {
+        {
+          org.apache.thrift.protocol.TList _list31 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.analyzerTypes = new ArrayList<AnalyzerType>(_list31.size);
+          for (int _i32 = 0; _i32 < _list31.size; ++_i32)
+          {
+            AnalyzerType _elem33; // required
+            _elem33 = new AnalyzerType();
+            _elem33.read(iprot);
+            struct.analyzerTypes.add(_elem33);
+          }
+        }
+        struct.setAnalyzerTypesIsSet(true);
+      }
+    }
+  }
+
+}
+

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/11f5141c/src/distribution/src/main/scripts/interface/gen-java/org/apache/blur/thrift/generated/AnalyzerSubType.java
----------------------------------------------------------------------
diff --git a/src/distribution/src/main/scripts/interface/gen-java/org/apache/blur/thrift/generated/AnalyzerSubType.java b/src/distribution/src/main/scripts/interface/gen-java/org/apache/blur/thrift/generated/AnalyzerSubType.java
new file mode 100644
index 0000000..d9b7455
--- /dev/null
+++ b/src/distribution/src/main/scripts/interface/gen-java/org/apache/blur/thrift/generated/AnalyzerSubType.java
@@ -0,0 +1,538 @@
+/**
+ * Autogenerated by Thrift Compiler (0.9.0)
+ *
+ * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+ *  @generated
+ */
+package org.apache.blur.thrift.generated;
+
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+
+import org.apache.thrift.scheme.IScheme;
+import org.apache.thrift.scheme.SchemeFactory;
+import org.apache.thrift.scheme.StandardScheme;
+
+import org.apache.thrift.scheme.TupleScheme;
+import org.apache.thrift.protocol.TTupleProtocol;
+import org.apache.thrift.protocol.TProtocolException;
+import org.apache.thrift.EncodingUtils;
+import org.apache.thrift.TException;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.EnumMap;
+import java.util.Set;
+import java.util.HashSet;
+import java.util.EnumSet;
+import java.util.Collections;
+import java.util.BitSet;
+import java.nio.ByteBuffer;
+import java.util.Arrays;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * The analyzer sub type struct holds the sub field name and class definition of
+ * the sub type.  See AnalyzerType for further explanation.
+ */
+public class AnalyzerSubType implements org.apache.thrift.TBase<AnalyzerSubType, AnalyzerSubType._Fields>, java.io.Serializable, Cloneable {
+  private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("AnalyzerSubType");
+
+  private static final org.apache.thrift.protocol.TField SUB_FIELD_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("subFieldName", org.apache.thrift.protocol.TType.STRING, (short)1);
+  private static final org.apache.thrift.protocol.TField CLASS_DEFINITION_FIELD_DESC = new org.apache.thrift.protocol.TField("classDefinition", org.apache.thrift.protocol.TType.STRUCT, (short)2);
+
+  private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
+  static {
+    schemes.put(StandardScheme.class, new AnalyzerSubTypeStandardSchemeFactory());
+    schemes.put(TupleScheme.class, new AnalyzerSubTypeTupleSchemeFactory());
+  }
+
+  /**
+   * The sub field name.
+   */
+  public String subFieldName; // required
+  /**
+   * The class definition that is to be used.
+   */
+  public ClassDefinition classDefinition; // required
+
+  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
+  public enum _Fields implements org.apache.thrift.TFieldIdEnum {
+    /**
+     * The sub field name.
+     */
+    SUB_FIELD_NAME((short)1, "subFieldName"),
+    /**
+     * The class definition that is to be used.
+     */
+    CLASS_DEFINITION((short)2, "classDefinition");
+
+    private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
+
+    static {
+      for (_Fields field : EnumSet.allOf(_Fields.class)) {
+        byName.put(field.getFieldName(), field);
+      }
+    }
+
+    /**
+     * Find the _Fields constant that matches fieldId, or null if its not found.
+     */
+    public static _Fields findByThriftId(int fieldId) {
+      switch(fieldId) {
+        case 1: // SUB_FIELD_NAME
+          return SUB_FIELD_NAME;
+        case 2: // CLASS_DEFINITION
+          return CLASS_DEFINITION;
+        default:
+          return null;
+      }
+    }
+
+    /**
+     * Find the _Fields constant that matches fieldId, throwing an exception
+     * if it is not found.
+     */
+    public static _Fields findByThriftIdOrThrow(int fieldId) {
+      _Fields fields = findByThriftId(fieldId);
+      if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
+      return fields;
+    }
+
+    /**
+     * Find the _Fields constant that matches name, or null if its not found.
+     */
+    public static _Fields findByName(String name) {
+      return byName.get(name);
+    }
+
+    private final short _thriftId;
+    private final String _fieldName;
+
+    _Fields(short thriftId, String fieldName) {
+      _thriftId = thriftId;
+      _fieldName = fieldName;
+    }
+
+    public short getThriftFieldId() {
+      return _thriftId;
+    }
+
+    public String getFieldName() {
+      return _fieldName;
+    }
+  }
+
+  // isset id assignments
+  public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
+  static {
+    Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
+    tmpMap.put(_Fields.SUB_FIELD_NAME, new org.apache.thrift.meta_data.FieldMetaData("subFieldName", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.CLASS_DEFINITION, new org.apache.thrift.meta_data.FieldMetaData("classDefinition", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ClassDefinition.class)));
+    metaDataMap = Collections.unmodifiableMap(tmpMap);
+    org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(AnalyzerSubType.class, metaDataMap);
+  }
+
+  public AnalyzerSubType() {
+  }
+
+  public AnalyzerSubType(
+    String subFieldName,
+    ClassDefinition classDefinition)
+  {
+    this();
+    this.subFieldName = subFieldName;
+    this.classDefinition = classDefinition;
+  }
+
+  /**
+   * Performs a deep copy on <i>other</i>.
+   */
+  public AnalyzerSubType(AnalyzerSubType other) {
+    if (other.isSetSubFieldName()) {
+      this.subFieldName = other.subFieldName;
+    }
+    if (other.isSetClassDefinition()) {
+      this.classDefinition = new ClassDefinition(other.classDefinition);
+    }
+  }
+
+  public AnalyzerSubType deepCopy() {
+    return new AnalyzerSubType(this);
+  }
+
+  @Override
+  public void clear() {
+    this.subFieldName = null;
+    this.classDefinition = null;
+  }
+
+  /**
+   * The sub field name.
+   */
+  public String getSubFieldName() {
+    return this.subFieldName;
+  }
+
+  /**
+   * The sub field name.
+   */
+  public AnalyzerSubType setSubFieldName(String subFieldName) {
+    this.subFieldName = subFieldName;
+    return this;
+  }
+
+  public void unsetSubFieldName() {
+    this.subFieldName = null;
+  }
+
+  /** Returns true if field subFieldName is set (has been assigned a value) and false otherwise */
+  public boolean isSetSubFieldName() {
+    return this.subFieldName != null;
+  }
+
+  public void setSubFieldNameIsSet(boolean value) {
+    if (!value) {
+      this.subFieldName = null;
+    }
+  }
+
+  /**
+   * The class definition that is to be used.
+   */
+  public ClassDefinition getClassDefinition() {
+    return this.classDefinition;
+  }
+
+  /**
+   * The class definition that is to be used.
+   */
+  public AnalyzerSubType setClassDefinition(ClassDefinition classDefinition) {
+    this.classDefinition = classDefinition;
+    return this;
+  }
+
+  public void unsetClassDefinition() {
+    this.classDefinition = null;
+  }
+
+  /** Returns true if field classDefinition is set (has been assigned a value) and false otherwise */
+  public boolean isSetClassDefinition() {
+    return this.classDefinition != null;
+  }
+
+  public void setClassDefinitionIsSet(boolean value) {
+    if (!value) {
+      this.classDefinition = null;
+    }
+  }
+
+  public void setFieldValue(_Fields field, Object value) {
+    switch (field) {
+    case SUB_FIELD_NAME:
+      if (value == null) {
+        unsetSubFieldName();
+      } else {
+        setSubFieldName((String)value);
+      }
+      break;
+
+    case CLASS_DEFINITION:
+      if (value == null) {
+        unsetClassDefinition();
+      } else {
+        setClassDefinition((ClassDefinition)value);
+      }
+      break;
+
+    }
+  }
+
+  public Object getFieldValue(_Fields field) {
+    switch (field) {
+    case SUB_FIELD_NAME:
+      return getSubFieldName();
+
+    case CLASS_DEFINITION:
+      return getClassDefinition();
+
+    }
+    throw new IllegalStateException();
+  }
+
+  /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
+  public boolean isSet(_Fields field) {
+    if (field == null) {
+      throw new IllegalArgumentException();
+    }
+
+    switch (field) {
+    case SUB_FIELD_NAME:
+      return isSetSubFieldName();
+    case CLASS_DEFINITION:
+      return isSetClassDefinition();
+    }
+    throw new IllegalStateException();
+  }
+
+  @Override
+  public boolean equals(Object that) {
+    if (that == null)
+      return false;
+    if (that instanceof AnalyzerSubType)
+      return this.equals((AnalyzerSubType)that);
+    return false;
+  }
+
+  public boolean equals(AnalyzerSubType that) {
+    if (that == null)
+      return false;
+
+    boolean this_present_subFieldName = true && this.isSetSubFieldName();
+    boolean that_present_subFieldName = true && that.isSetSubFieldName();
+    if (this_present_subFieldName || that_present_subFieldName) {
+      if (!(this_present_subFieldName && that_present_subFieldName))
+        return false;
+      if (!this.subFieldName.equals(that.subFieldName))
+        return false;
+    }
+
+    boolean this_present_classDefinition = true && this.isSetClassDefinition();
+    boolean that_present_classDefinition = true && that.isSetClassDefinition();
+    if (this_present_classDefinition || that_present_classDefinition) {
+      if (!(this_present_classDefinition && that_present_classDefinition))
+        return false;
+      if (!this.classDefinition.equals(that.classDefinition))
+        return false;
+    }
+
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    return 0;
+  }
+
+  public int compareTo(AnalyzerSubType other) {
+    if (!getClass().equals(other.getClass())) {
+      return getClass().getName().compareTo(other.getClass().getName());
+    }
+
+    int lastComparison = 0;
+    AnalyzerSubType typedOther = (AnalyzerSubType)other;
+
+    lastComparison = Boolean.valueOf(isSetSubFieldName()).compareTo(typedOther.isSetSubFieldName());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetSubFieldName()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.subFieldName, typedOther.subFieldName);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetClassDefinition()).compareTo(typedOther.isSetClassDefinition());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetClassDefinition()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.classDefinition, typedOther.classDefinition);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    return 0;
+  }
+
+  public _Fields fieldForId(int fieldId) {
+    return _Fields.findByThriftId(fieldId);
+  }
+
+  public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
+    schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
+  }
+
+  public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
+    schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
+  }
+
+  @Override
+  public String toString() {
+    StringBuilder sb = new StringBuilder("AnalyzerSubType(");
+    boolean first = true;
+
+    sb.append("subFieldName:");
+    if (this.subFieldName == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.subFieldName);
+    }
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("classDefinition:");
+    if (this.classDefinition == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.classDefinition);
+    }
+    first = false;
+    sb.append(")");
+    return sb.toString();
+  }
+
+  public void validate() throws org.apache.thrift.TException {
+    // check for required fields
+    // check for sub-struct validity
+    if (classDefinition != null) {
+      classDefinition.validate();
+    }
+  }
+
+  private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
+    try {
+      write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
+    try {
+      read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
+    } catch (org.apache.thrift.TException te) {
+      throw new java.io.IOException(te);
+    }
+  }
+
+  private static class AnalyzerSubTypeStandardSchemeFactory implements SchemeFactory {
+    public AnalyzerSubTypeStandardScheme getScheme() {
+      return new AnalyzerSubTypeStandardScheme();
+    }
+  }
+
+  private static class AnalyzerSubTypeStandardScheme extends StandardScheme<AnalyzerSubType> {
+
+    public void read(org.apache.thrift.protocol.TProtocol iprot, AnalyzerSubType struct) throws org.apache.thrift.TException {
+      org.apache.thrift.protocol.TField schemeField;
+      iprot.readStructBegin();
+      while (true)
+      {
+        schemeField = iprot.readFieldBegin();
+        if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { 
+          break;
+        }
+        switch (schemeField.id) {
+          case 1: // SUB_FIELD_NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.subFieldName = iprot.readString();
+              struct.setSubFieldNameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 2: // CLASS_DEFINITION
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+              struct.classDefinition = new ClassDefinition();
+              struct.classDefinition.read(iprot);
+              struct.setClassDefinitionIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          default:
+            org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+        }
+        iprot.readFieldEnd();
+      }
+      iprot.readStructEnd();
+
+      // check for required fields of primitive type, which can't be checked in the validate method
+      struct.validate();
+    }
+
+    public void write(org.apache.thrift.protocol.TProtocol oprot, AnalyzerSubType struct) throws org.apache.thrift.TException {
+      struct.validate();
+
+      oprot.writeStructBegin(STRUCT_DESC);
+      if (struct.subFieldName != null) {
+        oprot.writeFieldBegin(SUB_FIELD_NAME_FIELD_DESC);
+        oprot.writeString(struct.subFieldName);
+        oprot.writeFieldEnd();
+      }
+      if (struct.classDefinition != null) {
+        oprot.writeFieldBegin(CLASS_DEFINITION_FIELD_DESC);
+        struct.classDefinition.write(oprot);
+        oprot.writeFieldEnd();
+      }
+      oprot.writeFieldStop();
+      oprot.writeStructEnd();
+    }
+
+  }
+
+  private static class AnalyzerSubTypeTupleSchemeFactory implements SchemeFactory {
+    public AnalyzerSubTypeTupleScheme getScheme() {
+      return new AnalyzerSubTypeTupleScheme();
+    }
+  }
+
+  private static class AnalyzerSubTypeTupleScheme extends TupleScheme<AnalyzerSubType> {
+
+    @Override
+    public void write(org.apache.thrift.protocol.TProtocol prot, AnalyzerSubType struct) throws org.apache.thrift.TException {
+      TTupleProtocol oprot = (TTupleProtocol) prot;
+      BitSet optionals = new BitSet();
+      if (struct.isSetSubFieldName()) {
+        optionals.set(0);
+      }
+      if (struct.isSetClassDefinition()) {
+        optionals.set(1);
+      }
+      oprot.writeBitSet(optionals, 2);
+      if (struct.isSetSubFieldName()) {
+        oprot.writeString(struct.subFieldName);
+      }
+      if (struct.isSetClassDefinition()) {
+        struct.classDefinition.write(oprot);
+      }
+    }
+
+    @Override
+    public void read(org.apache.thrift.protocol.TProtocol prot, AnalyzerSubType struct) throws org.apache.thrift.TException {
+      TTupleProtocol iprot = (TTupleProtocol) prot;
+      BitSet incoming = iprot.readBitSet(2);
+      if (incoming.get(0)) {
+        struct.subFieldName = iprot.readString();
+        struct.setSubFieldNameIsSet(true);
+      }
+      if (incoming.get(1)) {
+        struct.classDefinition = new ClassDefinition();
+        struct.classDefinition.read(iprot);
+        struct.setClassDefinitionIsSet(true);
+      }
+    }
+  }
+
+}
+


Mime
View raw message