<!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 (1.8.0_265) on Tue Aug 25 19:30:51 UTC 2020 -->
<title>QuerySpecification (MetaCat API)</title>
<meta name="date" content="2020-08-25">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="QuerySpecification (MetaCat API)";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":9,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":9,"i17":10,"i18":9,"i19":9,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/QuerySpecification.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../edu/ucsb/nceas/metacat/QueryResultTableBuilder.html" title="class in edu.ucsb.nceas.metacat"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../edu/ucsb/nceas/metacat/QueryTerm.html" title="class in edu.ucsb.nceas.metacat"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?edu/ucsb/nceas/metacat/QuerySpecification.html" target="_top">Frames</a></li>
<li><a href="QuerySpecification.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">edu.ucsb.nceas.metacat</div>
<h2 title="Class QuerySpecification" class="title">Class QuerySpecification</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.xml.sax.helpers.DefaultHandler</li>
<li>
<ul class="inheritance">
<li>edu.ucsb.nceas.metacat.QuerySpecification</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd>org.xml.sax.ContentHandler, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler</dd>
</dl>
<hr>
<br>
<pre>public class <span class="typeNameLabel">QuerySpecification</span>
extends org.xml.sax.helpers.DefaultHandler</pre>
<div class="block">A Class that represents a structured query, and can be constructed from an
 XML serialization conforming to</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><code>The printSQL() method can be used to print a SQL
      serialization of the query.</code></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!--   -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/QuerySpecification.html#ATTRIBUTESYMBOL">ATTRIBUTESYMBOL</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static char</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/QuerySpecification.html#PREDICATE_END">PREDICATE_END</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static char</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/QuerySpecification.html#PREDICATE_START">PREDICATE_START</a></span></code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!--   -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/QuerySpecification.html#QuerySpecification-java.io.Reader-java.lang.String-java.lang.String-">QuerySpecification</a></span>(java.io.Reader&nbsp;queryspec,
                  java.lang.String&nbsp;parserName,
                  java.lang.String&nbsp;accNumberSeparator)</code>
<div class="block">construct an instance of the QuerySpecification class</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/QuerySpecification.html#QuerySpecification-java.lang.String-">QuerySpecification</a></span>(java.lang.String&nbsp;accNumberSeparator)</code>
<div class="block">construct an instance of the QuerySpecification class which don't need
 to parser a xml document</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/QuerySpecification.html#QuerySpecification-java.lang.String-java.lang.String-java.lang.String-">QuerySpecification</a></span>(java.lang.String&nbsp;queryspec,
                  java.lang.String&nbsp;parserName,
                  java.lang.String&nbsp;accNumberSeparator)</code>
<div class="block">construct an instance of the QuerySpecification class</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/QuerySpecification.html#characters-char:A-int-int-">characters</a></span>(char[]&nbsp;ch,
          int&nbsp;start,
          int&nbsp;length)</code>
<div class="block">callback method used by the SAX Parser when the text sequences of an xml
 stream are detected.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/QuerySpecification.html#containsExtendedSQL--">containsExtendedSQL</a></span>()</code>
<div class="block">Returns true if the parsed query contains and extended xml query (i.e.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/QuerySpecification.html#endElement-java.lang.String-java.lang.String-java.lang.String-">endElement</a></span>(java.lang.String&nbsp;uri,
          java.lang.String&nbsp;localName,
          java.lang.String&nbsp;qName)</code>
<div class="block">callback method used by the SAX Parser when the end tag of an element is
 detected.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/QuerySpecification.html#getAccessQuery--">getAccessQuery</a></span>()</code>
<div class="block">Method to append a access control query to SQL.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/QuerySpecification.html#getAttributeName-java.lang.String-">getAttributeName</a></span>(java.lang.String&nbsp;path)</code>
<div class="block">A method to get attribute name from path</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>java.util.Vector</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/QuerySpecification.html#getFilterDocList--">getFilterDocList</a></span>()</code>
<div class="block">Accessor method to return a vector of the filter doc types as defined in
 the &lt;filterdoctype&gt; tag in the pathquery dtd.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/QuerySpecification.html#getIdentifier--">getIdentifier</a></span>()</code>
<div class="block">Accessor method to return the identifier of this Query</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/QuerySpecification.html#getNormalizedXMLQuery--">getNormalizedXMLQuery</a></span>()</code>
<div class="block">Gets normailized query string in xml format, which can be transformed
 to html</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>java.util.Vector</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/QuerySpecification.html#getOwnerList--">getOwnerList</a></span>()</code>
<div class="block">Accessor method to return a vector of the owner fields as defined in the
 &lt;owner&gt; tag in the pathquery dtd.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code><a href="../../../../edu/ucsb/nceas/metacat/QueryGroup.html" title="class in edu.ucsb.nceas.metacat">QueryGroup</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/QuerySpecification.html#getQueryGroup--">getQueryGroup</a></span>()</code>
<div class="block">get the QueryGroup used to express query constraints</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/QuerySpecification.html#getQueryTitle--">getQueryTitle</a></span>()</code>
<div class="block">Accessor method to return the title of this Query</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>java.util.Vector</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/QuerySpecification.html#getReturnDocList--">getReturnDocList</a></span>()</code>
<div class="block">Accessor method to return a vector of the return document types as
 defined in the &lt;returndoctype&gt; tag in the pathquery dtd.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>java.util.Vector</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/QuerySpecification.html#getReturnFieldList--">getReturnFieldList</a></span>()</code>
<div class="block">Accessor method to return a vector of the extended return fields as
 defined in the &lt;returnfield&gt; tag in the pathquery dtd.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/QuerySpecification.html#getSortedReturnFieldString--">getSortedReturnFieldString</a></span>()</code>
<div class="block">Method to return a String generated after sorting the returnFieldList
 Vector</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/QuerySpecification.html#handleReturnField-java.lang.String-">handleReturnField</a></span>(java.lang.String&nbsp;inputString)</code>
<div class="block">Method to handle return field.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/QuerySpecification.html#isPercentageSearch--">isPercentageSearch</a></span>()</code>
<div class="block">Method to indicate this query is a percentage search</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/QuerySpecification.html#newPathExpressionWithOutAttribute-java.lang.String-">newPathExpressionWithOutAttribute</a></span>(java.lang.String&nbsp;pathExpression)</code>
<div class="block">A method to get rid of attribute part in path expression</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/QuerySpecification.html#printExtendedSQL-java.lang.String-boolean-java.util.List-java.util.List-">printExtendedSQL</a></span>(java.lang.String&nbsp;doclist,
                boolean&nbsp;useXMLIndex,
                java.util.List&lt;java.lang.Object&gt;&nbsp;allValues,
                java.util.List&lt;java.lang.Object&gt;&nbsp;docListValues)</code>
<div class="block">This method prints sql based upon the &lt;returnfield&gt; tag in the
 pathquery document.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/QuerySpecification.html#printGetDocByDoctypeSQL-java.lang.String-">printGetDocByDoctypeSQL</a></span>(java.lang.String&nbsp;docid)</code>&nbsp;</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/QuerySpecification.html#printRelationSQL-java.lang.String-">printRelationSQL</a></span>(java.lang.String&nbsp;docid)</code>&nbsp;</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/QuerySpecification.html#printSQL-boolean-java.util.List-">printSQL</a></span>(boolean&nbsp;useXMLIndex,
        java.util.List&lt;java.lang.Object&gt;&nbsp;parameterValues)</code>
<div class="block">create a SQL serialization of the query that this instance represents</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/QuerySpecification.html#setContainsExtenedSQL-boolean-">setContainsExtenedSQL</a></span>(boolean&nbsp;hasExtenedQuery)</code>
<div class="block">set if this query sepcification has extendQuery(has return doc type or
 not)</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/QuerySpecification.html#setFilterDocList-java.util.Vector-">setFilterDocList</a></span>(java.util.Vector&nbsp;filterDocList)</code>
<div class="block">method to set the list of filter docs of this query</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/QuerySpecification.html#setGroup-java.lang.String:A-">setGroup</a></span>(java.lang.String[]&nbsp;myGroup)</code>
<div class="block">Method to set user group</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/QuerySpecification.html#setIdentifier-java.lang.String-">setIdentifier</a></span>(java.lang.String&nbsp;id)</code>
<div class="block">method to set the identifier of this query</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/QuerySpecification.html#setOwnerList-java.util.Vector-">setOwnerList</a></span>(java.util.Vector&nbsp;ownerList)</code>
<div class="block">method to set the list of owners used to constrain this query</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/QuerySpecification.html#setQueryGroup-edu.ucsb.nceas.metacat.QueryGroup-">setQueryGroup</a></span>(<a href="../../../../edu/ucsb/nceas/metacat/QueryGroup.html" title="class in edu.ucsb.nceas.metacat">QueryGroup</a>&nbsp;group)</code>
<div class="block">set the querygroup</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/QuerySpecification.html#setQueryTitle-java.lang.String-">setQueryTitle</a></span>(java.lang.String&nbsp;title)</code>
<div class="block">method to set the title of this query</div>
</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/QuerySpecification.html#setReturnDocList-java.util.Vector-">setReturnDocList</a></span>(java.util.Vector&nbsp;returnDocList)</code>
<div class="block">method to set the list of return docs of this query</div>
</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/QuerySpecification.html#setReturnFieldList-java.util.Vector-">setReturnFieldList</a></span>(java.util.Vector&nbsp;returnFieldList)</code>
<div class="block">method to set the list of fields to be returned by this query</div>
</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/QuerySpecification.html#setUserName-java.lang.String-">setUserName</a></span>(java.lang.String&nbsp;myName)</code>
<div class="block">Method to set user name</div>
</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/QuerySpecification.html#startElement-java.lang.String-java.lang.String-java.lang.String-org.xml.sax.Attributes-">startElement</a></span>(java.lang.String&nbsp;uri,
            java.lang.String&nbsp;localName,
            java.lang.String&nbsp;qName,
            org.xml.sax.Attributes&nbsp;atts)</code>
<div class="block">callback method used by the SAX Parser when the start tag of an element
 is detected.</div>
</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../edu/ucsb/nceas/metacat/QuerySpecification.html#toString--">toString</a></span>()</code>
<div class="block">create a String description of the query that this instance represents.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.xml.sax.helpers.DefaultHandler">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;org.xml.sax.helpers.DefaultHandler</h3>
<code>endDocument, endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, setDocumentLocator, skippedEntity, startDocument, startPrefixMapping, unparsedEntityDecl, warning</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!--   -->
</a>
<h3>Field Detail</h3>
<a name="ATTRIBUTESYMBOL">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ATTRIBUTESYMBOL</h4>
<pre>public static final&nbsp;java.lang.String ATTRIBUTESYMBOL</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#edu.ucsb.nceas.metacat.QuerySpecification.ATTRIBUTESYMBOL">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="PREDICATE_START">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>PREDICATE_START</h4>
<pre>public static final&nbsp;char PREDICATE_START</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#edu.ucsb.nceas.metacat.QuerySpecification.PREDICATE_START">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="PREDICATE_END">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>PREDICATE_END</h4>
<pre>public static final&nbsp;char PREDICATE_END</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#edu.ucsb.nceas.metacat.QuerySpecification.PREDICATE_END">Constant Field Values</a></dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!--   -->
</a>
<h3>Constructor Detail</h3>
<a name="QuerySpecification-java.io.Reader-java.lang.String-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>QuerySpecification</h4>
<pre>public&nbsp;QuerySpecification(java.io.Reader&nbsp;queryspec,
                          java.lang.String&nbsp;parserName,
                          java.lang.String&nbsp;accNumberSeparator)
                   throws java.io.IOException</pre>
<div class="block">construct an instance of the QuerySpecification class</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>queryspec</code> - the XML representation of the query (should conform to
            pathquery.dtd) as a Reader</dd>
<dd><code>parserName</code> - the fully qualified name of a Java Class implementing the
            org.xml.sax.XMLReader interface</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code></dd>
</dl>
</li>
</ul>
<a name="QuerySpecification-java.lang.String-java.lang.String-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>QuerySpecification</h4>
<pre>public&nbsp;QuerySpecification(java.lang.String&nbsp;queryspec,
                          java.lang.String&nbsp;parserName,
                          java.lang.String&nbsp;accNumberSeparator)
                   throws java.io.IOException</pre>
<div class="block">construct an instance of the QuerySpecification class</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>queryspec</code> - the XML representation of the query (should conform to
            pathquery.dtd) as a String</dd>
<dd><code>parserName</code> - the fully qualified name of a Java Class implementing the
            org.xml.sax.Parser interface</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code></dd>
</dl>
</li>
</ul>
<a name="QuerySpecification-java.lang.String-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>QuerySpecification</h4>
<pre>public&nbsp;QuerySpecification(java.lang.String&nbsp;accNumberSeparator)
                   throws java.io.IOException</pre>
<div class="block">construct an instance of the QuerySpecification class which don't need
 to parser a xml document</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>accNumberSeparator</code> - the separator between doc version</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code></dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="setUserName-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setUserName</h4>
<pre>public&nbsp;void&nbsp;setUserName(java.lang.String&nbsp;myName)</pre>
<div class="block">Method to set user name</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>myName</code> - the user name</dd>
</dl>
</li>
</ul>
<a name="setGroup-java.lang.String:A-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setGroup</h4>
<pre>public&nbsp;void&nbsp;setGroup(java.lang.String[]&nbsp;myGroup)</pre>
<div class="block">Method to set user group</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>myGroup</code> - the user group</dd>
</dl>
</li>
</ul>
<a name="isPercentageSearch--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isPercentageSearch</h4>
<pre>public&nbsp;boolean&nbsp;isPercentageSearch()</pre>
<div class="block">Method to indicate this query is a percentage search</div>
</li>
</ul>
<a name="getAccessQuery--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAccessQuery</h4>
<pre>public&nbsp;java.lang.String&nbsp;getAccessQuery()</pre>
<div class="block">Method to append a access control query to SQL. So in DBQuery class, we
 can get docid from both user specified query and access control query.
 We don't need to checking permission after we get the doclist. It will
 be good to performance</div>
</li>
</ul>
<a name="containsExtendedSQL--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>containsExtendedSQL</h4>
<pre>public&nbsp;boolean&nbsp;containsExtendedSQL()</pre>
<div class="block">Returns true if the parsed query contains and extended xml query (i.e.
 there is at least one &lt;returnfield&gt; in the pathquery document)</div>
</li>
</ul>
<a name="getIdentifier--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getIdentifier</h4>
<pre>public&nbsp;java.lang.String&nbsp;getIdentifier()</pre>
<div class="block">Accessor method to return the identifier of this Query</div>
</li>
</ul>
<a name="setIdentifier-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setIdentifier</h4>
<pre>public&nbsp;void&nbsp;setIdentifier(java.lang.String&nbsp;id)</pre>
<div class="block">method to set the identifier of this query</div>
</li>
</ul>
<a name="getQueryTitle--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getQueryTitle</h4>
<pre>public&nbsp;java.lang.String&nbsp;getQueryTitle()</pre>
<div class="block">Accessor method to return the title of this Query</div>
</li>
</ul>
<a name="setQueryTitle-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setQueryTitle</h4>
<pre>public&nbsp;void&nbsp;setQueryTitle(java.lang.String&nbsp;title)</pre>
<div class="block">method to set the title of this query</div>
</li>
</ul>
<a name="getReturnDocList--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getReturnDocList</h4>
<pre>public&nbsp;java.util.Vector&nbsp;getReturnDocList()</pre>
<div class="block">Accessor method to return a vector of the return document types as
 defined in the &lt;returndoctype&gt; tag in the pathquery dtd.</div>
</li>
</ul>
<a name="setReturnDocList-java.util.Vector-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setReturnDocList</h4>
<pre>public&nbsp;void&nbsp;setReturnDocList(java.util.Vector&nbsp;returnDocList)</pre>
<div class="block">method to set the list of return docs of this query</div>
</li>
</ul>
<a name="getFilterDocList--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getFilterDocList</h4>
<pre>public&nbsp;java.util.Vector&nbsp;getFilterDocList()</pre>
<div class="block">Accessor method to return a vector of the filter doc types as defined in
 the &lt;filterdoctype&gt; tag in the pathquery dtd.</div>
</li>
</ul>
<a name="setFilterDocList-java.util.Vector-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setFilterDocList</h4>
<pre>public&nbsp;void&nbsp;setFilterDocList(java.util.Vector&nbsp;filterDocList)</pre>
<div class="block">method to set the list of filter docs of this query</div>
</li>
</ul>
<a name="getReturnFieldList--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getReturnFieldList</h4>
<pre>public&nbsp;java.util.Vector&nbsp;getReturnFieldList()</pre>
<div class="block">Accessor method to return a vector of the extended return fields as
 defined in the &lt;returnfield&gt; tag in the pathquery dtd.</div>
</li>
</ul>
<a name="setReturnFieldList-java.util.Vector-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setReturnFieldList</h4>
<pre>public&nbsp;void&nbsp;setReturnFieldList(java.util.Vector&nbsp;returnFieldList)</pre>
<div class="block">method to set the list of fields to be returned by this query</div>
</li>
</ul>
<a name="getOwnerList--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getOwnerList</h4>
<pre>public&nbsp;java.util.Vector&nbsp;getOwnerList()</pre>
<div class="block">Accessor method to return a vector of the owner fields as defined in the
 &lt;owner&gt; tag in the pathquery dtd.</div>
</li>
</ul>
<a name="setOwnerList-java.util.Vector-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setOwnerList</h4>
<pre>public&nbsp;void&nbsp;setOwnerList(java.util.Vector&nbsp;ownerList)</pre>
<div class="block">method to set the list of owners used to constrain this query</div>
</li>
</ul>
<a name="getQueryGroup--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getQueryGroup</h4>
<pre>public&nbsp;<a href="../../../../edu/ucsb/nceas/metacat/QueryGroup.html" title="class in edu.ucsb.nceas.metacat">QueryGroup</a>&nbsp;getQueryGroup()</pre>
<div class="block">get the QueryGroup used to express query constraints</div>
</li>
</ul>
<a name="setQueryGroup-edu.ucsb.nceas.metacat.QueryGroup-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setQueryGroup</h4>
<pre>public&nbsp;void&nbsp;setQueryGroup(<a href="../../../../edu/ucsb/nceas/metacat/QueryGroup.html" title="class in edu.ucsb.nceas.metacat">QueryGroup</a>&nbsp;group)</pre>
<div class="block">set the querygroup</div>
</li>
</ul>
<a name="setContainsExtenedSQL-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setContainsExtenedSQL</h4>
<pre>public&nbsp;void&nbsp;setContainsExtenedSQL(boolean&nbsp;hasExtenedQuery)</pre>
<div class="block">set if this query sepcification has extendQuery(has return doc type or
 not)</div>
</li>
</ul>
<a name="startElement-java.lang.String-java.lang.String-java.lang.String-org.xml.sax.Attributes-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>startElement</h4>
<pre>public&nbsp;void&nbsp;startElement(java.lang.String&nbsp;uri,
                         java.lang.String&nbsp;localName,
                         java.lang.String&nbsp;qName,
                         org.xml.sax.Attributes&nbsp;atts)
                  throws org.xml.sax.SAXException</pre>
<div class="block">callback method used by the SAX Parser when the start tag of an element
 is detected. Used in this context to parse and store the query
 information in class variables.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>startElement</code>&nbsp;in interface&nbsp;<code>org.xml.sax.ContentHandler</code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>startElement</code>&nbsp;in class&nbsp;<code>org.xml.sax.helpers.DefaultHandler</code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.xml.sax.SAXException</code></dd>
</dl>
</li>
</ul>
<a name="endElement-java.lang.String-java.lang.String-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>endElement</h4>
<pre>public&nbsp;void&nbsp;endElement(java.lang.String&nbsp;uri,
                       java.lang.String&nbsp;localName,
                       java.lang.String&nbsp;qName)
                throws org.xml.sax.SAXException</pre>
<div class="block">callback method used by the SAX Parser when the end tag of an element is
 detected. Used in this context to parse and store the query information
 in class variables.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>endElement</code>&nbsp;in interface&nbsp;<code>org.xml.sax.ContentHandler</code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>endElement</code>&nbsp;in class&nbsp;<code>org.xml.sax.helpers.DefaultHandler</code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.xml.sax.SAXException</code></dd>
</dl>
</li>
</ul>
<a name="getNormalizedXMLQuery--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNormalizedXMLQuery</h4>
<pre>public&nbsp;java.lang.String&nbsp;getNormalizedXMLQuery()</pre>
<div class="block">Gets normailized query string in xml format, which can be transformed
 to html</div>
</li>
</ul>
<a name="characters-char:A-int-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>characters</h4>
<pre>public&nbsp;void&nbsp;characters(char[]&nbsp;ch,
                       int&nbsp;start,
                       int&nbsp;length)</pre>
<div class="block">callback method used by the SAX Parser when the text sequences of an xml
 stream are detected. Used in this context to parse and store the query
 information in class variables.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>characters</code>&nbsp;in interface&nbsp;<code>org.xml.sax.ContentHandler</code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>characters</code>&nbsp;in class&nbsp;<code>org.xml.sax.helpers.DefaultHandler</code></dd>
</dl>
</li>
</ul>
<a name="handleReturnField-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handleReturnField</h4>
<pre>public&nbsp;void&nbsp;handleReturnField(java.lang.String&nbsp;inputString)</pre>
<div class="block">Method to handle return field. It will be callied in ecogrid part</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>inputString</code> - </dd>
</dl>
</li>
</ul>
<a name="printSQL-boolean-java.util.List-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>printSQL</h4>
<pre>public&nbsp;java.lang.String&nbsp;printSQL(boolean&nbsp;useXMLIndex,
                                 java.util.List&lt;java.lang.Object&gt;&nbsp;parameterValues)</pre>
<div class="block">create a SQL serialization of the query that this instance represents</div>
</li>
</ul>
<a name="printExtendedSQL-java.lang.String-boolean-java.util.List-java.util.List-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>printExtendedSQL</h4>
<pre>public&nbsp;java.lang.String&nbsp;printExtendedSQL(java.lang.String&nbsp;doclist,
                                         boolean&nbsp;useXMLIndex,
                                         java.util.List&lt;java.lang.Object&gt;&nbsp;allValues,
                                         java.util.List&lt;java.lang.Object&gt;&nbsp;docListValues)</pre>
<div class="block">This method prints sql based upon the &lt;returnfield&gt; tag in the
 pathquery document. This allows for customization of the returned fields.
 If the boolean useXMLIndex paramter is false, it uses a recursive query on
 xml_nodes to find the fields to be included by their path expression, and
 avoids the use of the xml_index table.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>doclist</code> - the list of document ids to search</dd>
<dd><code>unaccessableNodePair</code> - the node pairs (start id and end id) which
            this user should not access</dd>
<dd><code>useXMLIndex</code> - a boolean flag indicating whether to search using
            xml_index</dd>
</dl>
</li>
</ul>
<a name="getSortedReturnFieldString--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSortedReturnFieldString</h4>
<pre>public&nbsp;java.lang.String&nbsp;getSortedReturnFieldString()</pre>
<div class="block">Method to return a String generated after sorting the returnFieldList
 Vector</div>
</li>
</ul>
<a name="printRelationSQL-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>printRelationSQL</h4>
<pre>public static&nbsp;java.lang.String&nbsp;printRelationSQL(java.lang.String&nbsp;docid)</pre>
</li>
</ul>
<a name="printGetDocByDoctypeSQL-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>printGetDocByDoctypeSQL</h4>
<pre>public static&nbsp;java.lang.String&nbsp;printGetDocByDoctypeSQL(java.lang.String&nbsp;docid)</pre>
</li>
</ul>
<a name="toString--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toString</h4>
<pre>public&nbsp;java.lang.String&nbsp;toString()</pre>
<div class="block">create a String description of the query that this instance represents.
 This should become a way to get the XML serialization of the query.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>toString</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></dd>
</dl>
</li>
</ul>
<a name="newPathExpressionWithOutAttribute-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>newPathExpressionWithOutAttribute</h4>
<pre>public static&nbsp;java.lang.String&nbsp;newPathExpressionWithOutAttribute(java.lang.String&nbsp;pathExpression)</pre>
<div class="block">A method to get rid of attribute part in path expression</div>
</li>
</ul>
<a name="getAttributeName-java.lang.String-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getAttributeName</h4>
<pre>public static&nbsp;java.lang.String&nbsp;getAttributeName(java.lang.String&nbsp;path)</pre>
<div class="block">A method to get attribute name from path</div>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/QuerySpecification.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../edu/ucsb/nceas/metacat/QueryResultTableBuilder.html" title="class in edu.ucsb.nceas.metacat"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../edu/ucsb/nceas/metacat/QueryTerm.html" title="class in edu.ucsb.nceas.metacat"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?edu/ucsb/nceas/metacat/QuerySpecification.html" target="_top">Frames</a></li>
<li><a href="QuerySpecification.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small><i>Copyright © 2020 Regents of the University of California. All Rights Reserved.</i></small></p>
</body>
</html>