blob: cb3716e43f5e8bf860cb24f24dcc93bab92e817c [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_252) on Fri Jul 16 09:39:01 UTC 2021 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>AbstractValidator (EclipseLink 3.0.2, API Reference)</title>
<meta name="date" content="2021-07-16">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="AbstractValidator (EclipseLink 3.0.2, API Reference)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"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":6,"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};
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";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="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.2, API Reference</div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractSemanticValidator.TopLevelFirstDeclarationVisitor.html" title="class in org.eclipse.persistence.jpa.jpql"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.BypassChildCollectionExpressionVisitor.html" title="class in org.eclipse.persistence.jpa.jpql"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/eclipse/persistence/jpa/jpql/AbstractValidator.html" target="_top">Frames</a></li>
<li><a href="AbstractValidator.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.eclipse.persistence.jpa.jpql</div>
<h2 title="Class AbstractValidator" class="title">Class AbstractValidator</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">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li><a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html" title="class in org.eclipse.persistence.jpa.jpql.parser">org.eclipse.persistence.jpa.jpql.parser.AnonymousExpressionVisitor</a></li>
<li>
<ul class="inheritance">
<li>org.eclipse.persistence.jpa.jpql.AbstractValidator</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/ExpressionVisitor.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">ExpressionVisitor</a></dd>
</dl>
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractGrammarValidator.html" title="class in org.eclipse.persistence.jpa.jpql">AbstractGrammarValidator</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractSemanticValidator.html" title="class in org.eclipse.persistence.jpa.jpql">AbstractSemanticValidator</a></dd>
</dl>
<hr>
<br>
<pre>public abstract class <span class="typeNameLabel">AbstractValidator</span>
extends <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html" title="class in org.eclipse.persistence.jpa.jpql.parser">AnonymousExpressionVisitor</a></pre>
<div class="block">The abstract definition of a validator, which provides helper methods and visitors.
<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="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractGrammarValidator.html" title="class in org.eclipse.persistence.jpa.jpql"><code>AbstractGrammarValidator</code></a>,
<a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractSemanticValidator.html" title="class in org.eclipse.persistence.jpa.jpql"><code>AbstractSemanticValidator</code></a></dd>
<dt><span class="simpleTagLabel">Author:</span></dt>
<dd>Pascal Filion</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.4</dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Class and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.BypassChildCollectionExpressionVisitor.html" title="class in org.eclipse.persistence.jpa.jpql">AbstractValidator.BypassChildCollectionExpressionVisitor</a></span></code>
<div class="block">This visitor is responsible to traverse the children of a <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/CollectionExpression.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>CollectionExpression</code></a> in
order to properly validate the <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.BypassParentSubExpressionVisitor.html" title="class in org.eclipse.persistence.jpa.jpql">AbstractValidator.BypassParentSubExpressionVisitor</a></span></code>
<div class="block">This visitor is responsible to traverse the parent hierarchy and to skip <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/SubExpression.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>SubExpression</code></a>
if it's a parent.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.ChildrenCollectorVisitor.html" title="class in org.eclipse.persistence.jpa.jpql">AbstractValidator.ChildrenCollectorVisitor</a></span></code>
<div class="block">This visitor gathers the children of a <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/CollectionExpression.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>CollectionExpression</code></a> or a single visited
<a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.JPQLQueryBNFValidator.html" title="class in org.eclipse.persistence.jpa.jpql">AbstractValidator.JPQLQueryBNFValidator</a></span></code>
<div class="block">This visitor validates any <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> by checking its BNF against some BNFs.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.NestedArrayVisitor.html" title="class in org.eclipse.persistence.jpa.jpql">AbstractValidator.NestedArrayVisitor</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.OwningClauseVisitor.html" title="class in org.eclipse.persistence.jpa.jpql">AbstractValidator.OwningClauseVisitor</a></span></code>
<div class="block">This visitor retrieves the clause owning the visited <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.OwningStatementVisitor.html" title="class in org.eclipse.persistence.jpa.jpql">AbstractValidator.OwningStatementVisitor</a></span></code>
<div class="block">This visitor retrieves the statement owning the visited <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.SubqueryVisitor.html" title="class in org.eclipse.persistence.jpa.jpql">AbstractValidator.SubqueryVisitor</a></span></code>
<div class="block">This visitor retrieves the statement owning the visited <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a>.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier</th>
<th class="colLast" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected </code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.html#AbstractValidator--">AbstractValidator</a></span>()</code>
<div class="block">Creates a new <code>AbstractValidator</code>.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="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="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.html#addProblem-org.eclipse.persistence.jpa.jpql.parser.Expression-int-int-java.lang.String-java.lang.String...-">addProblem</a></span>(<a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&nbsp;expression,
int&nbsp;startPosition,
int&nbsp;endPosition,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;messageKey,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>...&nbsp;messageArguments)</code>
<div class="block">Adds a new validation problem that was found in the given <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a>.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.html#addProblem-org.eclipse.persistence.jpa.jpql.parser.Expression-int-java.lang.String-java.lang.String...-">addProblem</a></span>(<a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&nbsp;expression,
int&nbsp;startPosition,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;messageKey,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>...&nbsp;messageArguments)</code>
<div class="block">Adds a new validation problem that was found in the given <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a>.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.html#addProblem-org.eclipse.persistence.jpa.jpql.parser.Expression-java.lang.String-">addProblem</a></span>(<a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&nbsp;expression,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;messageKey)</code>
<div class="block">Adds a new validation problem that was found in the given <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a>.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.html#addProblem-org.eclipse.persistence.jpa.jpql.parser.Expression-java.lang.String-java.lang.String...-">addProblem</a></span>(<a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&nbsp;expression,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;messageKey,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>...&nbsp;arguments)</code>
<div class="block">Adds a new validation problem that was found in the given <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a>.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>protected <a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.ChildrenCollectorVisitor.html" title="class in org.eclipse.persistence.jpa.jpql">AbstractValidator.ChildrenCollectorVisitor</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.html#buildChildrenCollector--">buildChildrenCollector</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>protected abstract <a href="../../../../../org/eclipse/persistence/jpa/jpql/LiteralVisitor.html" title="class in org.eclipse.persistence.jpa.jpql">LiteralVisitor</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.html#buildLiteralVisitor--">buildLiteralVisitor</a></span>()</code>
<div class="block">Creates the visitor that can retrieve some information about various literal.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>protected <a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.NestedArrayVisitor.html" title="class in org.eclipse.persistence.jpa.jpql">AbstractValidator.NestedArrayVisitor</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.html#buildNestedArrayVisitor--">buildNestedArrayVisitor</a></span>()</code>
<div class="block">Creates the visitor that traverses an <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> and determines if it's a nested array
or not.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>protected abstract <a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.OwningClauseVisitor.html" title="class in org.eclipse.persistence.jpa.jpql">AbstractValidator.OwningClauseVisitor</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.html#buildOwningClauseVisitor--">buildOwningClauseVisitor</a></span>()</code>
<div class="block">Creates the visitor that traverses the parent hierarchy of any <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> and stops at
the first <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> that is a clause.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>protected <a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.OwningStatementVisitor.html" title="class in org.eclipse.persistence.jpa.jpql">AbstractValidator.OwningStatementVisitor</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.html#buildOwningStatementVisitor--">buildOwningStatementVisitor</a></span>()</code>
<div class="block">Creates the visitor that traverses the parent hierarchy of any <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> and stops at
the first <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> that is a statement.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>protected <a href="../../../../../org/eclipse/persistence/jpa/jpql/JPQLQueryProblem.html" title="interface in org.eclipse.persistence.jpa.jpql">JPQLQueryProblem</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.html#buildProblem-org.eclipse.persistence.jpa.jpql.parser.Expression-int-int-java.lang.String-java.lang.String...-">buildProblem</a></span>(<a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&nbsp;expression,
int&nbsp;startPosition,
int&nbsp;endPosition,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;messageKey,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>...&nbsp;messageArguments)</code>
<div class="block">Creates a new validation problem that was found in the given <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a>.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>protected <a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.SubqueryVisitor.html" title="class in org.eclipse.persistence.jpa.jpql">AbstractValidator.SubqueryVisitor</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.html#buildSubqueryVisitor--">buildSubqueryVisitor</a></span>()</code>
<div class="block">Creates the visitor that checks if the visited expression is a subquery or not..</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.html#dispose--">dispose</a></span>()</code>
<div class="block">Disposes this visitor.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>protected <a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.BypassChildCollectionExpressionVisitor.html" title="class in org.eclipse.persistence.jpa.jpql">AbstractValidator.BypassChildCollectionExpressionVisitor</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.html#getBypassChildCollectionExpressionVisitor--">getBypassChildCollectionExpressionVisitor</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>protected <a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.BypassParentSubExpressionVisitor.html" title="class in org.eclipse.persistence.jpa.jpql">AbstractValidator.BypassParentSubExpressionVisitor</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.html#getBypassParentSubExpressionVisitor--">getBypassParentSubExpressionVisitor</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.html#getChildren-org.eclipse.persistence.jpa.jpql.parser.Expression-">getChildren</a></span>(<a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&nbsp;expression)</code>
<div class="block">Returns a list containing either the given <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> if it's not a <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/CollectionExpression.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>CollectionExpression</code></a> or the children of the given <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/CollectionExpression.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>CollectionExpression</code></a>.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>protected <a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.ChildrenCollectorVisitor.html" title="class in org.eclipse.persistence.jpa.jpql">AbstractValidator.ChildrenCollectorVisitor</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.html#getChildrenCollectorVisitor--">getChildrenCollectorVisitor</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>protected <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/ExpressionRegistry.html" title="class in org.eclipse.persistence.jpa.jpql.parser">ExpressionRegistry</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.html#getExpressionRegistry--">getExpressionRegistry</a></span>()</code>
<div class="block">Returns the registry containing the <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/JPQLQueryBNF.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>JPQLQueryBNFs</code></a> and the <a href="../../../../../org/eclipse/persistence/jpa/jpql/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="i17" class="rowColor">
<td class="colFirst"><code>protected <a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.JPQLQueryBNFValidator.html" title="class in org.eclipse.persistence.jpa.jpql">AbstractValidator.JPQLQueryBNFValidator</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.html#getExpressionValidator-java.lang.String-">getExpressionValidator</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;queryBNF)</code>&nbsp;</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>protected abstract <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/JPQLGrammar.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">JPQLGrammar</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.html#getGrammar--">getGrammar</a></span>()</code>
<div class="block">Returns the <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/JPQLGrammar.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>JPQLGrammar</code></a> that defines how the JPQL query was parsed.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>protected <a href="../../../../../org/eclipse/persistence/jpa/jpql/JPAVersion.html" title="enum in org.eclipse.persistence.jpa.jpql">JPAVersion</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.html#getJPAVersion--">getJPAVersion</a></span>()</code>
<div class="block">Returns the version of the Java Persistence this entity for which it was defined.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>protected <a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.JPQLQueryBNFValidator.html" title="class in org.eclipse.persistence.jpa.jpql">AbstractValidator.JPQLQueryBNFValidator</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.html#getJPQLQueryBNFValidator-org.eclipse.persistence.jpa.jpql.parser.JPQLQueryBNF-">getJPQLQueryBNFValidator</a></span>(<a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/JPQLQueryBNF.html" title="class in org.eclipse.persistence.jpa.jpql.parser">JPQLQueryBNF</a>&nbsp;queryBNF)</code>
<div class="block">Returns the <a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.JPQLQueryBNFValidator.html" title="class in org.eclipse.persistence.jpa.jpql"><code>AbstractValidator.JPQLQueryBNFValidator</code></a> that can be used to validate an <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a>
by making sure its BNF is part of the given BNF.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>protected <a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.JPQLQueryBNFValidator.html" title="class in org.eclipse.persistence.jpa.jpql">AbstractValidator.JPQLQueryBNFValidator</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.html#getJPQLQueryBNFValidator-java.lang.String-">getJPQLQueryBNFValidator</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;queryBNF)</code>
<div class="block">Returns the <a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.JPQLQueryBNFValidator.html" title="class in org.eclipse.persistence.jpa.jpql"><code>AbstractValidator.JPQLQueryBNFValidator</code></a> that can be used to validate an <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a>
by making sure its BNF is part of the given BNF.</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>protected <a href="../../../../../org/eclipse/persistence/jpa/jpql/LiteralVisitor.html" title="class in org.eclipse.persistence.jpa.jpql">LiteralVisitor</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.html#getLiteralVisitor--">getLiteralVisitor</a></span>()</code>
<div class="block">Returns the visitor that can retrieve some information about various literal.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>protected <a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.NestedArrayVisitor.html" title="class in org.eclipse.persistence.jpa.jpql">AbstractValidator.NestedArrayVisitor</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.html#getNestedArrayVisitor--">getNestedArrayVisitor</a></span>()</code>
<div class="block">Returns the visitor that can determine if an <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> represents a nested array.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>protected <a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.OwningClauseVisitor.html" title="class in org.eclipse.persistence.jpa.jpql">AbstractValidator.OwningClauseVisitor</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.html#getOwningClauseVisitor--">getOwningClauseVisitor</a></span>()</code>
<div class="block">Returns the visitor that traverses the parent hierarchy of any <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> and stops at
the first <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> that is a clause.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>protected <a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.OwningStatementVisitor.html" title="class in org.eclipse.persistence.jpa.jpql">AbstractValidator.OwningStatementVisitor</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.html#getOwningStatementVisitor--">getOwningStatementVisitor</a></span>()</code>
<div class="block">Returns the visitor that traverses the parent hierarchy of any <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> and stops at
the first <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> that is a statement.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.html#getProvider--">getProvider</a></span>()</code>
<div class="block">Returns the persistence provider name.</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.html#getProviderVersion--">getProviderVersion</a></span>()</code>
<div class="block">Returns the version of the persistence provider.</div>
</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>protected <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/JPQLQueryBNF.html" title="class in org.eclipse.persistence.jpa.jpql.parser">JPQLQueryBNF</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.html#getQueryBNF-java.lang.String-">getQueryBNF</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;queryBNFId)</code>
<div class="block">Retrieves the BNF object that was registered for the given unique identifier.</div>
</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code>protected <a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.SubqueryVisitor.html" title="class in org.eclipse.persistence.jpa.jpql">AbstractValidator.SubqueryVisitor</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.html#getSubqueryVisitor--">getSubqueryVisitor</a></span>()</code>
<div class="block">Returns the visitor that checks if the visited expression is a subquery or not.</div>
</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.html#initialize--">initialize</a></span>()</code>
<div class="block">Initializes this validator.</div>
</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.html#isNestedArray-org.eclipse.persistence.jpa.jpql.parser.Expression-">isNestedArray</a></span>(<a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&nbsp;expression)</code>
<div class="block">Determines whether the given <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> represents a nested array or not.</div>
</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.html#isSubquery-org.eclipse.persistence.jpa.jpql.parser.Expression-">isSubquery</a></span>(<a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&nbsp;expression)</code>
<div class="block">Determines whether the given <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> is a subquery.</div>
</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.html#isValid-org.eclipse.persistence.jpa.jpql.parser.Expression-org.eclipse.persistence.jpa.jpql.parser.JPQLQueryBNF-">isValid</a></span>(<a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&nbsp;expression,
<a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/JPQLQueryBNF.html" title="class in org.eclipse.persistence.jpa.jpql.parser">JPQLQueryBNF</a>&nbsp;queryBNF)</code>
<div class="block">Determines whether the given <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> is valid by checking its <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/JPQLQueryBNF.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>JPQLQueryBNF</code></a>
with the given <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/JPQLQueryBNF.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>JPQLQueryBNF</code></a>.</div>
</td>
</tr>
<tr id="i34" class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.html#isValid-org.eclipse.persistence.jpa.jpql.parser.Expression-java.lang.String...-">isValid</a></span>(<a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&nbsp;expression,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>...&nbsp;queryBNFIds)</code>
<div class="block">Determines whether the given <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> is valid by checking its <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/JPQLQueryBNF.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>JPQLQueryBNF</code></a>
with the list of <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/JPQLQueryBNF.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>JPQLQueryBNF</code></a> associated with the given unique identifiers.</div>
</td>
</tr>
<tr id="i35" class="rowColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.html#isValid-org.eclipse.persistence.jpa.jpql.parser.Expression-java.lang.String-">isValid</a></span>(<a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&nbsp;expression,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;queryBNFId)</code>
<div class="block">Determines whether the given <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> is valid by checking its <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/JPQLQueryBNF.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>JPQLQueryBNF</code></a>
with the <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/JPQLQueryBNF.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>JPQLQueryBNF</code></a> associated with the given unique identifier.</div>
</td>
</tr>
<tr id="i36" class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.html#isValidWithChildCollectionBypass-org.eclipse.persistence.jpa.jpql.parser.Expression-java.lang.String-">isValidWithChildCollectionBypass</a></span>(<a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&nbsp;expression,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;queryBNF)</code>
<div class="block">Determines whether the given <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> part is an expression of the given query BNF.</div>
</td>
</tr>
<tr id="i37" class="rowColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.html#isWithinSubquery-org.eclipse.persistence.jpa.jpql.parser.Expression-">isWithinSubquery</a></span>(<a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&nbsp;expression)</code>
<div class="block">Determines whether the given <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> is part of a subquery.</div>
</td>
</tr>
<tr id="i38" class="altColor">
<td class="colFirst"><code>protected boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.html#isWithinTopLevelQuery-org.eclipse.persistence.jpa.jpql.parser.Expression-">isWithinTopLevelQuery</a></span>(<a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&nbsp;expression)</code>
<div class="block">Determines whether the given <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> is part of the top-level query.</div>
</td>
</tr>
<tr id="i39" class="rowColor">
<td class="colFirst"><code>protected int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.html#length-org.eclipse.persistence.jpa.jpql.parser.Expression-">length</a></span>(<a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&nbsp;expression)</code>
<div class="block">Returns the length of the string representation of the given <a href="../../../../../org/eclipse/persistence/jpa/jpql/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="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.html#literal-org.eclipse.persistence.jpa.jpql.parser.Expression-org.eclipse.persistence.jpa.jpql.LiteralType-">literal</a></span>(<a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&nbsp;expression,
<a href="../../../../../org/eclipse/persistence/jpa/jpql/LiteralType.html" title="enum in org.eclipse.persistence.jpa.jpql">LiteralType</a>&nbsp;type)</code>
<div class="block">Retrieves the "literal" from the given <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a>.</div>
</td>
</tr>
<tr id="i41" class="rowColor">
<td class="colFirst"><code>protected int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.html#nestedArraySize-org.eclipse.persistence.jpa.jpql.parser.Expression-">nestedArraySize</a></span>(<a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&nbsp;expression)</code>
<div class="block">Returns the number of items in the nested array if the given <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> represents one.</div>
</td>
</tr>
<tr id="i42" class="altColor">
<td class="colFirst"><code>protected int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.html#position-org.eclipse.persistence.jpa.jpql.parser.Expression-">position</a></span>(<a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&nbsp;expression)</code>
<div class="block">Calculates the position of the given expression by calculating the length of what is before.</div>
</td>
</tr>
<tr id="i43" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.html#problemsSize--">problemsSize</a></span>()</code>
<div class="block">Returns the current number of problems that were registered during validation.</div>
</td>
</tr>
<tr id="i44" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.html#setProblems-java.util.Collection-">setProblems</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/eclipse/persistence/jpa/jpql/JPQLQueryProblem.html" title="interface in org.eclipse.persistence.jpa.jpql">JPQLQueryProblem</a>&gt;&nbsp;problems)</code>
<div class="block">Sets the collection that will be used to store <a href="../../../../../org/eclipse/persistence/jpa/jpql/JPQLQueryProblem.html" title="interface in org.eclipse.persistence.jpa.jpql"><code>problems</code></a> this
validator will find in the JPQL query.</div>
</td>
</tr>
<tr id="i45" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.html#visit-org.eclipse.persistence.jpa.jpql.parser.Expression-">visit</a></span>(<a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&nbsp;expression)</code>
<div class="block">Blindly visit the given <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a>.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.eclipse.persistence.jpa.jpql.parser.AnonymousExpressionVisitor">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.eclipse.persistence.jpa.jpql.parser.<a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html" title="class in org.eclipse.persistence.jpa.jpql.parser">AnonymousExpressionVisitor</a></h3>
<code><a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.AbsExpression-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.AbstractSchemaName-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.AdditionExpression-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.AllOrAnyExpression-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.AndExpression-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.ArithmeticFactor-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.AvgFunction-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.BadExpression-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.BetweenExpression-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.CaseExpression-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.CoalesceExpression-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.CollectionExpression-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.CollectionMemberDeclaration-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.CollectionMemberExpression-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.CollectionValuedPathExpression-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.ComparisonExpression-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.ConcatExpression-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.ConstructorExpression-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.CountFunction-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.DateTime-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.DeleteClause-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.DeleteStatement-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.DivisionExpression-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.EmptyCollectionComparisonExpression-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.EntityTypeLiteral-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.EntryExpression-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.ExistsExpression-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.FromClause-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.FunctionExpression-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.GroupByClause-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.HavingClause-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.IdentificationVariable-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.IdentificationVariableDeclaration-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.IndexExpression-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.InExpression-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.InputParameter-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.Join-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.JPQLExpression-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.KeyExpression-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.KeywordExpression-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.LengthExpression-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.LikeExpression-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.LocateExpression-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.LowerExpression-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.MaxFunction-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.MinFunction-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.ModExpression-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.MultiplicationExpression-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.NotExpression-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.NullComparisonExpression-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.NullExpression-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.NullIfExpression-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.NumericLiteral-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.ObjectExpression-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.OnClause-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.OrderByClause-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.OrderByItem-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.OrExpression-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.RangeVariableDeclaration-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.ResultVariable-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.SelectClause-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.SelectStatement-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.SimpleFromClause-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.SimpleSelectClause-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.SimpleSelectStatement-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.SizeExpression-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.SqrtExpression-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.StateFieldPathExpression-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.StringLiteral-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.SubExpression-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.SubstringExpression-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.SubtractionExpression-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.SumFunction-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.TreatExpression-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.TrimExpression-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.TypeExpression-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.UnknownExpression-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.UpdateClause-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.UpdateItem-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.UpdateStatement-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.UpperExpression-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.ValueExpression-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.WhenClause-">visit</a>, <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.WhereClause-">visit</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">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">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">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">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">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">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">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">notifyAll</a>, <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">toString</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">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">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">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="AbstractValidator--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>AbstractValidator</h4>
<pre>protected&nbsp;AbstractValidator()</pre>
<div class="block">Creates a new <code>AbstractValidator</code>.</div>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="addProblem-org.eclipse.persistence.jpa.jpql.parser.Expression-int-int-java.lang.String-java.lang.String...-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addProblem</h4>
<pre>protected&nbsp;void&nbsp;addProblem(<a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&nbsp;expression,
int&nbsp;startPosition,
int&nbsp;endPosition,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;messageKey,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>...&nbsp;messageArguments)</pre>
<div class="block">Adds a new validation problem that was found in the given <a href="../../../../../org/eclipse/persistence/jpa/jpql/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="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> that is either not following the BNF grammar or that
has semantic problems</dd>
<dd><code>startPosition</code> - The position where the problem was encountered</dd>
<dd><code>endPosition</code> - The position where the problem ends, inclusively</dd>
<dd><code>messageKey</code> - The key used to retrieve the localized message describing the problem</dd>
<dd><code>messageArguments</code> - The list of arguments that can be used to format the localized
description of the problem</dd>
</dl>
</li>
</ul>
<a name="addProblem-org.eclipse.persistence.jpa.jpql.parser.Expression-int-java.lang.String-java.lang.String...-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addProblem</h4>
<pre>protected&nbsp;void&nbsp;addProblem(<a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&nbsp;expression,
int&nbsp;startPosition,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;messageKey,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>...&nbsp;messageArguments)</pre>
<div class="block">Adds a new validation problem that was found in the given <a href="../../../../../org/eclipse/persistence/jpa/jpql/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="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> that is either not following the BNF grammar or that
has semantic problems</dd>
<dd><code>startPosition</code> - The position where the problem was encountered</dd>
<dd><code>messageKey</code> - The key used to retrieve the localized message describing the problem</dd>
<dd><code>messageArguments</code> - The list of arguments that can be used to format the localized
description of the problem</dd>
</dl>
</li>
</ul>
<a name="addProblem-org.eclipse.persistence.jpa.jpql.parser.Expression-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addProblem</h4>
<pre>protected&nbsp;void&nbsp;addProblem(<a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&nbsp;expression,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;messageKey)</pre>
<div class="block">Adds a new validation problem that was found in the given <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a>. The start index
is the position of the given <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> within the JPQL query and the end index is
the end position of the <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> within the JPQL query.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>expression</code> - The <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> that is either not following the BNF grammar or that
has semantic problems</dd>
<dd><code>messageKey</code> - The key used to retrieve the localized message describing the problem</dd>
</dl>
</li>
</ul>
<a name="addProblem-org.eclipse.persistence.jpa.jpql.parser.Expression-java.lang.String-java.lang.String...-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addProblem</h4>
<pre>protected&nbsp;void&nbsp;addProblem(<a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&nbsp;expression,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;messageKey,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>...&nbsp;arguments)</pre>
<div class="block">Adds a new validation problem that was found in the given <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a>. The start index
is the position of the given <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> within the JPQL query and the end index is
the end position of the <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> within the JPQL query.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>expression</code> - The <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> that is either not following the BNF grammar or that
has semantic problems</dd>
<dd><code>messageKey</code> - The key used to retrieve the localized message describing the problem</dd>
<dd><code>arguments</code> - The list of arguments that can be used to format the localized description of
the problem</dd>
</dl>
</li>
</ul>
<a name="buildChildrenCollector--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>buildChildrenCollector</h4>
<pre>protected&nbsp;<a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.ChildrenCollectorVisitor.html" title="class in org.eclipse.persistence.jpa.jpql">AbstractValidator.ChildrenCollectorVisitor</a>&nbsp;buildChildrenCollector()</pre>
</li>
</ul>
<a name="buildLiteralVisitor--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>buildLiteralVisitor</h4>
<pre>protected abstract&nbsp;<a href="../../../../../org/eclipse/persistence/jpa/jpql/LiteralVisitor.html" title="class in org.eclipse.persistence.jpa.jpql">LiteralVisitor</a>&nbsp;buildLiteralVisitor()</pre>
<div class="block">Creates the visitor that can retrieve some information about various literal.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A new <a href="../../../../../org/eclipse/persistence/jpa/jpql/LiteralVisitor.html" title="class in org.eclipse.persistence.jpa.jpql"><code>LiteralVisitor</code></a></dd>
</dl>
</li>
</ul>
<a name="buildNestedArrayVisitor--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>buildNestedArrayVisitor</h4>
<pre>protected&nbsp;<a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.NestedArrayVisitor.html" title="class in org.eclipse.persistence.jpa.jpql">AbstractValidator.NestedArrayVisitor</a>&nbsp;buildNestedArrayVisitor()</pre>
<div class="block">Creates the visitor that traverses an <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> and determines if it's a nested array
or not.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A new <a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.NestedArrayVisitor.html" title="class in org.eclipse.persistence.jpa.jpql"><code>AbstractValidator.NestedArrayVisitor</code></a></dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.5</dd>
</dl>
</li>
</ul>
<a name="buildOwningClauseVisitor--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>buildOwningClauseVisitor</h4>
<pre>protected abstract&nbsp;<a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.OwningClauseVisitor.html" title="class in org.eclipse.persistence.jpa.jpql">AbstractValidator.OwningClauseVisitor</a>&nbsp;buildOwningClauseVisitor()</pre>
<div class="block">Creates the visitor that traverses the parent hierarchy of any <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> and stops at
the first <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> that is a clause.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A new <a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.OwningClauseVisitor.html" title="class in org.eclipse.persistence.jpa.jpql"><code>AbstractValidator.OwningClauseVisitor</code></a></dd>
</dl>
</li>
</ul>
<a name="buildOwningStatementVisitor--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>buildOwningStatementVisitor</h4>
<pre>protected&nbsp;<a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.OwningStatementVisitor.html" title="class in org.eclipse.persistence.jpa.jpql">AbstractValidator.OwningStatementVisitor</a>&nbsp;buildOwningStatementVisitor()</pre>
<div class="block">Creates the visitor that traverses the parent hierarchy of any <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> and stops at
the first <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> that is a statement.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A new <a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.OwningStatementVisitor.html" title="class in org.eclipse.persistence.jpa.jpql"><code>AbstractValidator.OwningStatementVisitor</code></a></dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.4</dd>
</dl>
</li>
</ul>
<a name="buildProblem-org.eclipse.persistence.jpa.jpql.parser.Expression-int-int-java.lang.String-java.lang.String...-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>buildProblem</h4>
<pre>protected&nbsp;<a href="../../../../../org/eclipse/persistence/jpa/jpql/JPQLQueryProblem.html" title="interface in org.eclipse.persistence.jpa.jpql">JPQLQueryProblem</a>&nbsp;buildProblem(<a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&nbsp;expression,
int&nbsp;startPosition,
int&nbsp;endPosition,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;messageKey,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>...&nbsp;messageArguments)</pre>
<div class="block">Creates a new validation problem that was found in the given <a href="../../../../../org/eclipse/persistence/jpa/jpql/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="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> that is either not following the BNF grammar or that
has semantic problems</dd>
<dd><code>startPosition</code> - The position where the problem was encountered</dd>
<dd><code>endPosition</code> - The position where the problem ends, inclusively</dd>
<dd><code>messageKey</code> - The key used to retrieve the localized message describing the problem</dd>
<dd><code>messageArguments</code> - The list of arguments that can be used to format the localized
description of the problem</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The <a href="../../../../../org/eclipse/persistence/jpa/jpql/JPQLQueryProblem.html" title="interface in org.eclipse.persistence.jpa.jpql"><code>JPQLQueryProblem</code></a> describing a problem</dd>
</dl>
</li>
</ul>
<a name="buildSubqueryVisitor--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>buildSubqueryVisitor</h4>
<pre>protected&nbsp;<a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.SubqueryVisitor.html" title="class in org.eclipse.persistence.jpa.jpql">AbstractValidator.SubqueryVisitor</a>&nbsp;buildSubqueryVisitor()</pre>
<div class="block">Creates the visitor that checks if the visited expression is a subquery or not..</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A new <a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.SubqueryVisitor.html" title="class in org.eclipse.persistence.jpa.jpql"><code>AbstractValidator.SubqueryVisitor</code></a></dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.5</dd>
</dl>
</li>
</ul>
<a name="dispose--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>dispose</h4>
<pre>public&nbsp;void&nbsp;dispose()</pre>
<div class="block">Disposes this visitor.</div>
</li>
</ul>
<a name="getBypassChildCollectionExpressionVisitor--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getBypassChildCollectionExpressionVisitor</h4>
<pre>protected&nbsp;<a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.BypassChildCollectionExpressionVisitor.html" title="class in org.eclipse.persistence.jpa.jpql">AbstractValidator.BypassChildCollectionExpressionVisitor</a>&nbsp;getBypassChildCollectionExpressionVisitor()</pre>
</li>
</ul>
<a name="getBypassParentSubExpressionVisitor--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getBypassParentSubExpressionVisitor</h4>
<pre>protected&nbsp;<a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.BypassParentSubExpressionVisitor.html" title="class in org.eclipse.persistence.jpa.jpql">AbstractValidator.BypassParentSubExpressionVisitor</a>&nbsp;getBypassParentSubExpressionVisitor()</pre>
</li>
</ul>
<a name="getChildren-org.eclipse.persistence.jpa.jpql.parser.Expression-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getChildren</h4>
<pre>protected&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">List</a>&lt;<a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&gt;&nbsp;getChildren(<a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&nbsp;expression)</pre>
<div class="block">Returns a list containing either the given <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> if it's not a <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/CollectionExpression.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>CollectionExpression</code></a> or the children of the given <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/CollectionExpression.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>CollectionExpression</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>expression</code> - The <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> to visit</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A list containing either the given <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> or the children of <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/CollectionExpression.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>CollectionExpression</code></a></dd>
</dl>
</li>
</ul>
<a name="getChildrenCollectorVisitor--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getChildrenCollectorVisitor</h4>
<pre>protected&nbsp;<a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.ChildrenCollectorVisitor.html" title="class in org.eclipse.persistence.jpa.jpql">AbstractValidator.ChildrenCollectorVisitor</a>&nbsp;getChildrenCollectorVisitor()</pre>
</li>
</ul>
<a name="getExpressionRegistry--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getExpressionRegistry</h4>
<pre>protected&nbsp;<a href="../../../../../org/eclipse/persistence/jpa/jpql/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="../../../../../org/eclipse/persistence/jpa/jpql/parser/JPQLQueryBNF.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>JPQLQueryBNFs</code></a> and the <a href="../../../../../org/eclipse/persistence/jpa/jpql/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 name="getExpressionValidator-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getExpressionValidator</h4>
<pre>protected&nbsp;<a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.JPQLQueryBNFValidator.html" title="class in org.eclipse.persistence.jpa.jpql">AbstractValidator.JPQLQueryBNFValidator</a>&nbsp;getExpressionValidator(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;queryBNF)</pre>
</li>
</ul>
<a name="getGrammar--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getGrammar</h4>
<pre>protected abstract&nbsp;<a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/JPQLGrammar.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">JPQLGrammar</a>&nbsp;getGrammar()</pre>
<div class="block">Returns the <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/JPQLGrammar.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>JPQLGrammar</code></a> that defines how the JPQL query was parsed.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/JPQLGrammar.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>JPQLGrammar</code></a> that was used to parse the JPQL query</dd>
</dl>
</li>
</ul>
<a name="getJPAVersion--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getJPAVersion</h4>
<pre>protected&nbsp;<a href="../../../../../org/eclipse/persistence/jpa/jpql/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 this entity for which it was defined.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The version of the Java Persistence being used</dd>
</dl>
</li>
</ul>
<a name="getJPQLQueryBNFValidator-org.eclipse.persistence.jpa.jpql.parser.JPQLQueryBNF-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getJPQLQueryBNFValidator</h4>
<pre>protected&nbsp;<a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.JPQLQueryBNFValidator.html" title="class in org.eclipse.persistence.jpa.jpql">AbstractValidator.JPQLQueryBNFValidator</a>&nbsp;getJPQLQueryBNFValidator(<a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/JPQLQueryBNF.html" title="class in org.eclipse.persistence.jpa.jpql.parser">JPQLQueryBNF</a>&nbsp;queryBNF)</pre>
<div class="block">Returns the <a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.JPQLQueryBNFValidator.html" title="class in org.eclipse.persistence.jpa.jpql"><code>AbstractValidator.JPQLQueryBNFValidator</code></a> that can be used to validate an <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a>
by making sure its BNF is part of the given BNF.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>queryBNF</code> - The BNF used to determine the validity of an <a href="../../../../../org/eclipse/persistence/jpa/jpql/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 <a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.JPQLQueryBNFValidator.html" title="class in org.eclipse.persistence.jpa.jpql"><code>AbstractValidator.JPQLQueryBNFValidator</code></a> that can determine if an <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> follows
the given BNF</dd>
</dl>
</li>
</ul>
<a name="getJPQLQueryBNFValidator-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getJPQLQueryBNFValidator</h4>
<pre>protected&nbsp;<a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.JPQLQueryBNFValidator.html" title="class in org.eclipse.persistence.jpa.jpql">AbstractValidator.JPQLQueryBNFValidator</a>&nbsp;getJPQLQueryBNFValidator(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;queryBNF)</pre>
<div class="block">Returns the <a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.JPQLQueryBNFValidator.html" title="class in org.eclipse.persistence.jpa.jpql"><code>AbstractValidator.JPQLQueryBNFValidator</code></a> that can be used to validate an <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a>
by making sure its BNF is part of the given BNF.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>queryBNF</code> - The BNF used to determine the validity of an <a href="../../../../../org/eclipse/persistence/jpa/jpql/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 <a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.JPQLQueryBNFValidator.html" title="class in org.eclipse.persistence.jpa.jpql"><code>AbstractValidator.JPQLQueryBNFValidator</code></a> that can determine if an <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> follows
the given BNF</dd>
</dl>
</li>
</ul>
<a name="getLiteralVisitor--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLiteralVisitor</h4>
<pre>protected&nbsp;<a href="../../../../../org/eclipse/persistence/jpa/jpql/LiteralVisitor.html" title="class in org.eclipse.persistence.jpa.jpql">LiteralVisitor</a>&nbsp;getLiteralVisitor()</pre>
<div class="block">Returns the visitor that can retrieve some information about various literal.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A <a href="../../../../../org/eclipse/persistence/jpa/jpql/LiteralVisitor.html" title="class in org.eclipse.persistence.jpa.jpql"><code>LiteralVisitor</code></a></dd>
</dl>
</li>
</ul>
<a name="getNestedArrayVisitor--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNestedArrayVisitor</h4>
<pre>protected&nbsp;<a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.NestedArrayVisitor.html" title="class in org.eclipse.persistence.jpa.jpql">AbstractValidator.NestedArrayVisitor</a>&nbsp;getNestedArrayVisitor()</pre>
<div class="block">Returns the visitor that can determine if an <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> represents a nested array.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A <a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.NestedArrayVisitor.html" title="class in org.eclipse.persistence.jpa.jpql"><code>AbstractValidator.NestedArrayVisitor</code></a></dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.5</dd>
</dl>
</li>
</ul>
<a name="getOwningClauseVisitor--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getOwningClauseVisitor</h4>
<pre>protected&nbsp;<a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.OwningClauseVisitor.html" title="class in org.eclipse.persistence.jpa.jpql">AbstractValidator.OwningClauseVisitor</a>&nbsp;getOwningClauseVisitor()</pre>
<div class="block">Returns the visitor that traverses the parent hierarchy of any <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> and stops at
the first <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> that is a clause.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.OwningClauseVisitor.html" title="class in org.eclipse.persistence.jpa.jpql"><code>AbstractValidator.OwningClauseVisitor</code></a></dd>
</dl>
</li>
</ul>
<a name="getOwningStatementVisitor--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getOwningStatementVisitor</h4>
<pre>protected&nbsp;<a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.OwningStatementVisitor.html" title="class in org.eclipse.persistence.jpa.jpql">AbstractValidator.OwningStatementVisitor</a>&nbsp;getOwningStatementVisitor()</pre>
<div class="block">Returns the visitor that traverses the parent hierarchy of any <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> and stops at
the first <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> that is a statement.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.OwningStatementVisitor.html" title="class in org.eclipse.persistence.jpa.jpql"><code>AbstractValidator.OwningStatementVisitor</code></a></dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.4</dd>
</dl>
</li>
</ul>
<a name="getProvider--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getProvider</h4>
<pre>protected&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">String</a>&nbsp;getProvider()</pre>
<div class="block">Returns the persistence provider name.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The name of the persistence provider, <code>null</code> should never be returned</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.5</dd>
</dl>
</li>
</ul>
<a name="getProviderVersion--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getProviderVersion</h4>
<pre>protected&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">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.4</dd>
</dl>
</li>
</ul>
<a name="getQueryBNF-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getQueryBNF</h4>
<pre>protected&nbsp;<a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/JPQLQueryBNF.html" title="class in org.eclipse.persistence.jpa.jpql.parser">JPQLQueryBNF</a>&nbsp;getQueryBNF(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;queryBNFId)</pre>
<div class="block">Retrieves the BNF object that was registered for the given unique identifier.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>queryBNFId</code> - The unique identifier of the <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/JPQLQueryBNF.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>JPQLQueryBNF</code></a> to retrieve</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/JPQLQueryBNF.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>JPQLQueryBNF</code></a> representing a section of the grammar</dd>
</dl>
</li>
</ul>
<a name="getSubqueryVisitor--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSubqueryVisitor</h4>
<pre>protected&nbsp;<a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.SubqueryVisitor.html" title="class in org.eclipse.persistence.jpa.jpql">AbstractValidator.SubqueryVisitor</a>&nbsp;getSubqueryVisitor()</pre>
<div class="block">Returns the visitor that checks if the visited expression is a subquery or not.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.SubqueryVisitor.html" title="class in org.eclipse.persistence.jpa.jpql"><code>AbstractValidator.SubqueryVisitor</code></a></dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.5</dd>
</dl>
</li>
</ul>
<a name="initialize--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>initialize</h4>
<pre>protected&nbsp;void&nbsp;initialize()</pre>
<div class="block">Initializes this validator.</div>
</li>
</ul>
<a name="isNestedArray-org.eclipse.persistence.jpa.jpql.parser.Expression-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isNestedArray</h4>
<pre>protected&nbsp;boolean&nbsp;isNestedArray(<a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&nbsp;expression)</pre>
<div class="block">Determines whether the given <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> represents a nested array or not. To be a
nested array, the given <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> is a <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/SubExpression.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>SubExpression</code></a> and its child is a
<a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/CollectionExpression.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>CollectionExpression</code></a>.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if the given <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> is a nested array; <code>false</code> otherwise</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.5</dd>
</dl>
</li>
</ul>
<a name="isSubquery-org.eclipse.persistence.jpa.jpql.parser.Expression-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isSubquery</h4>
<pre>protected&nbsp;boolean&nbsp;isSubquery(<a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&nbsp;expression)</pre>
<div class="block">Determines whether the given <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> is a subquery.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>expression</code> - The <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> to check its type</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if the given <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> is a subquery; <code>false</code> otherwise</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.5</dd>
</dl>
</li>
</ul>
<a name="isValid-org.eclipse.persistence.jpa.jpql.parser.Expression-org.eclipse.persistence.jpa.jpql.parser.JPQLQueryBNF-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isValid</h4>
<pre>protected&nbsp;boolean&nbsp;isValid(<a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&nbsp;expression,
<a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/JPQLQueryBNF.html" title="class in org.eclipse.persistence.jpa.jpql.parser">JPQLQueryBNF</a>&nbsp;queryBNF)</pre>
<div class="block">Determines whether the given <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> is valid by checking its <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/JPQLQueryBNF.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>JPQLQueryBNF</code></a>
with the given <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/JPQLQueryBNF.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>JPQLQueryBNF</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>expression</code> - The <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> to validate based on the query BNF</dd>
<dd><code>queryBNF</code> - The <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/JPQLQueryBNF.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>JPQLQueryBNF</code></a> that determines if the given <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> is valid</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if the <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a>'s <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/JPQLQueryBNF.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>JPQLQueryBNF</code></a> is either the
<a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/JPQLQueryBNF.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>JPQLQueryBNF</code></a> or a child of it; <code>false</code> otherwise</dd>
</dl>
</li>
</ul>
<a name="isValid-org.eclipse.persistence.jpa.jpql.parser.Expression-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isValid</h4>
<pre>protected&nbsp;boolean&nbsp;isValid(<a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&nbsp;expression,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;queryBNFId)</pre>
<div class="block">Determines whether the given <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> is valid by checking its <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/JPQLQueryBNF.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>JPQLQueryBNF</code></a>
with the <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/JPQLQueryBNF.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>JPQLQueryBNF</code></a> associated with the given unique identifier.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>expression</code> - The <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> to validate based on the query BNF</dd>
<dd><code>queryBNFId</code> - The unique identifier of the <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/JPQLQueryBNF.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>JPQLQueryBNF</code></a> that determines if the
given <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> is valid</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if the <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a>'s <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/JPQLQueryBNF.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>JPQLQueryBNF</code></a> is either the
<a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/JPQLQueryBNF.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>JPQLQueryBNF</code></a> or a child of it; <code>false</code> otherwise</dd>
</dl>
</li>
</ul>
<a name="isValid-org.eclipse.persistence.jpa.jpql.parser.Expression-java.lang.String...-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isValid</h4>
<pre>protected&nbsp;boolean&nbsp;isValid(<a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&nbsp;expression,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>...&nbsp;queryBNFIds)</pre>
<div class="block">Determines whether the given <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> is valid by checking its <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/JPQLQueryBNF.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>JPQLQueryBNF</code></a>
with the list of <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/JPQLQueryBNF.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>JPQLQueryBNF</code></a> associated with the given unique identifiers.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>expression</code> - The <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> to validate based on the query BNF</dd>
<dd><code>queryBNFIds</code> - The unique identifier of the <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/JPQLQueryBNF.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>JPQLQueryBNF</code></a> that determines if the
given <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> is valid</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if the <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a>'s <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/JPQLQueryBNF.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>JPQLQueryBNF</code></a> is either the
<a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/JPQLQueryBNF.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>JPQLQueryBNF</code></a> or a child of it; <code>false</code> otherwise</dd>
</dl>
</li>
</ul>
<a name="isValidWithChildCollectionBypass-org.eclipse.persistence.jpa.jpql.parser.Expression-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isValidWithChildCollectionBypass</h4>
<pre>protected&nbsp;boolean&nbsp;isValidWithChildCollectionBypass(<a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&nbsp;expression,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;queryBNF)</pre>
<div class="block">Determines whether the given <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> part is an expression of the given query BNF.
The <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/CollectionExpression.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>CollectionExpression</code></a> that may be the direct child of the given <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a>
will be bypassed.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>expression</code> - The <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> to validate based on the query BNF</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if the <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> part is a child of the given query BNF;
<code>false</code> otherwise</dd>
</dl>
</li>
</ul>
<a name="isWithinSubquery-org.eclipse.persistence.jpa.jpql.parser.Expression-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isWithinSubquery</h4>
<pre>protected&nbsp;boolean&nbsp;isWithinSubquery(<a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&nbsp;expression)</pre>
<div class="block">Determines whether the given <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> is part of a subquery.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>expression</code> - The <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> to start scanning its location</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if the given <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> is part of a subquery; <code>false</code>
if it's part of the top-level query</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.4</dd>
</dl>
</li>
</ul>
<a name="isWithinTopLevelQuery-org.eclipse.persistence.jpa.jpql.parser.Expression-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isWithinTopLevelQuery</h4>
<pre>protected&nbsp;boolean&nbsp;isWithinTopLevelQuery(<a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&nbsp;expression)</pre>
<div class="block">Determines whether the given <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> is part of the top-level query.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>expression</code> - The <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> to start scanning its location</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if the given <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> is part of the top-level query;
<code>false</code> if it's part of a subquery</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.4</dd>
</dl>
</li>
</ul>
<a name="length-org.eclipse.persistence.jpa.jpql.parser.Expression-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>length</h4>
<pre>protected&nbsp;int&nbsp;length(<a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&nbsp;expression)</pre>
<div class="block">Returns the length of the string representation of the given <a href="../../../../../org/eclipse/persistence/jpa/jpql/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="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> to retrieve the length of its string</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The length of the string representation of the given <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a></dd>
</dl>
</li>
</ul>
<a name="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>protected&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">String</a>&nbsp;literal(<a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&nbsp;expression,
<a href="../../../../../org/eclipse/persistence/jpa/jpql/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="../../../../../org/eclipse/persistence/jpa/jpql/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="../../../../../org/eclipse/persistence/jpa/jpql/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="../../../../../org/eclipse/persistence/jpa/jpql/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="../../../../../org/eclipse/persistence/jpa/jpql/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="../../../../../org/eclipse/persistence/jpa/jpql/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="../../../../../org/eclipse/persistence/jpa/jpql/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="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> and the <a href="../../../../../org/eclipse/persistence/jpa/jpql/LiteralType.html" title="enum in org.eclipse.persistence.jpa.jpql"><code>LiteralType</code></a> do not match</dd>
</dl>
</li>
</ul>
<a name="nestedArraySize-org.eclipse.persistence.jpa.jpql.parser.Expression-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>nestedArraySize</h4>
<pre>protected&nbsp;int&nbsp;nestedArraySize(<a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&nbsp;expression)</pre>
<div class="block">Returns the number of items in the nested array if the given <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> represents one.
To be a nested array, the given <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> is a <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/SubExpression.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>SubExpression</code></a> and its child is
a <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/CollectionExpression.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>CollectionExpression</code></a>.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The number of items in the array or -1 if the <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> is not a nested array</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.5</dd>
</dl>
</li>
</ul>
<a name="position-org.eclipse.persistence.jpa.jpql.parser.Expression-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>position</h4>
<pre>protected&nbsp;int&nbsp;position(<a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&nbsp;expression)</pre>
<div class="block">Calculates the position of the given expression by calculating the length of what is before.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>expression</code> - The expression to determine its position within the parsed tree</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The length of the string representation of what comes before the given expression</dd>
</dl>
</li>
</ul>
<a name="problemsSize--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>problemsSize</h4>
<pre>public final&nbsp;int&nbsp;problemsSize()</pre>
<div class="block">Returns the current number of problems that were registered during validation.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The current number of problems</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.4</dd>
</dl>
</li>
</ul>
<a name="setProblems-java.util.Collection-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setProblems</h4>
<pre>public&nbsp;void&nbsp;setProblems(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/eclipse/persistence/jpa/jpql/JPQLQueryProblem.html" title="interface in org.eclipse.persistence.jpa.jpql">JPQLQueryProblem</a>&gt;&nbsp;problems)</pre>
<div class="block">Sets the collection that will be used to store <a href="../../../../../org/eclipse/persistence/jpa/jpql/JPQLQueryProblem.html" title="interface in org.eclipse.persistence.jpa.jpql"><code>problems</code></a> this
validator will find in the JPQL query.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>problems</code> - A non-<code>null</code> collection that will be used to store the <a href="../../../../../org/eclipse/persistence/jpa/jpql/JPQLQueryProblem.html" title="interface in org.eclipse.persistence.jpa.jpql"><code>problems</code></a> if any was found</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - The Collection cannot be <code>null</code></dd>
</dl>
</li>
</ul>
<a name="visit-org.eclipse.persistence.jpa.jpql.parser.Expression-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>visit</h4>
<pre>protected&nbsp;void&nbsp;visit(<a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser">Expression</a>&nbsp;expression)</pre>
<div class="block">Blindly visit the given <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html#visit-org.eclipse.persistence.jpa.jpql.parser.Expression-">visit</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/AnonymousExpressionVisitor.html" title="class in org.eclipse.persistence.jpa.jpql.parser">AnonymousExpressionVisitor</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>expression</code> - The <a href="../../../../../org/eclipse/persistence/jpa/jpql/parser/Expression.html" title="interface in org.eclipse.persistence.jpa.jpql.parser"><code>Expression</code></a> to visit</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="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.2, API Reference</div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractSemanticValidator.TopLevelFirstDeclarationVisitor.html" title="class in org.eclipse.persistence.jpa.jpql"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/eclipse/persistence/jpa/jpql/AbstractValidator.BypassChildCollectionExpressionVisitor.html" title="class in org.eclipse.persistence.jpa.jpql"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/eclipse/persistence/jpa/jpql/AbstractValidator.html" target="_top">Frames</a></li>
<li><a href="AbstractValidator.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2021 <a href="http://www.eclipse.org/eclipselink">Eclipse.org - EclipseLink Project</a>. All rights reserved.</small></p>
</body>
</html>