<!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_80) on Tue Aug 30 09:58:52 EDT 2016 -->
<title>Uses of Class org.apache.pirk.utils.PIRException</title>
<meta name="date" content="2016-08-30">
<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="Uses of Class org.apache.pirk.utils.PIRException";
    }
//-->
</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><a href="../../../../../org/apache/pirk/utils/PIRException.html" title="class in org.apache.pirk.utils">Class</a></li>
<li class="navBarCell1Rev">Use</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>Prev</li>
<li>Next</li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/pirk/utils/class-use/PIRException.html" target="_top">Frames</a></li>
<li><a href="PIRException.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>
<a name="skip-navbar_top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h2 title="Uses of Class org.apache.pirk.utils.PIRException" class="title">Uses of Class<br>org.apache.pirk.utils.PIRException</h2>
</div>
<div class="classUseContainer">
<ul class="blockList">
<li class="blockList">
<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
<caption><span>Packages that use <a href="../../../../../org/apache/pirk/utils/PIRException.html" title="class in org.apache.pirk.utils">PIRException</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Package</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><a href="#org.apache.pirk.encryption">org.apache.pirk.encryption</a></td>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="#org.apache.pirk.general">org.apache.pirk.general</a></td>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="#org.apache.pirk.querier.wideskies">org.apache.pirk.querier.wideskies</a></td>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="#org.apache.pirk.querier.wideskies.decrypt">org.apache.pirk.querier.wideskies.decrypt</a></td>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="#org.apache.pirk.querier.wideskies.encrypt">org.apache.pirk.querier.wideskies.encrypt</a></td>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="#org.apache.pirk.query.wideskies">org.apache.pirk.query.wideskies</a></td>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="#org.apache.pirk.responder.wideskies.spark">org.apache.pirk.responder.wideskies.spark</a></td>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="#org.apache.pirk.schema.data">org.apache.pirk.schema.data</a></td>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="#org.apache.pirk.schema.data.partitioner">org.apache.pirk.schema.data.partitioner</a></td>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="#org.apache.pirk.schema.query">org.apache.pirk.schema.query</a></td>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="#org.apache.pirk.schema.query.filter">org.apache.pirk.schema.query.filter</a></td>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="#org.apache.pirk.test.utils">org.apache.pirk.test.utils</a></td>
<td class="colLast">&nbsp;</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList">
<ul class="blockList">
<li class="blockList"><a name="org.apache.pirk.encryption">
<!--   -->
</a>
<h3>Uses of <a href="../../../../../org/apache/pirk/utils/PIRException.html" title="class in org.apache.pirk.utils">PIRException</a> in <a href="../../../../../org/apache/pirk/encryption/package-summary.html">org.apache.pirk.encryption</a></h3>
<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
<caption><span>Methods in <a href="../../../../../org/apache/pirk/encryption/package-summary.html">org.apache.pirk.encryption</a> that throw <a href="../../../../../org/apache/pirk/utils/PIRException.html" title="class in org.apache.pirk.utils">PIRException</a></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>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>java.math.BigInteger</code></td>
<td class="colLast"><span class="strong">Paillier.</span><code><strong><a href="../../../../../org/apache/pirk/encryption/Paillier.html#encrypt(java.math.BigInteger)">encrypt</a></strong>(java.math.BigInteger&nbsp;m)</code>
<div class="block">Encrypt - generate r</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>java.math.BigInteger</code></td>
<td class="colLast"><span class="strong">Paillier.</span><code><strong><a href="../../../../../org/apache/pirk/encryption/Paillier.html#encrypt(java.math.BigInteger,%20java.math.BigInteger)">encrypt</a></strong>(java.math.BigInteger&nbsp;m,
       java.math.BigInteger&nbsp;r)</code>
<div class="block">Encrypt - use provided r</div>
</td>
</tr>
</tbody>
</table>
<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
<caption><span>Constructors in <a href="../../../../../org/apache/pirk/encryption/package-summary.html">org.apache.pirk.encryption</a> that throw <a href="../../../../../org/apache/pirk/utils/PIRException.html" title="class in org.apache.pirk.utils">PIRException</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colLast"><code><strong><a href="../../../../../org/apache/pirk/encryption/Paillier.html#Paillier(java.math.BigInteger,%20java.math.BigInteger,%20int)">Paillier</a></strong>(java.math.BigInteger&nbsp;pInput,
        java.math.BigInteger&nbsp;qInput,
        int&nbsp;bitLengthInput)</code>
<div class="block">Constructor with all parameters p,q, and bitLengthInput specified</div>
</td>
</tr>
<tr class="rowColor">
<td class="colLast"><code><strong><a href="../../../../../org/apache/pirk/encryption/Paillier.html#Paillier(int,%20int)">Paillier</a></strong>(int&nbsp;bitLengthInput,
        int&nbsp;certainty)</code>
<div class="block">Constructor to generate keys given the desired bitLength and prime certainty value</div>
</td>
</tr>
<tr class="altColor">
<td class="colLast"><code><strong><a href="../../../../../org/apache/pirk/encryption/Paillier.html#Paillier(int,%20int,%20int)">Paillier</a></strong>(int&nbsp;bitLengthInput,
        int&nbsp;certainty,
        int&nbsp;ensureBitSet)</code>
<div class="block">Constructor to generate keys given the desired bitLength and prime certainty value</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList"><a name="org.apache.pirk.general">
<!--   -->
</a>
<h3>Uses of <a href="../../../../../org/apache/pirk/utils/PIRException.html" title="class in org.apache.pirk.utils">PIRException</a> in <a href="../../../../../org/apache/pirk/general/package-summary.html">org.apache.pirk.general</a></h3>
<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
<caption><span>Methods in <a href="../../../../../org/apache/pirk/general/package-summary.html">org.apache.pirk.general</a> that throw <a href="../../../../../org/apache/pirk/utils/PIRException.html" title="class in org.apache.pirk.utils">PIRException</a></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>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><span class="strong">PartitionUtilsTest.</span><code><strong><a href="../../../../../org/apache/pirk/general/PartitionUtilsTest.html#testPaddedPartitions()">testPaddedPartitions</a></strong>()</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><span class="strong">PartitionUtilsTest.</span><code><strong><a href="../../../../../org/apache/pirk/general/PartitionUtilsTest.html#testPartitionBits()">testPartitionBits</a></strong>()</code>&nbsp;</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList"><a name="org.apache.pirk.querier.wideskies">
<!--   -->
</a>
<h3>Uses of <a href="../../../../../org/apache/pirk/utils/PIRException.html" title="class in org.apache.pirk.utils">PIRException</a> in <a href="../../../../../org/apache/pirk/querier/wideskies/package-summary.html">org.apache.pirk.querier.wideskies</a></h3>
<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
<caption><span>Methods in <a href="../../../../../org/apache/pirk/querier/wideskies/package-summary.html">org.apache.pirk.querier.wideskies</a> that throw <a href="../../../../../org/apache/pirk/utils/PIRException.html" title="class in org.apache.pirk.utils">PIRException</a></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>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>static void</code></td>
<td class="colLast"><span class="strong">QuerierDriver.</span><code><strong><a href="../../../../../org/apache/pirk/querier/wideskies/QuerierDriver.html#main(java.lang.String...)">main</a></strong>(java.lang.String...&nbsp;args)</code>&nbsp;</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList"><a name="org.apache.pirk.querier.wideskies.decrypt">
<!--   -->
</a>
<h3>Uses of <a href="../../../../../org/apache/pirk/utils/PIRException.html" title="class in org.apache.pirk.utils">PIRException</a> in <a href="../../../../../org/apache/pirk/querier/wideskies/decrypt/package-summary.html">org.apache.pirk.querier.wideskies.decrypt</a></h3>
<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
<caption><span>Methods in <a href="../../../../../org/apache/pirk/querier/wideskies/decrypt/package-summary.html">org.apache.pirk.querier.wideskies.decrypt</a> that throw <a href="../../../../../org/apache/pirk/utils/PIRException.html" title="class in org.apache.pirk.utils">PIRException</a></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>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><span class="strong">DecryptResponse.</span><code><strong><a href="../../../../../org/apache/pirk/querier/wideskies/decrypt/DecryptResponse.html#decrypt(int)">decrypt</a></strong>(int&nbsp;numThreads)</code>
<div class="block">Method to decrypt the response elements and reconstructs the data elements</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList"><a name="org.apache.pirk.querier.wideskies.encrypt">
<!--   -->
</a>
<h3>Uses of <a href="../../../../../org/apache/pirk/utils/PIRException.html" title="class in org.apache.pirk.utils">PIRException</a> in <a href="../../../../../org/apache/pirk/querier/wideskies/encrypt/package-summary.html">org.apache.pirk.querier.wideskies.encrypt</a></h3>
<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
<caption><span>Methods in <a href="../../../../../org/apache/pirk/querier/wideskies/encrypt/package-summary.html">org.apache.pirk.querier.wideskies.encrypt</a> that throw <a href="../../../../../org/apache/pirk/utils/PIRException.html" title="class in org.apache.pirk.utils">PIRException</a></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>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><span class="strong">EncryptQuery.</span><code><strong><a href="../../../../../org/apache/pirk/querier/wideskies/encrypt/EncryptQuery.html#encrypt()">encrypt</a></strong>()</code>
<div class="block">Encrypt, building the Query object, calculating and setting the query vectors.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><span class="strong">EncryptQuery.</span><code><strong><a href="../../../../../org/apache/pirk/querier/wideskies/encrypt/EncryptQuery.html#encrypt(int)">encrypt</a></strong>(int&nbsp;numThreads)</code>
<div class="block">Encrypt, building the Query object, calculating and setting the query vectors</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList"><a name="org.apache.pirk.query.wideskies">
<!--   -->
</a>
<h3>Uses of <a href="../../../../../org/apache/pirk/utils/PIRException.html" title="class in org.apache.pirk.utils">PIRException</a> in <a href="../../../../../org/apache/pirk/query/wideskies/package-summary.html">org.apache.pirk.query.wideskies</a></h3>
<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
<caption><span>Methods in <a href="../../../../../org/apache/pirk/query/wideskies/package-summary.html">org.apache.pirk.query.wideskies</a> that throw <a href="../../../../../org/apache/pirk/utils/PIRException.html" title="class in org.apache.pirk.utils">PIRException</a></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>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>static java.util.List&lt;java.math.BigInteger&gt;</code></td>
<td class="colLast"><span class="strong">QueryUtils.</span><code><strong><a href="../../../../../org/apache/pirk/query/wideskies/QueryUtils.html#embeddedSelectorToPartitions(java.lang.String,%20java.lang.String,%20org.apache.pirk.schema.data.partitioner.DataPartitioner)">embeddedSelectorToPartitions</a></strong>(java.lang.String&nbsp;selector,
                            java.lang.String&nbsp;type,
                            <a href="../../../../../org/apache/pirk/schema/data/partitioner/DataPartitioner.html" title="interface in org.apache.pirk.schema.data.partitioner">DataPartitioner</a>&nbsp;partitioner)</code>
<div class="block">Method to convert the given selector into the extracted BigInteger partitions</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/pirk/schema/response/QueryResponseJSON.html" title="class in org.apache.pirk.schema.response">QueryResponseJSON</a></code></td>
<td class="colLast"><span class="strong">QueryUtils.</span><code><strong><a href="../../../../../org/apache/pirk/query/wideskies/QueryUtils.html#extractQueryResponseJSON(org.apache.pirk.query.wideskies.QueryInfo,%20org.apache.pirk.schema.query.QuerySchema,%20java.util.List)">extractQueryResponseJSON</a></strong>(<a href="../../../../../org/apache/pirk/query/wideskies/QueryInfo.html" title="class in org.apache.pirk.query.wideskies">QueryInfo</a>&nbsp;queryInfo,
                        <a href="../../../../../org/apache/pirk/schema/query/QuerySchema.html" title="class in org.apache.pirk.schema.query">QuerySchema</a>&nbsp;qSchema,
                        java.util.List&lt;java.math.BigInteger&gt;&nbsp;parts)</code>
<div class="block">Method to convert the given BigInteger raw data element partitions to a QueryResponseJSON object based upon the given queryType</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><span class="strong">QueryUtils.</span><code><strong><a href="../../../../../org/apache/pirk/query/wideskies/QueryUtils.html#getEmbeddedSelector(java.lang.String,%20java.lang.String,%20org.apache.pirk.schema.data.partitioner.DataPartitioner)">getEmbeddedSelector</a></strong>(java.lang.String&nbsp;selector,
                   java.lang.String&nbsp;type,
                   <a href="../../../../../org/apache/pirk/schema/data/partitioner/DataPartitioner.html" title="interface in org.apache.pirk.schema.data.partitioner">DataPartitioner</a>&nbsp;partitioner)</code>
<div class="block">Method get the embedded selector from a given selector</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><span class="strong">QueryUtils.</span><code><strong><a href="../../../../../org/apache/pirk/query/wideskies/QueryUtils.html#getEmbeddedSelectorFromPartitions(java.util.List,%20int,%20java.lang.String,%20java.lang.Object)">getEmbeddedSelectorFromPartitions</a></strong>(java.util.List&lt;java.math.BigInteger&gt;&nbsp;parts,
                                 int&nbsp;partsIndex,
                                 java.lang.String&nbsp;type,
                                 java.lang.Object&nbsp;partitioner)</code>
<div class="block">Reconstructs the String version of the embedded selector from its partitions</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.util.List&lt;java.math.BigInteger&gt;</code></td>
<td class="colLast"><span class="strong">QueryUtils.</span><code><strong><a href="../../../../../org/apache/pirk/query/wideskies/QueryUtils.html#partitionDataElement(org.apache.hadoop.io.MapWritable,%20org.apache.pirk.schema.query.QuerySchema,%20org.apache.pirk.schema.data.DataSchema,%20boolean)">partitionDataElement</a></strong>(org.apache.hadoop.io.MapWritable&nbsp;dataMap,
                    <a href="../../../../../org/apache/pirk/schema/query/QuerySchema.html" title="class in org.apache.pirk.schema.query">QuerySchema</a>&nbsp;qSchema,
                    <a href="../../../../../org/apache/pirk/schema/data/DataSchema.html" title="class in org.apache.pirk.schema.data">DataSchema</a>&nbsp;dSchema,
                    boolean&nbsp;embedSelector)</code>
<div class="block">Method to convert the given data element given by the MapWritable data element into the extracted BigInteger partitions based upon the given queryType</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.util.List&lt;java.math.BigInteger&gt;</code></td>
<td class="colLast"><span class="strong">QueryUtils.</span><code><strong><a href="../../../../../org/apache/pirk/query/wideskies/QueryUtils.html#partitionDataElement(org.apache.pirk.schema.query.QuerySchema,%20org.json.simple.JSONObject,%20boolean)">partitionDataElement</a></strong>(<a href="../../../../../org/apache/pirk/schema/query/QuerySchema.html" title="class in org.apache.pirk.schema.query">QuerySchema</a>&nbsp;qSchema,
                    org.json.simple.JSONObject&nbsp;jsonData,
                    boolean&nbsp;embedSelector)</code>
<div class="block">Method to convert the given data element given by the JSONObject data element into the extracted BigInteger partitions based upon the given queryType</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList"><a name="org.apache.pirk.responder.wideskies.spark">
<!--   -->
</a>
<h3>Uses of <a href="../../../../../org/apache/pirk/utils/PIRException.html" title="class in org.apache.pirk.utils">PIRException</a> in <a href="../../../../../org/apache/pirk/responder/wideskies/spark/package-summary.html">org.apache.pirk.responder.wideskies.spark</a></h3>
<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
<caption><span>Methods in <a href="../../../../../org/apache/pirk/responder/wideskies/spark/package-summary.html">org.apache.pirk.responder.wideskies.spark</a> that throw <a href="../../../../../org/apache/pirk/utils/PIRException.html" title="class in org.apache.pirk.utils">PIRException</a></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>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><span class="strong">ComputeResponse.</span><code><strong><a href="../../../../../org/apache/pirk/responder/wideskies/spark/ComputeResponse.html#performQuery(org.apache.spark.api.java.JavaRDD)">performQuery</a></strong>(org.apache.spark.api.java.JavaRDD&lt;org.apache.hadoop.io.MapWritable&gt;&nbsp;inputRDD)</code>
<div class="block">Method to perform the query given an input RDD of MapWritables</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList"><a name="org.apache.pirk.schema.data">
<!--   -->
</a>
<h3>Uses of <a href="../../../../../org/apache/pirk/utils/PIRException.html" title="class in org.apache.pirk.utils">PIRException</a> in <a href="../../../../../org/apache/pirk/schema/data/package-summary.html">org.apache.pirk.schema.data</a></h3>
<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
<caption><span>Methods in <a href="../../../../../org/apache/pirk/schema/data/package-summary.html">org.apache.pirk.schema.data</a> that throw <a href="../../../../../org/apache/pirk/utils/PIRException.html" title="class in org.apache.pirk.utils">PIRException</a></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>
<tbody>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/pirk/schema/data/partitioner/DataPartitioner.html" title="interface in org.apache.pirk.schema.data.partitioner">DataPartitioner</a></code></td>
<td class="colLast"><span class="strong">DataSchema.</span><code><strong><a href="../../../../../org/apache/pirk/schema/data/DataSchema.html#getPartitionerForElement(java.lang.String)">getPartitionerForElement</a></strong>(java.lang.String&nbsp;elementName)</code>
<div class="block">Returns the partitioner instance for the given element name.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/pirk/schema/data/partitioner/DataPartitioner.html" title="interface in org.apache.pirk.schema.data.partitioner">DataPartitioner</a></code></td>
<td class="colLast"><span class="strong">DataSchema.</span><code><strong><a href="../../../../../org/apache/pirk/schema/data/DataSchema.html#getPartitionerInstance(java.lang.String)">getPartitionerInstance</a></strong>(java.lang.String&nbsp;partitionerTypeName)</code>
<div class="block">Returns the partitioner corresponding to the given partitioner class name.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/pirk/schema/data/DataSchema.html" title="class in org.apache.pirk.schema.data">DataSchema</a></code></td>
<td class="colLast"><span class="strong">DataSchemaLoader.</span><code><strong><a href="../../../../../org/apache/pirk/schema/data/DataSchemaLoader.html#loadSchema(java.io.InputStream)">loadSchema</a></strong>(java.io.InputStream&nbsp;stream)</code>
<div class="block">Returns the data schema as defined in XML format on the given stream.</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList"><a name="org.apache.pirk.schema.data.partitioner">
<!--   -->
</a>
<h3>Uses of <a href="../../../../../org/apache/pirk/utils/PIRException.html" title="class in org.apache.pirk.utils">PIRException</a> in <a href="../../../../../org/apache/pirk/schema/data/partitioner/package-summary.html">org.apache.pirk.schema.data.partitioner</a></h3>
<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
<caption><span>Methods in <a href="../../../../../org/apache/pirk/schema/data/partitioner/package-summary.html">org.apache.pirk.schema.data.partitioner</a> that throw <a href="../../../../../org/apache/pirk/utils/PIRException.html" title="class in org.apache.pirk.utils">PIRException</a></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>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>java.util.List&lt;java.math.BigInteger&gt;</code></td>
<td class="colLast"><span class="strong">PrimitiveTypePartitioner.</span><code><strong><a href="../../../../../org/apache/pirk/schema/data/partitioner/PrimitiveTypePartitioner.html#arrayToPartitions(java.util.List,%20java.lang.String)">arrayToPartitions</a></strong>(java.util.List&lt;?&gt;&nbsp;elementList,
                 java.lang.String&nbsp;type)</code>
<div class="block">Create partitions for an array of the same type of elements - used when a data value field is an array and we wish to encode these into the return value</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>java.util.List&lt;java.math.BigInteger&gt;</code></td>
<td class="colLast"><span class="strong">ISO8601DatePartitioner.</span><code><strong><a href="../../../../../org/apache/pirk/schema/data/partitioner/ISO8601DatePartitioner.html#arrayToPartitions(java.util.List,%20java.lang.String)">arrayToPartitions</a></strong>(java.util.List&lt;?&gt;&nbsp;elementList,
                 java.lang.String&nbsp;type)</code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>java.util.List&lt;java.math.BigInteger&gt;</code></td>
<td class="colLast"><span class="strong">DataPartitioner.</span><code><strong><a href="../../../../../org/apache/pirk/schema/data/partitioner/DataPartitioner.html#arrayToPartitions(java.util.List,%20java.lang.String)">arrayToPartitions</a></strong>(java.util.List&lt;?&gt;&nbsp;elementList,
                 java.lang.String&nbsp;type)</code>
<div class="block">Creates partitions for an array of the same type of elements - used when a data value field is an array and we wish to encode these into the return value.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>java.lang.Object</code></td>
<td class="colLast"><span class="strong">PrimitiveTypePartitioner.</span><code><strong><a href="../../../../../org/apache/pirk/schema/data/partitioner/PrimitiveTypePartitioner.html#fromPartitions(java.util.List,%20int,%20java.lang.String)">fromPartitions</a></strong>(java.util.List&lt;java.math.BigInteger&gt;&nbsp;parts,
              int&nbsp;partsIndex,
              java.lang.String&nbsp;type)</code>
<div class="block">Reconstructs the object from the partitions</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>java.lang.Object</code></td>
<td class="colLast"><span class="strong">ISO8601DatePartitioner.</span><code><strong><a href="../../../../../org/apache/pirk/schema/data/partitioner/ISO8601DatePartitioner.html#fromPartitions(java.util.List,%20int,%20java.lang.String)">fromPartitions</a></strong>(java.util.List&lt;java.math.BigInteger&gt;&nbsp;parts,
              int&nbsp;partsIndex,
              java.lang.String&nbsp;type)</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>java.lang.Object</code></td>
<td class="colLast"><span class="strong">DataPartitioner.</span><code><strong><a href="../../../../../org/apache/pirk/schema/data/partitioner/DataPartitioner.html#fromPartitions(java.util.List,%20int,%20java.lang.String)">fromPartitions</a></strong>(java.util.List&lt;java.math.BigInteger&gt;&nbsp;parts,
              int&nbsp;partsIndex,
              java.lang.String&nbsp;type)</code>
<div class="block">Method to reconstruct an Object given a List of its BigInteger partition elements and its type identifier.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><span class="strong">PrimitiveTypePartitioner.</span><code><strong><a href="../../../../../org/apache/pirk/schema/data/partitioner/PrimitiveTypePartitioner.html#getBits(java.lang.String)">getBits</a></strong>(java.lang.String&nbsp;type)</code>
<div class="block">Get the bit size of the allowed primitive java types</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><span class="strong">DataPartitioner.</span><code><strong><a href="../../../../../org/apache/pirk/schema/data/partitioner/DataPartitioner.html#getBits(java.lang.String)">getBits</a></strong>(java.lang.String&nbsp;type)</code>
<div class="block">Returns the number of bits of an object with the given type.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><span class="strong">PrimitiveTypePartitioner.</span><code><strong><a href="../../../../../org/apache/pirk/schema/data/partitioner/PrimitiveTypePartitioner.html#getNumPartitions(java.lang.String)">getNumPartitions</a></strong>(java.lang.String&nbsp;type)</code>
<div class="block">Method to get the number of 8-bit partitions given the element type</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><span class="strong">ISO8601DatePartitioner.</span><code><strong><a href="../../../../../org/apache/pirk/schema/data/partitioner/ISO8601DatePartitioner.html#getNumPartitions(java.lang.String)">getNumPartitions</a></strong>(java.lang.String&nbsp;type)</code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><span class="strong">DataPartitioner.</span><code><strong><a href="../../../../../org/apache/pirk/schema/data/partitioner/DataPartitioner.html#getNumPartitions(java.lang.String)">getNumPartitions</a></strong>(java.lang.String&nbsp;type)</code>
<div class="block">Method to get the number of partitions of the data object given the type.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>java.util.List&lt;java.math.BigInteger&gt;</code></td>
<td class="colLast"><span class="strong">PrimitiveTypePartitioner.</span><code><strong><a href="../../../../../org/apache/pirk/schema/data/partitioner/PrimitiveTypePartitioner.html#getPaddedPartitions(java.lang.String)">getPaddedPartitions</a></strong>(java.lang.String&nbsp;type)</code>
<div class="block">Method to get an empty set of partitions by data type - used for padding return array values</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>java.util.List&lt;java.math.BigInteger&gt;</code></td>
<td class="colLast"><span class="strong">ISO8601DatePartitioner.</span><code><strong><a href="../../../../../org/apache/pirk/schema/data/partitioner/ISO8601DatePartitioner.html#getPaddedPartitions(java.lang.String)">getPaddedPartitions</a></strong>(java.lang.String&nbsp;type)</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>java.util.List&lt;java.math.BigInteger&gt;</code></td>
<td class="colLast"><span class="strong">DataPartitioner.</span><code><strong><a href="../../../../../org/apache/pirk/schema/data/partitioner/DataPartitioner.html#getPaddedPartitions(java.lang.String)">getPaddedPartitions</a></strong>(java.lang.String&nbsp;type)</code>
<div class="block">Method to get an empty set of partitions by data type - used for padding return array values.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.util.List&lt;java.math.BigInteger&gt;</code></td>
<td class="colLast"><span class="strong">PrimitiveTypePartitioner.</span><code><strong><a href="../../../../../org/apache/pirk/schema/data/partitioner/PrimitiveTypePartitioner.html#partitionBits(java.math.BigInteger,%20int,%20java.math.BigInteger)">partitionBits</a></strong>(java.math.BigInteger&nbsp;value,
             int&nbsp;partitionSize,
             java.math.BigInteger&nbsp;mask)</code>
<div class="block">Splits the given BigInteger into partitions given by the partitionSize.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>java.util.List&lt;java.math.BigInteger&gt;</code></td>
<td class="colLast"><span class="strong">PrimitiveTypePartitioner.</span><code><strong><a href="../../../../../org/apache/pirk/schema/data/partitioner/PrimitiveTypePartitioner.html#toPartitions(java.lang.Object,%20java.lang.String)">toPartitions</a></strong>(java.lang.Object&nbsp;obj,
            java.lang.String&nbsp;type)</code>
<div class="block">Partitions an object to a List of BigInteger values, currently represents an 8-bit partitioning</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>java.util.List&lt;java.math.BigInteger&gt;</code></td>
<td class="colLast"><span class="strong">ISO8601DatePartitioner.</span><code><strong><a href="../../../../../org/apache/pirk/schema/data/partitioner/ISO8601DatePartitioner.html#toPartitions(java.lang.Object,%20java.lang.String)">toPartitions</a></strong>(java.lang.Object&nbsp;object,
            java.lang.String&nbsp;type)</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>java.util.List&lt;java.math.BigInteger&gt;</code></td>
<td class="colLast"><span class="strong">DataPartitioner.</span><code><strong><a href="../../../../../org/apache/pirk/schema/data/partitioner/DataPartitioner.html#toPartitions(java.lang.Object,%20java.lang.String)">toPartitions</a></strong>(java.lang.Object&nbsp;object,
            java.lang.String&nbsp;type)</code>
<div class="block">Method to partition the given Object into a List of BigInteger partition elements given its type identifier.</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList"><a name="org.apache.pirk.schema.query">
<!--   -->
</a>
<h3>Uses of <a href="../../../../../org/apache/pirk/utils/PIRException.html" title="class in org.apache.pirk.utils">PIRException</a> in <a href="../../../../../org/apache/pirk/schema/query/package-summary.html">org.apache.pirk.schema.query</a></h3>
<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
<caption><span>Methods in <a href="../../../../../org/apache/pirk/schema/query/package-summary.html">org.apache.pirk.schema.query</a> that throw <a href="../../../../../org/apache/pirk/utils/PIRException.html" title="class in org.apache.pirk.utils">PIRException</a></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>
<tbody>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/pirk/schema/query/QuerySchema.html" title="class in org.apache.pirk.schema.query">QuerySchema</a></code></td>
<td class="colLast"><span class="strong">QuerySchemaLoader.</span><code><strong><a href="../../../../../org/apache/pirk/schema/query/QuerySchemaLoader.html#loadSchema(java.io.InputStream)">loadSchema</a></strong>(java.io.InputStream&nbsp;stream)</code>
<div class="block">Returns the query schema as defined in XML format on the given stream.</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList"><a name="org.apache.pirk.schema.query.filter">
<!--   -->
</a>
<h3>Uses of <a href="../../../../../org/apache/pirk/utils/PIRException.html" title="class in org.apache.pirk.utils">PIRException</a> in <a href="../../../../../org/apache/pirk/schema/query/filter/package-summary.html">org.apache.pirk.schema.query.filter</a></h3>
<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
<caption><span>Methods in <a href="../../../../../org/apache/pirk/schema/query/filter/package-summary.html">org.apache.pirk.schema.query.filter</a> that throw <a href="../../../../../org/apache/pirk/utils/PIRException.html" title="class in org.apache.pirk.utils">PIRException</a></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>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>static <a href="../../../../../org/apache/pirk/schema/query/filter/DataFilter.html" title="interface in org.apache.pirk.schema.query.filter">DataFilter</a></code></td>
<td class="colLast"><span class="strong">FilterFactory.</span><code><strong><a href="../../../../../org/apache/pirk/schema/query/filter/FilterFactory.html#getFilter(java.lang.String,%20java.util.Set)">getFilter</a></strong>(java.lang.String&nbsp;filterName,
         java.util.Set&lt;java.lang.String&gt;&nbsp;filteredElementNames)</code>&nbsp;</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList"><a name="org.apache.pirk.test.utils">
<!--   -->
</a>
<h3>Uses of <a href="../../../../../org/apache/pirk/utils/PIRException.html" title="class in org.apache.pirk.utils">PIRException</a> in <a href="../../../../../org/apache/pirk/test/utils/package-summary.html">org.apache.pirk.test.utils</a></h3>
<table border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
<caption><span>Methods in <a href="../../../../../org/apache/pirk/test/utils/package-summary.html">org.apache.pirk.test.utils</a> that throw <a href="../../../../../org/apache/pirk/utils/PIRException.html" title="class in org.apache.pirk.utils">PIRException</a></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>
<tbody>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><span class="strong">Inputs.</span><code><strong><a href="../../../../../org/apache/pirk/test/utils/Inputs.html#createStopList(org.apache.hadoop.fs.FileSystem,%20boolean)">createStopList</a></strong>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
              boolean&nbsp;hdfs)</code>
<div class="block">Creates stoplist file</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.util.List&lt;<a href="../../../../../org/apache/pirk/schema/response/QueryResponseJSON.html" title="class in org.apache.pirk.schema.response">QueryResponseJSON</a>&gt;</code></td>
<td class="colLast"><span class="strong">StandaloneQuery.</span><code><strong><a href="../../../../../org/apache/pirk/test/utils/StandaloneQuery.html#performStandaloneQuery(java.util.List,%20java.lang.String,%20java.util.List,%20int,%20boolean)">performStandaloneQuery</a></strong>(java.util.List&lt;org.json.simple.JSONObject&gt;&nbsp;dataElements,
                      java.lang.String&nbsp;queryType,
                      java.util.List&lt;java.lang.String&gt;&nbsp;selectors,
                      int&nbsp;numThreads,
                      boolean&nbsp;testFalsePositive)</code>&nbsp;</td>
</tr>
</tbody>
</table>
</li>
</ul>
</li>
</ul>
</div>
<!-- ======= 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><a href="../../../../../org/apache/pirk/utils/PIRException.html" title="class in org.apache.pirk.utils">Class</a></li>
<li class="navBarCell1Rev">Use</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>Prev</li>
<li>Next</li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/pirk/utils/class-use/PIRException.html" target="_top">Frames</a></li>
<li><a href="PIRException.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>
<a name="skip-navbar_bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>
