blob: ae739bb8673d839568ab67feb114ce699bdbd373 [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 Thu Apr 08 02:07:17 UTC 2021 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JPQLGrammar (EclipseLink 3.0.1, API Reference)</title>
<meta name="date" content="2021-04-08">
<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="JPQLGrammar (EclipseLink 3.0.1, API Reference)";
}
}
catch(err) {
}
//-->
var methods = {"i0":6,"i1":6,"i2":6,"i3":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract 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.1, API Reference</div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../org/eclipse/persistence/jpa/jpql/parser/JPQLExpression.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../org/eclipse/persistence/jpa/jpql/parser/JPQLGrammar1_0.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/eclipse/persistence/jpa/jpql/parser/JPQLGrammar.html" target="_top">Frames</a></li>
<li><a href="JPQLGrammar.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&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>Constr&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.parser</div>
<h2 title="Interface JPQLGrammar" class="title">Interface JPQLGrammar</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><a href="../../../../../../org/eclipse/persistence/jpa/jpql/parser/AbstractJPQLGrammar.html" title="class in org.eclipse.persistence.jpa.jpql.parser">AbstractJPQLGrammar</a>, <a href="../../../../../../org/eclipse/persistence/jpa/jpql/parser/DefaultEclipseLinkJPQLGrammar.html" title="class in org.eclipse.persistence.jpa.jpql.parser">DefaultEclipseLinkJPQLGrammar</a>, <a href="../../../../../../org/eclipse/persistence/jpa/jpql/parser/DefaultJPQLGrammar.html" title="class in org.eclipse.persistence.jpa.jpql.parser">DefaultJPQLGrammar</a>, <a href="../../../../../../org/eclipse/persistence/jpa/jpql/parser/EclipseLinkJPQLGrammar1.html" title="class in org.eclipse.persistence.jpa.jpql.parser">EclipseLinkJPQLGrammar1</a>, <a href="../../../../../../org/eclipse/persistence/jpa/jpql/parser/EclipseLinkJPQLGrammar2_0.html" title="class in org.eclipse.persistence.jpa.jpql.parser">EclipseLinkJPQLGrammar2_0</a>, <a href="../../../../../../org/eclipse/persistence/jpa/jpql/parser/EclipseLinkJPQLGrammar2_1.html" title="class in org.eclipse.persistence.jpa.jpql.parser">EclipseLinkJPQLGrammar2_1</a>, <a href="../../../../../../org/eclipse/persistence/jpa/jpql/parser/EclipseLinkJPQLGrammar2_2.html" title="class in org.eclipse.persistence.jpa.jpql.parser">EclipseLinkJPQLGrammar2_2</a>, <a href="../../../../../../org/eclipse/persistence/jpa/jpql/parser/EclipseLinkJPQLGrammar2_3.html" title="class in org.eclipse.persistence.jpa.jpql.parser">EclipseLinkJPQLGrammar2_3</a>, <a href="../../../../../../org/eclipse/persistence/jpa/jpql/parser/EclipseLinkJPQLGrammar2_4.html" title="class in org.eclipse.persistence.jpa.jpql.parser">EclipseLinkJPQLGrammar2_4</a>, <a href="../../../../../../org/eclipse/persistence/jpa/jpql/parser/EclipseLinkJPQLGrammar2_5.html" title="class in org.eclipse.persistence.jpa.jpql.parser">EclipseLinkJPQLGrammar2_5</a>, <a href="../../../../../../org/eclipse/persistence/jpa/jpql/parser/EclipseLinkJPQLGrammar2_6.html" title="class in org.eclipse.persistence.jpa.jpql.parser">EclipseLinkJPQLGrammar2_6</a>, <a href="../../../../../../org/eclipse/persistence/jpa/jpql/parser/JPQLGrammar1_0.html" title="class in org.eclipse.persistence.jpa.jpql.parser">JPQLGrammar1_0</a>, <a href="../../../../../../org/eclipse/persistence/jpa/jpql/parser/JPQLGrammar2_0.html" title="class in org.eclipse.persistence.jpa.jpql.parser">JPQLGrammar2_0</a>, <a href="../../../../../../org/eclipse/persistence/jpa/jpql/parser/JPQLGrammar2_1.html" title="class in org.eclipse.persistence.jpa.jpql.parser">JPQLGrammar2_1</a></dd>
</dl>
<hr>
<br>
<pre>public interface <span class="typeNameLabel">JPQLGrammar</span></pre>
<div class="block"><p>A JPQL grammar defines how a JPQL query can be parsed. The <a href="../../../../../../org/eclipse/persistence/jpa/jpql/parser/ExpressionRegistry.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>ExpressionRegistry</code></a> contains
the <a href="../../../../../../org/eclipse/persistence/jpa/jpql/parser/JPQLQueryBNF.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>BNFs</code></a> and the <a href="../../../../../../org/eclipse/persistence/jpa/jpql/parser/ExpressionFactory.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>expression factories</code></a> used to
create the tree representation of the JPQL query.</p>
<p>The supported JPQL grammars are:</p>
<ul>
<li><a href="../../../../../../org/eclipse/persistence/jpa/jpql/parser/JPQLGrammar1_0.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>JPQLGrammar1_0</code></a> defines the JPQL grammar based on JPA 1.0;</li>
<li><a href="../../../../../../org/eclipse/persistence/jpa/jpql/parser/JPQLGrammar2_0.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>JPQLGrammar2_0</code></a> defines the JPQL grammar based on JPA 2.0;</li>
<li><a href="../../../../../../org/eclipse/persistence/jpa/jpql/parser/JPQLGrammar2_1.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>JPQLGrammar2_1</code></a> defines the JPQL grammar based on JPA 2.1;</li>
<li><a href="../../../../../../org/eclipse/persistence/jpa/jpql/parser/EclipseLinkJPQLGrammar1.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>EclipseLinkJPQLGrammar1</code></a> defines the JPQL grammar based on JPA 1.0 and EclipseLink 1.x;</li>
<li><a href="../../../../../../org/eclipse/persistence/jpa/jpql/parser/EclipseLinkJPQLGrammar2_0.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>EclipseLinkJPQLGrammar2_0</code></a> defines the JPQL grammar based on JPA 2.0 and the additional EclipseLink 2.0 support;</li>
<li><a href="../../../../../../org/eclipse/persistence/jpa/jpql/parser/EclipseLinkJPQLGrammar2_1.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>EclipseLinkJPQLGrammar2_1</code></a> defines the JPQL grammar based on JPA 2.0 and the additional EclipseLink 2.1 support.</li>
<li><a href="../../../../../../org/eclipse/persistence/jpa/jpql/parser/EclipseLinkJPQLGrammar2_2.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>EclipseLinkJPQLGrammar2_2</code></a> defines the JPQL grammar based on JPA 2.0 and the additional EclipseLink 2.2 support.</li>
<li><a href="../../../../../../org/eclipse/persistence/jpa/jpql/parser/EclipseLinkJPQLGrammar2_3.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>EclipseLinkJPQLGrammar2_3</code></a> defines the JPQL grammar based on JPA 2.0 and the additional EclipseLink 2.3 support.</li>
<li><a href="../../../../../../org/eclipse/persistence/jpa/jpql/parser/EclipseLinkJPQLGrammar2_4.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>EclipseLinkJPQLGrammar2_4</code></a> defines the JPQL grammar based on JPA 2.1 and the additional EclipseLink 2.4 support.</li>
<li><a href="../../../../../../org/eclipse/persistence/jpa/jpql/parser/EclipseLinkJPQLGrammar2_5.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>EclipseLinkJPQLGrammar2_5</code></a> defines the JPQL grammar based on JPA 2.1 and the additional EclipseLink 2.5 support.</li>
<li><a href="../../../../../../org/eclipse/persistence/jpa/jpql/parser/DefaultJPQLGrammar.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>DefaultJPQLGrammar</code></a> defines the JPQL grammar based on the latest JPA version;</li>
<li><a href="../../../../../../org/eclipse/persistence/jpa/jpql/parser/DefaultEclipseLinkJPQLGrammar.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><code>DefaultEclipseLinkJPQLGrammar</code></a> defines the JPQL grammar based on the latest JPA and
the latest EclipseLink;</li>
</ul>
<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.</p></div>
<dl>
<dt><span class="simpleTagLabel">Version:</span></dt>
<dd>2.5</dd>
<dt><span class="simpleTagLabel">Author:</span></dt>
<dd>Pascal Filion</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.4</dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== 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></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><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/parser/JPQLGrammar.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="i1" class="rowColor">
<td class="colFirst"><code><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/parser/JPQLGrammar.html#getJPAVersion--">getJPAVersion</a></span>()</code>
<div class="block">Returns the <a href="../../../../../../org/eclipse/persistence/jpa/jpql/JPAVersion.html" title="enum in org.eclipse.persistence.jpa.jpql"><code>JPAVersion</code></a> of the Java Persistence supported by this grammar.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/eclipse/persistence/jpa/jpql/parser/JPQLGrammar.html#getProvider--">getProvider</a></span>()</code>
<div class="block">Returns the persistence provider name.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/eclipse/persistence/jpa/jpql/parser/JPQLGrammar.html#getProviderVersion--">getProviderVersion</a></span>()</code>
<div class="block">Returns the version of the persistence provider.</div>
</td>
</tr>
</table>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="getExpressionRegistry--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getExpressionRegistry</h4>
<pre><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="getJPAVersion--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getJPAVersion</h4>
<pre><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 <a href="../../../../../../org/eclipse/persistence/jpa/jpql/JPAVersion.html" title="enum in org.eclipse.persistence.jpa.jpql"><code>JPAVersion</code></a> of the Java Persistence supported by this grammar.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The <a href="../../../../../../org/eclipse/persistence/jpa/jpql/JPAVersion.html" title="enum in org.eclipse.persistence.jpa.jpql"><code>JPA version</code></a> supported by this grammar</dd>
</dl>
</li>
</ul>
<a name="getProvider--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getProvider</h4>
<pre><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="blockListLast">
<li class="blockList">
<h4>getProviderVersion</h4>
<pre><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>
</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.1, API Reference</div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../org/eclipse/persistence/jpa/jpql/parser/JPQLExpression.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../org/eclipse/persistence/jpa/jpql/parser/JPQLGrammar1_0.html" title="class in org.eclipse.persistence.jpa.jpql.parser"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/eclipse/persistence/jpa/jpql/parser/JPQLGrammar.html" target="_top">Frames</a></li>
<li><a href="JPQLGrammar.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&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>Constr&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>