blob: 7639eb8b5702cbb64e5eab0167ba7b927c5680e1 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (11.0.2) on Wed Apr 22 10:19:16 CDT 2020 -->
<title>JPQLQueryContext (EclipseLink 3.0.0, API Reference)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2020-04-22">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../../../jquery/jquery-3.3.1.js"></script>
<script type="text/javascript" src="../../../../../../jquery/jquery-migrate-3.0.1.js"></script>
<script type="text/javascript" src="../../../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="JPQLQueryContext (EclipseLink 3.0.0, API Reference)";
}
}
catch(err) {
}
//-->
var data = {"i0":10,"i1":10,"i2":10,"i3":6,"i4":6,"i5":6,"i6":10,"i7":6,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"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,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10,"i55":10,"i56":10,"i57":10,"i58":10,"i59":10,"i60":10,"i61":10,"i62":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</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 class="aboutLanguage">EclipseLink 3.0.0, API Reference</div>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</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>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&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 id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.eclipse.persistence.jpa.jpql.tools</a></div>
<h2 title="Class JPQLQueryContext" class="title">Class JPQLQueryContext</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>org.eclipse.persistence.jpa.jpql.tools.JPQLQueryContext</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><code><a href="DefaultJPQLQueryContext.html" title="class in org.eclipse.persistence.jpa.jpql.tools">DefaultJPQLQueryContext</a></code>, <code><a href="EclipseLinkJPQLQueryContext.html" title="class in org.eclipse.persistence.jpa.jpql.tools">EclipseLinkJPQLQueryContext</a></code></dd>
</dl>
<hr>
<pre>public abstract class <span class="typeNameLabel">JPQLQueryContext</span>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></pre>
<div class="block">This context is used to store information related to the JPQL query.
<pre><code> <a href="spi/IQuery.html" title="interface in org.eclipse.persistence.jpa.jpql.tools.spi"><code>IQuery</code></a> externalQuery = ...;
JPQLQueryContext context = new JPQLQueryContext(DefaultJPQLGrammar.instance());
context.setQuery(query);</code></pre>
If the JPQL query is already parsed, then the context can use it and it needs to be set before
setting the <a href="spi/IQuery.html" title="interface in org.eclipse.persistence.jpa.jpql.tools.spi"><code>IQuery</code></a>:
<pre><code> <a href="../parser/JPQLExpression.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>JPQLExpression</code></a> jpqlExpression = ...;
JPQLQueryContext context = new JPQLQueryContext(DefaultJPQLGrammar.instance());
context.setJPQLExpression(jpqlExpression);
context.setQuery(query);</code></pre>
<p>
Provisional API: This interface is part of an interim API that is still under development and
expected to change significantly before reaching stability. It is available at this early stage
to solicit feedback from pioneering adopters on the understanding that any code that uses this
API will almost certainly be broken (repeatedly) as the API evolves.</div>
<dl>
<dt><span class="simpleTagLabel">Version:</span></dt>
<dd>2.5</dd>
<dt><span class="simpleTagLabel">Author:</span></dt>
<dd>Pascal Filion</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.3</dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="JPQLQueryContext.InputParameterVisitor.html" title="class in org.eclipse.persistence.jpa.jpql.tools">JPQLQueryContext.InputParameterVisitor</a></span></code></th>
<td class="colLast">
<div class="block">This visitor is responsible to find the <a href="../parser/InputParameter.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>InputParameters</code></a> with a certain
parameter name.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected static class&nbsp;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="JPQLQueryContext.QueryExpressionVisitor.html" title="class in org.eclipse.persistence.jpa.jpql.tools">JPQLQueryContext.QueryExpressionVisitor</a></span></code></th>
<td class="colLast">
<div class="block">This visitor is responsible to retrieve the <a href="../parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> that is the beginning of a
query.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- =========== FIELD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <a href="JPQLQueryContext.html" title="class in org.eclipse.persistence.jpa.jpql.tools">JPQLQueryContext</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#currentContext">currentContext</a></span></code></th>
<td class="colLast">
<div class="block">The current <a href="JPQLQueryContext.html" title="class in org.eclipse.persistence.jpa.jpql.tools"><code>JPQLQueryContext</code></a> is the context used for the current query or subquery.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected <a href="JPQLQueryContext.html" title="class in org.eclipse.persistence.jpa.jpql.tools">JPQLQueryContext</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#parent">parent</a></span></code></th>
<td class="colLast">
<div class="block">When this context is a sub-context used for a subquery, then this is the context for the
parent query.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier</th>
<th class="colSecond" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>&nbsp;</code></td>
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.eclipse.persistence.jpa.jpql.parser.JPQLGrammar)">JPQLQueryContext</a></span>&#8203;(<a href="../parser/JPQLGrammar.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">JPQLGrammar</a>&nbsp;jpqlGrammar)</code></th>
<td class="colLast">
<div class="block">Creates a new <code>JPQLQueryContext</code>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected </code></td>
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(org.eclipse.persistence.jpa.jpql.tools.JPQLQueryContext,org.eclipse.persistence.jpa.jpql.parser.Expression)">JPQLQueryContext</a></span>&#8203;(<a href="JPQLQueryContext.html" title="class in org.eclipse.persistence.jpa.jpql.tools">JPQLQueryContext</a>&nbsp;parent,
<a href="../parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&nbsp;currentQuery)</code></th>
<td class="colLast">
<div class="block">Creates a new sub-<code>JPQLQueryContext</code>.</div>
</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</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="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract 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="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>protected <a href="resolver/DeclarationResolver.html" title="class in org.eclipse.persistence.jpa.jpql.tools.resolver">DeclarationResolver</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#buildDeclarationResolver()">buildDeclarationResolver</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>protected <a href="resolver/DeclarationResolver.html" title="class in org.eclipse.persistence.jpa.jpql.tools.resolver">DeclarationResolver</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#buildDeclarationResolver(org.eclipse.persistence.jpa.jpql.tools.resolver.DeclarationResolver)">buildDeclarationResolver</a></span>&#8203;(<a href="resolver/DeclarationResolver.html" title="class in org.eclipse.persistence.jpa.jpql.tools.resolver">DeclarationResolver</a>&nbsp;parent)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>protected <a href="JPQLQueryContext.InputParameterVisitor.html" title="class in org.eclipse.persistence.jpa.jpql.tools">JPQLQueryContext.InputParameterVisitor</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#buildInputParameter()">buildInputParameter</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>protected abstract <a href="JPQLQueryContext.html" title="class in org.eclipse.persistence.jpa.jpql.tools">JPQLQueryContext</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#buildJPQLQueryContext(org.eclipse.persistence.jpa.jpql.tools.JPQLQueryContext,org.eclipse.persistence.jpa.jpql.parser.Expression)">buildJPQLQueryContext</a></span>&#8203;(<a href="JPQLQueryContext.html" title="class in org.eclipse.persistence.jpa.jpql.tools">JPQLQueryContext</a>&nbsp;currentContext,
<a href="../parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&nbsp;currentQuery)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>protected abstract <a href="../LiteralVisitor.html" title="class in org.eclipse.persistence.jpa.jpql">LiteralVisitor</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#buildLiteralVisitor()">buildLiteralVisitor</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>protected abstract <a href="../ParameterTypeVisitor.html" title="class in org.eclipse.persistence.jpa.jpql">ParameterTypeVisitor</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#buildParameterTypeVisitor()">buildParameterTypeVisitor</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>protected <a href="JPQLQueryContext.QueryExpressionVisitor.html" title="class in org.eclipse.persistence.jpa.jpql.tools">JPQLQueryContext.QueryExpressionVisitor</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#buildQueryExpressionVisitor()">buildQueryExpressionVisitor</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>protected abstract <a href="resolver/ResolverBuilder.html" title="class in org.eclipse.persistence.jpa.jpql.tools.resolver">ResolverBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#buildResolverBuilder()">buildResolverBuilder</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#convertUnqualifiedDeclaration(org.eclipse.persistence.jpa.jpql.tools.resolver.Declaration)">convertUnqualifiedDeclaration</a></span>&#8203;(<a href="resolver/Declaration.html" title="class in org.eclipse.persistence.jpa.jpql.tools.resolver">Declaration</a>&nbsp;declaration)</code></th>
<td class="colLast">
<div class="block">Converts the given <a href="resolver/Declaration.html" title="class in org.eclipse.persistence.jpa.jpql.tools.resolver"><code>Declaration</code></a> from being set as a range variable declaration to
a path expression declaration.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#dispose()">dispose</a></span>()</code></th>
<td class="colLast">
<div class="block">Disposes the internal data.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#disposeSubqueryContext()">disposeSubqueryContext</a></span>()</code></th>
<td class="colLast">
<div class="block">Disposes this context, which is the current context being used by a subquery.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../parser/InputParameter.html" title="class in org.eclipse.persistence.jpa.jpql.parser">InputParameter</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#findInputParameters(java.lang.String)">findInputParameters</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;parameterName)</code></th>
<td class="colLast">
<div class="block">Retrieves all the <a href="../parser/InputParameter.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>InputParameters</code></a> with the given parameter name.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code><a href="../parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getActualCurrentQuery()">getActualCurrentQuery</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the current <a href="../parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> being manipulated, which is either the top-level query
or a subquery.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code><a href="resolver/DeclarationResolver.html" title="class in org.eclipse.persistence.jpa.jpql.tools.resolver">DeclarationResolver</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getActualDeclarationResolver()">getActualDeclarationResolver</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the <a href="resolver/DeclarationResolver.html" title="class in org.eclipse.persistence.jpa.jpql.tools.resolver"><code>DeclarationResolver</code></a> of this context and not from the current query's
declaration.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code><a href="JPQLQueryContext.html" title="class in org.eclipse.persistence.jpa.jpql.tools">JPQLQueryContext</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCurrentContext()">getCurrentContext</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the current <a href="JPQLQueryContext.html" title="class in org.eclipse.persistence.jpa.jpql.tools"><code>JPQLQueryContext</code></a>, i.e.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code><a href="../parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getCurrentQuery()">getCurrentQuery</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the current <a href="../parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> being manipulated, which is either the top-level query
or a subquery.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code><a href="resolver/Declaration.html" title="class in org.eclipse.persistence.jpa.jpql.tools.resolver">Declaration</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDeclaration(java.lang.String)">getDeclaration</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;variableName)</code></th>
<td class="colLast">
<div class="block">Retrieves the <a href="resolver/Declaration.html" title="class in org.eclipse.persistence.jpa.jpql.tools.resolver"><code>Declaration</code></a> for which the given variable name is used to navigate to the
"root" object.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code><a href="resolver/DeclarationResolver.html" title="class in org.eclipse.persistence.jpa.jpql.tools.resolver">DeclarationResolver</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDeclarationResolver()">getDeclarationResolver</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the <a href="resolver/DeclarationResolver.html" title="class in org.eclipse.persistence.jpa.jpql.tools.resolver"><code>DeclarationResolver</code></a> of the current query's declaration.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code><a href="resolver/DeclarationResolver.html" title="class in org.eclipse.persistence.jpa.jpql.tools.resolver">DeclarationResolver</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDeclarationResolver(org.eclipse.persistence.jpa.jpql.parser.Expression)">getDeclarationResolver</a></span>&#8203;(<a href="../parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&nbsp;expression)</code></th>
<td class="colLast">
<div class="block">Returns the <a href="resolver/DeclarationResolver.html" title="class in org.eclipse.persistence.jpa.jpql.tools.resolver"><code>DeclarationResolver</code></a> of the current query's declaration.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>protected <a href="resolver/DeclarationResolver.html" title="class in org.eclipse.persistence.jpa.jpql.tools.resolver">DeclarationResolver</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDeclarationResolverImp()">getDeclarationResolverImp</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the <a href="resolver/DeclarationResolver.html" title="class in org.eclipse.persistence.jpa.jpql.tools.resolver"><code>DeclarationResolver</code></a> of the current query's declaration.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="resolver/Declaration.html" title="class in org.eclipse.persistence.jpa.jpql.tools.resolver">Declaration</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getDeclarations()">getDeclarations</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the ordered list of <a href="resolver/Declaration.html" title="class in org.eclipse.persistence.jpa.jpql.tools.resolver"><code>Declarations</code></a>.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code><a href="spi/IType.html" title="interface in org.eclipse.persistence.jpa.jpql.tools.spi">IType</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEnumType(java.lang.String)">getEnumType</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;enumTypeName)</code></th>
<td class="colLast">
<div class="block">Returns the <a href="spi/IType.html" title="interface in org.eclipse.persistence.jpa.jpql.tools.spi"><code>IType</code></a> representing the possible given enum type.</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code><a href="../parser/ExpressionRegistry.html" title="class in org.eclipse.persistence.jpa.jpql.parser">ExpressionRegistry</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getExpressionRegistry()">getExpressionRegistry</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the registry containing the <a href="../parser/JPQLQueryBNF.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>JPQLQueryBNFs</code></a> and the <a href="../parser/ExpressionFactory.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>ExpressionFactories</code></a> that are used to properly parse a JPQL query.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code><a href="../parser/JPQLGrammar.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">JPQLGrammar</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getGrammar()">getGrammar</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the JPQL grammar that will be used to define how to parse a JPQL query.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>protected <a href="JPQLQueryContext.InputParameterVisitor.html" title="class in org.eclipse.persistence.jpa.jpql.tools">JPQLQueryContext.InputParameterVisitor</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getInputParameterVisitor()">getInputParameterVisitor</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code><a href="../JPAVersion.html" title="enum in org.eclipse.persistence.jpa.jpql">JPAVersion</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getJPAVersion()">getJPAVersion</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the version of the Java Persistence to support, which dictates which version of the
JPQL grammar to support.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code><a href="../parser/JPQLExpression.html" title="class in org.eclipse.persistence.jpa.jpql.parser">JPQLExpression</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getJPQLExpression()">getJPQLExpression</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the parsed tree representation of the JPQL query.</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getJPQLQuery()">getJPQLQuery</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the string representation of the JPQL query.</div>
</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>protected <a href="../LiteralVisitor.html" title="class in org.eclipse.persistence.jpa.jpql">LiteralVisitor</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLiteralVisitor()">getLiteralVisitor</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code><a href="spi/IMapping.html" title="interface in org.eclipse.persistence.jpa.jpql.tools.spi">IMapping</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getMapping(org.eclipse.persistence.jpa.jpql.parser.Expression)">getMapping</a></span>&#8203;(<a href="../parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&nbsp;expression)</code></th>
<td class="colLast">
<div class="block">Returns the <a href="spi/IMapping.html" title="interface in org.eclipse.persistence.jpa.jpql.tools.spi"><code>IMapping</code></a> for the field represented by the given <a href="../parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a>.</div>
</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code><a href="spi/IType.html" title="interface in org.eclipse.persistence.jpa.jpql.tools.spi">IType</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getParameterType(org.eclipse.persistence.jpa.jpql.parser.InputParameter)">getParameterType</a></span>&#8203;(<a href="../parser/InputParameter.html" title="class in org.eclipse.persistence.jpa.jpql.parser">InputParameter</a>&nbsp;inputParameter)</code></th>
<td class="colLast">
<div class="block">Retrieves, if it can be determined, the type of the given <a href="../parser/InputParameter.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>InputParameter</code></a>.</div>
</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code>protected <a href="../ParameterTypeVisitor.html" title="class in org.eclipse.persistence.jpa.jpql">ParameterTypeVisitor</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getParameterTypeVisitor()">getParameterTypeVisitor</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code><a href="JPQLQueryContext.html" title="class in org.eclipse.persistence.jpa.jpql.tools">JPQLQueryContext</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getParent()">getParent</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the parent context if the current context is not the root context.</div>
</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code><a href="spi/IManagedTypeProvider.html" title="interface in org.eclipse.persistence.jpa.jpql.tools.spi">IManagedTypeProvider</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getProvider()">getProvider</a></span>()</code></th>
<td class="colLast">
<div class="block">Retrieves the provider of managed types.</div>
</td>
</tr>
<tr id="i34" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getProviderVersion()">getProviderVersion</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the version of the persistence provider.</div>
</td>
</tr>
<tr id="i35" class="rowColor">
<td class="colFirst"><code><a href="spi/IQuery.html" title="interface in org.eclipse.persistence.jpa.jpql.tools.spi">IQuery</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getQuery()">getQuery</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the external form of the JPQL query.</div>
</td>
</tr>
<tr id="i36" class="altColor">
<td class="colFirst"><code><a href="../parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getQueryExpression(org.eclipse.persistence.jpa.jpql.parser.Expression)">getQueryExpression</a></span>&#8203;(<a href="../parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&nbsp;expression)</code></th>
<td class="colLast">
<div class="block">Retrieves the <a href="../parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> representing the query statement (either the top-level query
<a href="../parser/JPQLExpression.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>JPQLExpression</code></a> or the subquery <a href="../parser/SimpleSelectStatement.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>SimpleSelectStatement</code></a>) owning the given <a href="../parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a>.</div>
</td>
</tr>
<tr id="i37" class="rowColor">
<td class="colFirst"><code>protected <a href="JPQLQueryContext.QueryExpressionVisitor.html" title="class in org.eclipse.persistence.jpa.jpql.tools">JPQLQueryContext.QueryExpressionVisitor</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getQueryExpressionVisitor()">getQueryExpressionVisitor</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i38" class="altColor">
<td class="colFirst"><code><a href="resolver/Resolver.html" title="class in org.eclipse.persistence.jpa.jpql.tools.resolver">Resolver</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getResolver(java.lang.String)">getResolver</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;variableName)</code></th>
<td class="colLast">
<div class="block">Retrieves the <a href="resolver/Resolver.html" title="class in org.eclipse.persistence.jpa.jpql.tools.resolver"><code>Resolver</code></a> mapped with the given identification variable.</div>
</td>
</tr>
<tr id="i39" class="rowColor">
<td class="colFirst"><code><a href="resolver/Resolver.html" title="class in org.eclipse.persistence.jpa.jpql.tools.resolver">Resolver</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getResolver(org.eclipse.persistence.jpa.jpql.parser.Expression)">getResolver</a></span>&#8203;(<a href="../parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&nbsp;expression)</code></th>
<td class="colLast">
<div class="block">Creates or retrieved the cached <a href="resolver/Resolver.html" title="class in org.eclipse.persistence.jpa.jpql.tools.resolver"><code>Resolver</code></a> for the given <a href="../parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a>.</div>
</td>
</tr>
<tr id="i40" class="altColor">
<td class="colFirst"><code>protected <a href="resolver/ResolverBuilder.html" title="class in org.eclipse.persistence.jpa.jpql.tools.resolver">ResolverBuilder</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getResolverBuilder()">getResolverBuilder</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i41" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getResultVariables()">getResultVariables</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the variables that got defined in the select expression.</div>
</td>
</tr>
<tr id="i42" class="altColor">
<td class="colFirst"><code><a href="spi/IType.html" title="interface in org.eclipse.persistence.jpa.jpql.tools.spi">IType</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getType(java.lang.Class)">getType</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;type)</code></th>
<td class="colLast">
<div class="block">Retrieves the external type for the given Java type.</div>
</td>
</tr>
<tr id="i43" class="rowColor">
<td class="colFirst"><code><a href="spi/IType.html" title="interface in org.eclipse.persistence.jpa.jpql.tools.spi">IType</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getType(java.lang.String)">getType</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;typeName)</code></th>
<td class="colLast">
<div class="block">Retrieves the external class with the given fully qualified class name.</div>
</td>
</tr>
<tr id="i44" class="altColor">
<td class="colFirst"><code><a href="spi/IType.html" title="interface in org.eclipse.persistence.jpa.jpql.tools.spi">IType</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getType(org.eclipse.persistence.jpa.jpql.parser.Expression)">getType</a></span>&#8203;(<a href="../parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&nbsp;expression)</code></th>
<td class="colLast">
<div class="block">Returns the <a href="spi/IType.html" title="interface in org.eclipse.persistence.jpa.jpql.tools.spi"><code>IType</code></a> of the given <a href="../parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a>.</div>
</td>
</tr>
<tr id="i45" class="rowColor">
<td class="colFirst"><code><a href="spi/ITypeDeclaration.html" title="interface in org.eclipse.persistence.jpa.jpql.tools.spi">ITypeDeclaration</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTypeDeclaration(org.eclipse.persistence.jpa.jpql.parser.Expression)">getTypeDeclaration</a></span>&#8203;(<a href="../parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&nbsp;expression)</code></th>
<td class="colLast">
<div class="block">Returns the <a href="spi/ITypeDeclaration.html" title="interface in org.eclipse.persistence.jpa.jpql.tools.spi"><code>ITypeDeclaration</code></a> of the field handled by this <a href="resolver/Resolver.html" title="class in org.eclipse.persistence.jpa.jpql.tools.resolver"><code>Resolver</code></a>.</div>
</td>
</tr>
<tr id="i46" class="altColor">
<td class="colFirst"><code><a href="TypeHelper.html" title="class in org.eclipse.persistence.jpa.jpql.tools">TypeHelper</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTypeHelper()">getTypeHelper</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns a helper that gives access to the most common <a href="spi/IType.html" title="interface in org.eclipse.persistence.jpa.jpql.tools.spi"><code>types</code></a>.</div>
</td>
</tr>
<tr id="i47" class="rowColor">
<td class="colFirst"><code><a href="spi/ITypeRepository.html" title="interface in org.eclipse.persistence.jpa.jpql.tools.spi">ITypeRepository</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getTypeRepository()">getTypeRepository</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the type repository for the application.</div>
</td>
</tr>
<tr id="i48" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hasJoins()">hasJoins</a></span>()</code></th>
<td class="colLast">
<div class="block">Determines whether the JPQL expression has <b>JOIN</b> expressions.</div>
</td>
</tr>
<tr id="i49" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#initialize(org.eclipse.persistence.jpa.jpql.parser.JPQLGrammar)">initialize</a></span>&#8203;(<a href="../parser/JPQLGrammar.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">JPQLGrammar</a>&nbsp;jpqlGrammar)</code></th>
<td class="colLast">
<div class="block">Initializes this <a href="JPQLQueryContext.html" title="class in org.eclipse.persistence.jpa.jpql.tools"><code>JPQLQueryContext</code></a>.</div>
</td>
</tr>
<tr id="i50" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#initializeRoot()">initializeRoot</a></span>()</code></th>
<td class="colLast">
<div class="block">Initializes the parsed tree representation of the JPQL query if it has not been set before
setting the <a href="spi/IQuery.html" title="interface in org.eclipse.persistence.jpa.jpql.tools.spi"><code>IQuery</code></a>.</div>
</td>
</tr>
<tr id="i51" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isCollectionIdentificationVariable(java.lang.String)">isCollectionIdentificationVariable</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;variableName)</code></th>
<td class="colLast">
<div class="block">Determines whether the given identification variable is defining a join or a collection member
declaration expressions.</div>
</td>
</tr>
<tr id="i52" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isRangeIdentificationVariable(java.lang.String)">isRangeIdentificationVariable</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;variableName)</code></th>
<td class="colLast">
<div class="block">Determines whether the given variable name is an identification variable name used to define
an abstract schema name.</div>
</td>
</tr>
<tr id="i53" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isResultVariable(java.lang.String)">isResultVariable</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;variable)</code></th>
<td class="colLast">
<div class="block">Determines if the given variable is a result variable.</div>
</td>
</tr>
<tr id="i54" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isSubquery()">isSubquery</a></span>()</code></th>
<td class="colLast">
<div class="block">Determines whether this <a href="JPQLQueryContext.html" title="class in org.eclipse.persistence.jpa.jpql.tools"><code>JPQLQueryContext</code></a> currently holds the information of a subquery
or for the top-level query.</div>
</td>
</tr>
<tr id="i55" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isTolerant()">isTolerant</a></span>()</code></th>
<td class="colLast">
<div class="block">Determines if the parser is in tolerant mode or is in fast mode.</div>
</td>
</tr>
<tr id="i56" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#literal(org.eclipse.persistence.jpa.jpql.parser.Expression,org.eclipse.persistence.jpa.jpql.LiteralType)">literal</a></span>&#8203;(<a href="../parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&nbsp;expression,
<a href="../LiteralType.html" title="enum in org.eclipse.persistence.jpa.jpql">LiteralType</a>&nbsp;type)</code></th>
<td class="colLast">
<div class="block">Retrieves the "literal" from the given <a href="../parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a>.</div>
</td>
</tr>
<tr id="i57" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#newSubqueryContext(org.eclipse.persistence.jpa.jpql.parser.Expression)">newSubqueryContext</a></span>&#8203;(<a href="../parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&nbsp;currentQuery)</code></th>
<td class="colLast">
<div class="block">Changes the state of this context to use the given subquery.</div>
</td>
</tr>
<tr id="i58" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setJPQLExpression(org.eclipse.persistence.jpa.jpql.parser.JPQLExpression)">setJPQLExpression</a></span>&#8203;(<a href="../parser/JPQLExpression.html" title="class in org.eclipse.persistence.jpa.jpql.parser">JPQLExpression</a>&nbsp;jpqlExpression)</code></th>
<td class="colLast">
<div class="block">Sets the parsed tree representation of the JPQL query.</div>
</td>
</tr>
<tr id="i59" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setQuery(org.eclipse.persistence.jpa.jpql.tools.spi.IQuery)">setQuery</a></span>&#8203;(<a href="spi/IQuery.html" title="interface in org.eclipse.persistence.jpa.jpql.tools.spi">IQuery</a>&nbsp;query)</code></th>
<td class="colLast">
<div class="block">Sets the external form of the JPQL query, which will be parsed and information will be
extracted for later access.</div>
</td>
</tr>
<tr id="i60" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setTolerant(boolean)">setTolerant</a></span>&#8203;(boolean&nbsp;tolerant)</code></th>
<td class="colLast">
<div class="block">Sets whether the parser is in tolerant mode or is in fast mode.</div>
</td>
</tr>
<tr id="i61" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#store(org.eclipse.persistence.jpa.jpql.tools.JPQLQueryContext,org.eclipse.persistence.jpa.jpql.parser.Expression)">store</a></span>&#8203;(<a href="JPQLQueryContext.html" title="class in org.eclipse.persistence.jpa.jpql.tools">JPQLQueryContext</a>&nbsp;parent,
<a href="../parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&nbsp;currentQuery)</code></th>
<td class="colLast">
<div class="block">Stores the information contained in the given parent into this one.</div>
</td>
</tr>
<tr id="i62" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang" class="externalLink">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang" class="externalLink">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a id="currentContext">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>currentContext</h4>
<pre>protected&nbsp;<a href="JPQLQueryContext.html" title="class in org.eclipse.persistence.jpa.jpql.tools">JPQLQueryContext</a> currentContext</pre>
<div class="block">The current <a href="JPQLQueryContext.html" title="class in org.eclipse.persistence.jpa.jpql.tools"><code>JPQLQueryContext</code></a> is the context used for the current query or subquery.
If the current context is not the global context, then its parent is non <code>null</code>.</div>
</li>
</ul>
<a id="parent">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>parent</h4>
<pre>protected&nbsp;<a href="JPQLQueryContext.html" title="class in org.eclipse.persistence.jpa.jpql.tools">JPQLQueryContext</a> parent</pre>
<div class="block">When this context is a sub-context used for a subquery, then this is the context for the
parent query.</div>
</li>
</ul>
</li>
</ul>
</section>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;(org.eclipse.persistence.jpa.jpql.parser.JPQLGrammar)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>JPQLQueryContext</h4>
<pre>public&nbsp;JPQLQueryContext&#8203;(<a href="../parser/JPQLGrammar.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">JPQLGrammar</a>&nbsp;jpqlGrammar)</pre>
<div class="block">Creates a new <code>JPQLQueryContext</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>jpqlGrammar</code> - The <a href="../parser/JPQLGrammar.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>JPQLGrammar</code></a> defines how to parse a JPQL query</dd>
</dl>
</li>
</ul>
<a id="&lt;init&gt;(org.eclipse.persistence.jpa.jpql.tools.JPQLQueryContext,org.eclipse.persistence.jpa.jpql.parser.Expression)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>JPQLQueryContext</h4>
<pre>protected&nbsp;JPQLQueryContext&#8203;(<a href="JPQLQueryContext.html" title="class in org.eclipse.persistence.jpa.jpql.tools">JPQLQueryContext</a>&nbsp;parent,
<a href="../parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&nbsp;currentQuery)</pre>
<div class="block">Creates a new sub-<code>JPQLQueryContext</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>parent</code> - The parent context</dd>
<dd><code>currentQuery</code> - The parsed tree representation of the subquery</dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="buildDeclarationResolver()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>buildDeclarationResolver</h4>
<pre class="methodSignature">protected&nbsp;<a href="resolver/DeclarationResolver.html" title="class in org.eclipse.persistence.jpa.jpql.tools.resolver">DeclarationResolver</a>&nbsp;buildDeclarationResolver()</pre>
</li>
</ul>
<a id="buildDeclarationResolver(org.eclipse.persistence.jpa.jpql.tools.resolver.DeclarationResolver)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>buildDeclarationResolver</h4>
<pre class="methodSignature">protected&nbsp;<a href="resolver/DeclarationResolver.html" title="class in org.eclipse.persistence.jpa.jpql.tools.resolver">DeclarationResolver</a>&nbsp;buildDeclarationResolver&#8203;(<a href="resolver/DeclarationResolver.html" title="class in org.eclipse.persistence.jpa.jpql.tools.resolver">DeclarationResolver</a>&nbsp;parent)</pre>
</li>
</ul>
<a id="buildInputParameter()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>buildInputParameter</h4>
<pre class="methodSignature">protected&nbsp;<a href="JPQLQueryContext.InputParameterVisitor.html" title="class in org.eclipse.persistence.jpa.jpql.tools">JPQLQueryContext.InputParameterVisitor</a>&nbsp;buildInputParameter()</pre>
</li>
</ul>
<a id="buildJPQLQueryContext(org.eclipse.persistence.jpa.jpql.tools.JPQLQueryContext,org.eclipse.persistence.jpa.jpql.parser.Expression)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>buildJPQLQueryContext</h4>
<pre class="methodSignature">protected abstract&nbsp;<a href="JPQLQueryContext.html" title="class in org.eclipse.persistence.jpa.jpql.tools">JPQLQueryContext</a>&nbsp;buildJPQLQueryContext&#8203;(<a href="JPQLQueryContext.html" title="class in org.eclipse.persistence.jpa.jpql.tools">JPQLQueryContext</a>&nbsp;currentContext,
<a href="../parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&nbsp;currentQuery)</pre>
</li>
</ul>
<a id="buildLiteralVisitor()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>buildLiteralVisitor</h4>
<pre class="methodSignature">protected abstract&nbsp;<a href="../LiteralVisitor.html" title="class in org.eclipse.persistence.jpa.jpql">LiteralVisitor</a>&nbsp;buildLiteralVisitor()</pre>
</li>
</ul>
<a id="buildParameterTypeVisitor()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>buildParameterTypeVisitor</h4>
<pre class="methodSignature">protected abstract&nbsp;<a href="../ParameterTypeVisitor.html" title="class in org.eclipse.persistence.jpa.jpql">ParameterTypeVisitor</a>&nbsp;buildParameterTypeVisitor()</pre>
</li>
</ul>
<a id="buildQueryExpressionVisitor()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>buildQueryExpressionVisitor</h4>
<pre class="methodSignature">protected&nbsp;<a href="JPQLQueryContext.QueryExpressionVisitor.html" title="class in org.eclipse.persistence.jpa.jpql.tools">JPQLQueryContext.QueryExpressionVisitor</a>&nbsp;buildQueryExpressionVisitor()</pre>
</li>
</ul>
<a id="buildResolverBuilder()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>buildResolverBuilder</h4>
<pre class="methodSignature">protected abstract&nbsp;<a href="resolver/ResolverBuilder.html" title="class in org.eclipse.persistence.jpa.jpql.tools.resolver">ResolverBuilder</a>&nbsp;buildResolverBuilder()</pre>
</li>
</ul>
<a id="convertUnqualifiedDeclaration(org.eclipse.persistence.jpa.jpql.tools.resolver.Declaration)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>convertUnqualifiedDeclaration</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;convertUnqualifiedDeclaration&#8203;(<a href="resolver/Declaration.html" title="class in org.eclipse.persistence.jpa.jpql.tools.resolver">Declaration</a>&nbsp;declaration)</pre>
<div class="block">Converts the given <a href="resolver/Declaration.html" title="class in org.eclipse.persistence.jpa.jpql.tools.resolver"><code>Declaration</code></a> from being set as a range variable declaration to
a path expression declaration.
<p>
In this query "<code>UPDATE Employee SET firstName = 'MODIFIED' WHERE (SELECT COUNT(m) FROM
managedEmployees m) &gt; 0</code>" <em>managedEmployees</em> is an unqualified
collection-valued path expression (<code>employee.managedEmployees</code>).</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>declaration</code> - The <a href="resolver/Declaration.html" title="class in org.eclipse.persistence.jpa.jpql.tools.resolver"><code>Declaration</code></a> that was parsed to range over an abstract schema
name but is actually ranging over a path expression</dd>
</dl>
</li>
</ul>
<a id="dispose()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>dispose</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;dispose()</pre>
<div class="block">Disposes the internal data.</div>
</li>
</ul>
<a id="disposeSubqueryContext()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>disposeSubqueryContext</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;disposeSubqueryContext()</pre>
<div class="block">Disposes this context, which is the current context being used by a subquery. Once it is
disposed, any information retrieved will be for the subquery's parent query.</div>
</li>
</ul>
<a id="findInputParameters(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>findInputParameters</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink">Collection</a>&lt;<a href="../parser/InputParameter.html" title="class in org.eclipse.persistence.jpa.jpql.parser">InputParameter</a>&gt;&nbsp;findInputParameters&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;parameterName)</pre>
<div class="block">Retrieves all the <a href="../parser/InputParameter.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>InputParameters</code></a> with the given parameter name.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>parameterName</code> - The parameter used to find the <a href="../parser/InputParameter.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>InputParameters</code></a>
with the same value</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Either the <a href="../parser/InputParameter.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>InputParameters</code></a> that has the given parameter or an
empty collection</dd>
</dl>
</li>
</ul>
<a id="getActualCurrentQuery()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getActualCurrentQuery</h4>
<pre class="methodSignature">public&nbsp;<a href="../parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&nbsp;getActualCurrentQuery()</pre>
<div class="block">Returns the current <a href="../parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> being manipulated, which is either the top-level query
or a subquery.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Either the top-level query or a subquery</dd>
</dl>
</li>
</ul>
<a id="getActualDeclarationResolver()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getActualDeclarationResolver</h4>
<pre class="methodSignature">public&nbsp;<a href="resolver/DeclarationResolver.html" title="class in org.eclipse.persistence.jpa.jpql.tools.resolver">DeclarationResolver</a>&nbsp;getActualDeclarationResolver()</pre>
<div class="block">Returns the <a href="resolver/DeclarationResolver.html" title="class in org.eclipse.persistence.jpa.jpql.tools.resolver"><code>DeclarationResolver</code></a> of this context and not from the current query's
declaration.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The <a href="resolver/DeclarationResolver.html" title="class in org.eclipse.persistence.jpa.jpql.tools.resolver"><code>DeclarationResolver</code></a> for this context</dd>
</dl>
</li>
</ul>
<a id="getCurrentContext()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCurrentContext</h4>
<pre class="methodSignature">public&nbsp;<a href="JPQLQueryContext.html" title="class in org.eclipse.persistence.jpa.jpql.tools">JPQLQueryContext</a>&nbsp;getCurrentContext()</pre>
<div class="block">Returns the current <a href="JPQLQueryContext.html" title="class in org.eclipse.persistence.jpa.jpql.tools"><code>JPQLQueryContext</code></a>, i.e. the context of the query being manipulated,
which can either be the top-level query or a subquery.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The active context</dd>
</dl>
</li>
</ul>
<a id="getCurrentQuery()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCurrentQuery</h4>
<pre class="methodSignature">public&nbsp;<a href="../parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&nbsp;getCurrentQuery()</pre>
<div class="block">Returns the current <a href="../parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> being manipulated, which is either the top-level query
or a subquery.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Either the top-level query or a subquery</dd>
</dl>
</li>
</ul>
<a id="getDeclaration(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDeclaration</h4>
<pre class="methodSignature">public&nbsp;<a href="resolver/Declaration.html" title="class in org.eclipse.persistence.jpa.jpql.tools.resolver">Declaration</a>&nbsp;getDeclaration&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;variableName)</pre>
<div class="block">Retrieves the <a href="resolver/Declaration.html" title="class in org.eclipse.persistence.jpa.jpql.tools.resolver"><code>Declaration</code></a> for which the given variable name is used to navigate to the
"root" object. This does not go up the hierarchy when looking for the <a href="resolver/Declaration.html" title="class in org.eclipse.persistence.jpa.jpql.tools.resolver"><code>Declaration</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>variableName</code> - The name of the identification variable that is used to navigate a "root" object</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The <a href="resolver/Declaration.html" title="class in org.eclipse.persistence.jpa.jpql.tools.resolver"><code>Declaration</code></a> containing the information about the identification variable declaration</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.5</dd>
</dl>
</li>
</ul>
<a id="getDeclarationResolver()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDeclarationResolver</h4>
<pre class="methodSignature">public&nbsp;<a href="resolver/DeclarationResolver.html" title="class in org.eclipse.persistence.jpa.jpql.tools.resolver">DeclarationResolver</a>&nbsp;getDeclarationResolver()</pre>
<div class="block">Returns the <a href="resolver/DeclarationResolver.html" title="class in org.eclipse.persistence.jpa.jpql.tools.resolver"><code>DeclarationResolver</code></a> of the current query's declaration. For a
<b>SELECT</b> query, it contains the information defined in the <b>FROM</b> clause. For
<b>DELETE</b> and <b>UPDATE</b> queries, it contains a single range declaration variable. If
the current query is a subquery, then it contains the information defined in the
<code>FROM</code> clause.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The <a href="resolver/DeclarationResolver.html" title="class in org.eclipse.persistence.jpa.jpql.tools.resolver"><code>DeclarationResolver</code></a> for the current query being visited</dd>
</dl>
</li>
</ul>
<a id="getDeclarationResolver(org.eclipse.persistence.jpa.jpql.parser.Expression)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDeclarationResolver</h4>
<pre class="methodSignature">public&nbsp;<a href="resolver/DeclarationResolver.html" title="class in org.eclipse.persistence.jpa.jpql.tools.resolver">DeclarationResolver</a>&nbsp;getDeclarationResolver&#8203;(<a href="../parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&nbsp;expression)</pre>
<div class="block">Returns the <a href="resolver/DeclarationResolver.html" title="class in org.eclipse.persistence.jpa.jpql.tools.resolver"><code>DeclarationResolver</code></a> of the current query's declaration. For a
<b>SELECT</b> query, it contains the information defined in the <b>FROM</b> clause. For
<b>DELETE</b> and <b>UPDATE</b> queries, it contains a single range variable declaration. If
the current query is a subquery, then it contains the information defined in the subquery
<code>FROM</code> clause.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>expression</code> - The <a href="../parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> that will be used to retrieve its query expression,
i.e. either <a href="../parser/JPQLExpression.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>JPQLExpression</code></a> or <a href="../parser/SimpleSelectStatement.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>SimpleSelectStatement</code></a></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The <a href="resolver/DeclarationResolver.html" title="class in org.eclipse.persistence.jpa.jpql.tools.resolver"><code>DeclarationResolver</code></a> for the current query being visited</dd>
</dl>
</li>
</ul>
<a id="getDeclarationResolverImp()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDeclarationResolverImp</h4>
<pre class="methodSignature">protected&nbsp;<a href="resolver/DeclarationResolver.html" title="class in org.eclipse.persistence.jpa.jpql.tools.resolver">DeclarationResolver</a>&nbsp;getDeclarationResolverImp()</pre>
<div class="block">Returns the <a href="resolver/DeclarationResolver.html" title="class in org.eclipse.persistence.jpa.jpql.tools.resolver"><code>DeclarationResolver</code></a> of the current query's declaration.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The <a href="resolver/DeclarationResolver.html" title="class in org.eclipse.persistence.jpa.jpql.tools.resolver"><code>DeclarationResolver</code></a> for the current query being visited</dd>
</dl>
</li>
</ul>
<a id="getDeclarations()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDeclarations</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util" class="externalLink">List</a>&lt;<a href="resolver/Declaration.html" title="class in org.eclipse.persistence.jpa.jpql.tools.resolver">Declaration</a>&gt;&nbsp;getDeclarations()</pre>
<div class="block">Returns the ordered list of <a href="resolver/Declaration.html" title="class in org.eclipse.persistence.jpa.jpql.tools.resolver"><code>Declarations</code></a>.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The <a href="resolver/Declaration.html" title="class in org.eclipse.persistence.jpa.jpql.tools.resolver"><code>Declarations</code></a> of the current query that was parsed</dd>
</dl>
</li>
</ul>
<a id="getEnumType(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getEnumType</h4>
<pre class="methodSignature">public&nbsp;<a href="spi/IType.html" title="interface in org.eclipse.persistence.jpa.jpql.tools.spi">IType</a>&nbsp;getEnumType&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;enumTypeName)</pre>
<div class="block">Returns the <a href="spi/IType.html" title="interface in org.eclipse.persistence.jpa.jpql.tools.spi"><code>IType</code></a> representing the possible given enum type. If the type name</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>enumTypeName</code> - The fully qualified enum type with the constant</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The external form for the given Enum type</dd>
</dl>
</li>
</ul>
<a id="getExpressionRegistry()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getExpressionRegistry</h4>
<pre class="methodSignature">public&nbsp;<a href="../parser/ExpressionRegistry.html" title="class in org.eclipse.persistence.jpa.jpql.parser">ExpressionRegistry</a>&nbsp;getExpressionRegistry()</pre>
<div class="block">Returns the registry containing the <a href="../parser/JPQLQueryBNF.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>JPQLQueryBNFs</code></a> and the <a href="../parser/ExpressionFactory.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>ExpressionFactories</code></a> that are used to properly parse a JPQL query.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The registry containing the information related to the JPQL grammar</dd>
</dl>
</li>
</ul>
<a id="getGrammar()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getGrammar</h4>
<pre class="methodSignature">public&nbsp;<a href="../parser/JPQLGrammar.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">JPQLGrammar</a>&nbsp;getGrammar()</pre>
<div class="block">Returns the JPQL grammar that will be used to define how to parse a JPQL query.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The grammar that was used to parse this <a href="../parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a></dd>
</dl>
</li>
</ul>
<a id="getInputParameterVisitor()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getInputParameterVisitor</h4>
<pre class="methodSignature">protected&nbsp;<a href="JPQLQueryContext.InputParameterVisitor.html" title="class in org.eclipse.persistence.jpa.jpql.tools">JPQLQueryContext.InputParameterVisitor</a>&nbsp;getInputParameterVisitor()</pre>
</li>
</ul>
<a id="getJPAVersion()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getJPAVersion</h4>
<pre class="methodSignature">public&nbsp;<a href="../JPAVersion.html" title="enum in org.eclipse.persistence.jpa.jpql">JPAVersion</a>&nbsp;getJPAVersion()</pre>
<div class="block">Returns the version of the Java Persistence to support, which dictates which version of the
JPQL grammar to support.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The version of the supported Java Persistence functional specification</dd>
</dl>
</li>
</ul>
<a id="getJPQLExpression()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getJPQLExpression</h4>
<pre class="methodSignature">public&nbsp;<a href="../parser/JPQLExpression.html" title="class in org.eclipse.persistence.jpa.jpql.parser">JPQLExpression</a>&nbsp;getJPQLExpression()</pre>
<div class="block">Returns the parsed tree representation of the JPQL query.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The parsed tree representation of the JPQL query</dd>
</dl>
</li>
</ul>
<a id="getJPQLQuery()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getJPQLQuery</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getJPQLQuery()</pre>
<div class="block">Returns the string representation of the JPQL query.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The string representation of the JPQL query</dd>
</dl>
</li>
</ul>
<a id="getLiteralVisitor()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLiteralVisitor</h4>
<pre class="methodSignature">protected&nbsp;<a href="../LiteralVisitor.html" title="class in org.eclipse.persistence.jpa.jpql">LiteralVisitor</a>&nbsp;getLiteralVisitor()</pre>
</li>
</ul>
<a id="getMapping(org.eclipse.persistence.jpa.jpql.parser.Expression)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMapping</h4>
<pre class="methodSignature">public&nbsp;<a href="spi/IMapping.html" title="interface in org.eclipse.persistence.jpa.jpql.tools.spi">IMapping</a>&nbsp;getMapping&#8203;(<a href="../parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&nbsp;expression)</pre>
<div class="block">Returns the <a href="spi/IMapping.html" title="interface in org.eclipse.persistence.jpa.jpql.tools.spi"><code>IMapping</code></a> for the field represented by the given <a href="../parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>expression</code> - The <a href="../parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> representing a state field path expression or a
collection-valued path expression</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Either the <a href="spi/IMapping.html" title="interface in org.eclipse.persistence.jpa.jpql.tools.spi"><code>IMapping</code></a> or <code>null</code> if none exists</dd>
</dl>
</li>
</ul>
<a id="getParameterType(org.eclipse.persistence.jpa.jpql.parser.InputParameter)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getParameterType</h4>
<pre class="methodSignature">public&nbsp;<a href="spi/IType.html" title="interface in org.eclipse.persistence.jpa.jpql.tools.spi">IType</a>&nbsp;getParameterType&#8203;(<a href="../parser/InputParameter.html" title="class in org.eclipse.persistence.jpa.jpql.parser">InputParameter</a>&nbsp;inputParameter)</pre>
<div class="block">Retrieves, if it can be determined, the type of the given <a href="../parser/InputParameter.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>InputParameter</code></a>. The type
will be guessed based on its location within expression.
<p>
Note: Both named and positional input parameter can be used.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>inputParameter</code> - The <a href="../parser/InputParameter.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>InputParameter</code></a> to retrieve its type</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Either the closest type of the input parameter or <code>null</code> if the type could
not be determined</dd>
</dl>
</li>
</ul>
<a id="getParameterTypeVisitor()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getParameterTypeVisitor</h4>
<pre class="methodSignature">protected&nbsp;<a href="../ParameterTypeVisitor.html" title="class in org.eclipse.persistence.jpa.jpql">ParameterTypeVisitor</a>&nbsp;getParameterTypeVisitor()</pre>
</li>
</ul>
<a id="getParent()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getParent</h4>
<pre class="methodSignature">public&nbsp;<a href="JPQLQueryContext.html" title="class in org.eclipse.persistence.jpa.jpql.tools">JPQLQueryContext</a>&nbsp;getParent()</pre>
<div class="block">Returns the parent context if the current context is not the root context.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The parent context or <code>null</code> if the current context is the root</dd>
</dl>
</li>
</ul>
<a id="getProvider()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getProvider</h4>
<pre class="methodSignature">public&nbsp;<a href="spi/IManagedTypeProvider.html" title="interface in org.eclipse.persistence.jpa.jpql.tools.spi">IManagedTypeProvider</a>&nbsp;getProvider()</pre>
<div class="block">Retrieves the provider of managed types.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The object that has access to the application's managed types.</dd>
</dl>
</li>
</ul>
<a id="getProviderVersion()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getProviderVersion</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;getProviderVersion()</pre>
<div class="block">Returns the version of the persistence provider.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The version of the persistence provider, if one is extending the default JPQL grammar
defined in the Java Persistence specification, otherwise returns an empty string</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.5</dd>
</dl>
</li>
</ul>
<a id="getQuery()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getQuery</h4>
<pre class="methodSignature">public&nbsp;<a href="spi/IQuery.html" title="interface in org.eclipse.persistence.jpa.jpql.tools.spi">IQuery</a>&nbsp;getQuery()</pre>
<div class="block">Returns the external form of the JPQL query.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The external form of the JPQL query</dd>
</dl>
</li>
</ul>
<a id="getQueryExpression(org.eclipse.persistence.jpa.jpql.parser.Expression)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getQueryExpression</h4>
<pre class="methodSignature">public&nbsp;<a href="../parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&nbsp;getQueryExpression&#8203;(<a href="../parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&nbsp;expression)</pre>
<div class="block">Retrieves the <a href="../parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> representing the query statement (either the top-level query
<a href="../parser/JPQLExpression.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>JPQLExpression</code></a> or the subquery <a href="../parser/SimpleSelectStatement.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>SimpleSelectStatement</code></a>) owning the given <a href="../parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>expression</code> - A child of the "root" <a href="../parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> to retrieve</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The query statement that is the "root" parent of the given <a href="../parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a></dd>
</dl>
</li>
</ul>
<a id="getQueryExpressionVisitor()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getQueryExpressionVisitor</h4>
<pre class="methodSignature">protected&nbsp;<a href="JPQLQueryContext.QueryExpressionVisitor.html" title="class in org.eclipse.persistence.jpa.jpql.tools">JPQLQueryContext.QueryExpressionVisitor</a>&nbsp;getQueryExpressionVisitor()</pre>
</li>
</ul>
<a id="getResolver(org.eclipse.persistence.jpa.jpql.parser.Expression)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getResolver</h4>
<pre class="methodSignature">public&nbsp;<a href="resolver/Resolver.html" title="class in org.eclipse.persistence.jpa.jpql.tools.resolver">Resolver</a>&nbsp;getResolver&#8203;(<a href="../parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&nbsp;expression)</pre>
<div class="block">Creates or retrieved the cached <a href="resolver/Resolver.html" title="class in org.eclipse.persistence.jpa.jpql.tools.resolver"><code>Resolver</code></a> for the given <a href="../parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a>. The
<a href="resolver/Resolver.html" title="class in org.eclipse.persistence.jpa.jpql.tools.resolver"><code>Resolver</code></a> can return the <a href="spi/IType.html" title="interface in org.eclipse.persistence.jpa.jpql.tools.spi"><code>IType</code></a> and <a href="spi/ITypeDeclaration.html" title="interface in org.eclipse.persistence.jpa.jpql.tools.spi"><code>ITypeDeclaration</code></a> of the <a href="../parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> and either the <a href="spi/IManagedType.html" title="interface in org.eclipse.persistence.jpa.jpql.tools.spi"><code>IManagedType</code></a>
or the <a href="spi/IMapping.html" title="interface in org.eclipse.persistence.jpa.jpql.tools.spi"><code>IMapping</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>expression</code> - The <a href="../parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> for which its <a href="resolver/Resolver.html" title="class in org.eclipse.persistence.jpa.jpql.tools.resolver"><code>Resolver</code></a> will be retrieved</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><a href="resolver/Resolver.html" title="class in org.eclipse.persistence.jpa.jpql.tools.resolver"><code>Resolver</code></a> for the given <a href="../parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a></dd>
</dl>
</li>
</ul>
<a id="getResolver(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getResolver</h4>
<pre class="methodSignature">public&nbsp;<a href="resolver/Resolver.html" title="class in org.eclipse.persistence.jpa.jpql.tools.resolver">Resolver</a>&nbsp;getResolver&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;variableName)</pre>
<div class="block">Retrieves the <a href="resolver/Resolver.html" title="class in org.eclipse.persistence.jpa.jpql.tools.resolver"><code>Resolver</code></a> mapped with the given identification variable. If the
identification is not defined in the declaration traversed by this resolver, than the search
will traverse the parent hierarchy.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>variableName</code> - The identification variable that maps a <a href="resolver/Resolver.html" title="class in org.eclipse.persistence.jpa.jpql.tools.resolver"><code>Resolver</code></a></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The <a href="resolver/Resolver.html" title="class in org.eclipse.persistence.jpa.jpql.tools.resolver"><code>Resolver</code></a> mapped with the given identification variable</dd>
</dl>
</li>
</ul>
<a id="getResolverBuilder()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getResolverBuilder</h4>
<pre class="methodSignature">protected&nbsp;<a href="resolver/ResolverBuilder.html" title="class in org.eclipse.persistence.jpa.jpql.tools.resolver">ResolverBuilder</a>&nbsp;getResolverBuilder()</pre>
</li>
</ul>
<a id="getResultVariables()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getResultVariables</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&gt;&nbsp;getResultVariables()</pre>
<div class="block">Returns the variables that got defined in the select expression. This only applies to JPQL
queries built for JPA 2.0.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The variables identifying the select expressions, if any was defined or an empty set
if none were defined</dd>
</dl>
</li>
</ul>
<a id="getType(java.lang.Class)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getType</h4>
<pre class="methodSignature">public&nbsp;<a href="spi/IType.html" title="interface in org.eclipse.persistence.jpa.jpql.tools.spi">IType</a>&nbsp;getType&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;?&gt;&nbsp;type)</pre>
<div class="block">Retrieves the external type for the given Java type.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>type</code> - The Java type to wrap with an external form</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The external form of the given type</dd>
</dl>
</li>
</ul>
<a id="getType(org.eclipse.persistence.jpa.jpql.parser.Expression)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getType</h4>
<pre class="methodSignature">public&nbsp;<a href="spi/IType.html" title="interface in org.eclipse.persistence.jpa.jpql.tools.spi">IType</a>&nbsp;getType&#8203;(<a href="../parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&nbsp;expression)</pre>
<div class="block">Returns the <a href="spi/IType.html" title="interface in org.eclipse.persistence.jpa.jpql.tools.spi"><code>IType</code></a> of the given <a href="../parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>expression</code> - The <a href="../parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> for which its type will be calculated</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Either the <a href="spi/IType.html" title="interface in org.eclipse.persistence.jpa.jpql.tools.spi"><code>IType</code></a> that was resolved by this <a href="resolver/Resolver.html" title="class in org.eclipse.persistence.jpa.jpql.tools.resolver"><code>Resolver</code></a> or the
<a href="spi/IType.html" title="interface in org.eclipse.persistence.jpa.jpql.tools.spi"><code>IType</code></a> for <a href="spi/IType.html#UNRESOLVABLE_TYPE"><code>IType.UNRESOLVABLE_TYPE</code></a> if it could not be resolved</dd>
</dl>
</li>
</ul>
<a id="getType(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getType</h4>
<pre class="methodSignature">public&nbsp;<a href="spi/IType.html" title="interface in org.eclipse.persistence.jpa.jpql.tools.spi">IType</a>&nbsp;getType&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;typeName)</pre>
<div class="block">Retrieves the external class with the given fully qualified class name.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>typeName</code> - The fully qualified class name of the class to retrieve</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The external form of the class to retrieve</dd>
</dl>
</li>
</ul>
<a id="getTypeDeclaration(org.eclipse.persistence.jpa.jpql.parser.Expression)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTypeDeclaration</h4>
<pre class="methodSignature">public&nbsp;<a href="spi/ITypeDeclaration.html" title="interface in org.eclipse.persistence.jpa.jpql.tools.spi">ITypeDeclaration</a>&nbsp;getTypeDeclaration&#8203;(<a href="../parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&nbsp;expression)</pre>
<div class="block">Returns the <a href="spi/ITypeDeclaration.html" title="interface in org.eclipse.persistence.jpa.jpql.tools.spi"><code>ITypeDeclaration</code></a> of the field handled by this <a href="resolver/Resolver.html" title="class in org.eclipse.persistence.jpa.jpql.tools.resolver"><code>Resolver</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>expression</code> - The <a href="../parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> for which its type declaration will be calculated</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Either the <a href="spi/ITypeDeclaration.html" title="interface in org.eclipse.persistence.jpa.jpql.tools.spi"><code>ITypeDeclaration</code></a> that was resolved by this <a href="resolver/Resolver.html" title="class in org.eclipse.persistence.jpa.jpql.tools.resolver"><code>Resolver</code></a> or the
<a href="spi/ITypeDeclaration.html" title="interface in org.eclipse.persistence.jpa.jpql.tools.spi"><code>ITypeDeclaration</code></a> for <a href="spi/IType.html#UNRESOLVABLE_TYPE"><code>IType.UNRESOLVABLE_TYPE</code></a> if it could not be resolved</dd>
</dl>
</li>
</ul>
<a id="getTypeHelper()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTypeHelper</h4>
<pre class="methodSignature">public&nbsp;<a href="TypeHelper.html" title="class in org.eclipse.persistence.jpa.jpql.tools">TypeHelper</a>&nbsp;getTypeHelper()</pre>
<div class="block">Returns a helper that gives access to the most common <a href="spi/IType.html" title="interface in org.eclipse.persistence.jpa.jpql.tools.spi"><code>types</code></a>.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A helper containing a collection of methods related to <a href="spi/IType.html" title="interface in org.eclipse.persistence.jpa.jpql.tools.spi"><code>IType</code></a></dd>
</dl>
</li>
</ul>
<a id="getTypeRepository()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTypeRepository</h4>
<pre class="methodSignature">public&nbsp;<a href="spi/ITypeRepository.html" title="interface in org.eclipse.persistence.jpa.jpql.tools.spi">ITypeRepository</a>&nbsp;getTypeRepository()</pre>
<div class="block">Returns the type repository for the application.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The repository of <a href="spi/IType.html" title="interface in org.eclipse.persistence.jpa.jpql.tools.spi"><code>ITypes</code></a></dd>
</dl>
</li>
</ul>
<a id="hasJoins()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hasJoins</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;hasJoins()</pre>
<div class="block">Determines whether the JPQL expression has <b>JOIN</b> expressions.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if the query or subquery being traversed contains <b>JOIN</b>
expressions; <code>false</code> otherwise</dd>
</dl>
</li>
</ul>
<a id="initialize(org.eclipse.persistence.jpa.jpql.parser.JPQLGrammar)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>initialize</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;initialize&#8203;(<a href="../parser/JPQLGrammar.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">JPQLGrammar</a>&nbsp;jpqlGrammar)</pre>
<div class="block">Initializes this <a href="JPQLQueryContext.html" title="class in org.eclipse.persistence.jpa.jpql.tools"><code>JPQLQueryContext</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>jpqlGrammar</code> - The grammar that defines how to parse a JPQL query</dd>
</dl>
</li>
</ul>
<a id="initializeRoot()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>initializeRoot</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;initializeRoot()</pre>
<div class="block">Initializes the parsed tree representation of the JPQL query if it has not been set before
setting the <a href="spi/IQuery.html" title="interface in org.eclipse.persistence.jpa.jpql.tools.spi"><code>IQuery</code></a>.</div>
</li>
</ul>
<a id="isCollectionIdentificationVariable(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isCollectionIdentificationVariable</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isCollectionIdentificationVariable&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;variableName)</pre>
<div class="block">Determines whether the given identification variable is defining a join or a collection member
declaration expressions.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>variableName</code> - The identification variable to check for what it maps</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if the given identification variable maps a collection-valued field
defined in a <code>JOIN</code> or <code>IN</code> expression; <code>false</code> if it's not
defined or it's mapping an abstract schema name</dd>
</dl>
</li>
</ul>
<a id="isRangeIdentificationVariable(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isRangeIdentificationVariable</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isRangeIdentificationVariable&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;variableName)</pre>
<div class="block">Determines whether the given variable name is an identification variable name used to define
an abstract schema name.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>variableName</code> - The name of the variable to verify if it's defined in a range variable
declaration in the current query or any parent query</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if the variable name is mapping an abstract schema name; <code>false</code>
if it's defined in a collection member declaration</dd>
</dl>
</li>
</ul>
<a id="isResultVariable(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isResultVariable</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isResultVariable&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;variable)</pre>
<div class="block">Determines if the given variable is a result variable.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>variable</code> - The variable to check if it's a result variable</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if the given variable is defined as a result variable; <code>false</code>
otherwise</dd>
</dl>
</li>
</ul>
<a id="isSubquery()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isSubquery</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isSubquery()</pre>
<div class="block">Determines whether this <a href="JPQLQueryContext.html" title="class in org.eclipse.persistence.jpa.jpql.tools"><code>JPQLQueryContext</code></a> currently holds the information of a subquery
or for the top-level query.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if the current context is for a subquery; <code>false</code> for the
top-level query</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.5</dd>
</dl>
</li>
</ul>
<a id="isTolerant()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isTolerant</h4>
<pre class="methodSignature">public&nbsp;boolean&nbsp;isTolerant()</pre>
<div class="block">Determines if the parser is in tolerant mode or is in fast mode. When the tolerant is turned
on, it means the parser will attempt to parse incomplete or invalid queries.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if the parsing system should parse invalid or incomplete queries;
<code>false</code> when the query is well-formed and valid</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.5</dd>
</dl>
</li>
</ul>
<a id="literal(org.eclipse.persistence.jpa.jpql.parser.Expression,org.eclipse.persistence.jpa.jpql.LiteralType)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>literal</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;literal&#8203;(<a href="../parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&nbsp;expression,
<a href="../LiteralType.html" title="enum in org.eclipse.persistence.jpa.jpql">LiteralType</a>&nbsp;type)</pre>
<div class="block">Retrieves the "literal" from the given <a href="../parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a>. The literal to retrieve depends on
the given <a href="../LiteralType.html" title="enum in org.eclipse.persistence.jpa.jpql"><code>type</code></a>. The literal is basically a string value like an
identification variable name, an input parameter, a path expression, an abstract schema name,
etc.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>expression</code> - The <a href="../parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> to visit</dd>
<dd><code>type</code> - The <a href="../LiteralType.html" title="enum in org.eclipse.persistence.jpa.jpql"><code>LiteralType</code></a> helps to determine what to retrieve from the visited
<a href="../parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A value from the given <a href="../parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> or an empty string if the given <a href="../parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> and the <a href="../LiteralType.html" title="enum in org.eclipse.persistence.jpa.jpql"><code>LiteralType</code></a> do not match</dd>
</dl>
</li>
</ul>
<a id="newSubqueryContext(org.eclipse.persistence.jpa.jpql.parser.Expression)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>newSubqueryContext</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;newSubqueryContext&#8203;(<a href="../parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&nbsp;currentQuery)</pre>
<div class="block">Changes the state of this context to use the given subquery.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>currentQuery</code> - The parsed tree representation of the subquery that will become the
current query</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="#disposeSubqueryContext()"><code>disposeSubqueryContext()</code></a></dd>
</dl>
</li>
</ul>
<a id="setJPQLExpression(org.eclipse.persistence.jpa.jpql.parser.JPQLExpression)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setJPQLExpression</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setJPQLExpression&#8203;(<a href="../parser/JPQLExpression.html" title="class in org.eclipse.persistence.jpa.jpql.parser">JPQLExpression</a>&nbsp;jpqlExpression)</pre>
<div class="block">Sets the parsed tree representation of the JPQL query. If the expression was parsed outside of
the scope of this context, then this method has to be invoked before <a href="#setQuery(org.eclipse.persistence.jpa.jpql.tools.spi.IQuery)"><code>setQuery(IQuery)</code></a>
because the JPQL query is automatically parsed by that method.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>jpqlExpression</code> - The parsed representation of the JPQL query to manipulate</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="#setQuery(org.eclipse.persistence.jpa.jpql.tools.spi.IQuery)"><code>setQuery(IQuery)</code></a></dd>
</dl>
</li>
</ul>
<a id="setQuery(org.eclipse.persistence.jpa.jpql.tools.spi.IQuery)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setQuery</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setQuery&#8203;(<a href="spi/IQuery.html" title="interface in org.eclipse.persistence.jpa.jpql.tools.spi">IQuery</a>&nbsp;query)</pre>
<div class="block">Sets the external form of the JPQL query, which will be parsed and information will be
extracted for later access.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>query</code> - The external form of the JPQL query</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="#setJPQLExpression(org.eclipse.persistence.jpa.jpql.parser.JPQLExpression)"><code>setJPQLExpression(JPQLExpression)</code></a></dd>
</dl>
</li>
</ul>
<a id="setTolerant(boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setTolerant</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;setTolerant&#8203;(boolean&nbsp;tolerant)</pre>
<div class="block">Sets whether the parser is in tolerant mode or is in fast mode. When the tolerant is turned
on, it means the parser will attempt to parse incomplete or invalid queries.
<p>
Note: This needs to be set before <a href="#setQuery(org.eclipse.persistence.jpa.jpql.tools.spi.IQuery)"><code>setQuery(IQuery)</code></a> or <a href="#setJPQLExpression(org.eclipse.persistence.jpa.jpql.parser.JPQLExpression)"><code>setJPQLExpression(JPQLExpression)</code></a>
is invoked.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>tolerant</code> - Determines if the parsing system should be tolerant, meaning if it should try
to parse invalid or incomplete queries</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.5</dd>
</dl>
</li>
</ul>
<a id="store(org.eclipse.persistence.jpa.jpql.tools.JPQLQueryContext,org.eclipse.persistence.jpa.jpql.parser.Expression)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>store</h4>
<pre class="methodSignature">protected&nbsp;void&nbsp;store&#8203;(<a href="JPQLQueryContext.html" title="class in org.eclipse.persistence.jpa.jpql.tools">JPQLQueryContext</a>&nbsp;parent,
<a href="../parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&nbsp;currentQuery)</pre>
<div class="block">Stores the information contained in the given parent into this one.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>parent</code> - The parent context, which is the context of the parent query</dd>
<dd><code>currentQuery</code> - The subquery becoming the current query</dd>
</dl>
</li>
</ul>
<a id="toString()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>toString</h4>
<pre class="methodSignature">public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;toString()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</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 class="aboutLanguage">EclipseLink 3.0.0, API Reference</div>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../allclasses.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>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&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 id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &#169; 2017&#x2013;2020 <a href="http://www.eclipse.org/eclipselink">Eclipse.org - EclipseLink Project</a>. All rights reserved.</small></p>
</footer>
</body>
</html>