public final class EclipseLinkJPQLGrammar2_5 extends AbstractJPQLGrammar
This JPQLGrammar
provides support for parsing JPQL queries defined in JSR-338 - Java Persistence 2.1 and the additional
support provided by EclipseLink 2.5.
from_clause = FROM identification_variable_declaration {, {identification_variable_declaration | collection_member_declaration}}*
[hierarchical_query_clause]
[asof_clause]
in_expression ::= { in_expression_expression | nested_array_expression } [NOT] IN { ( in_item {, in_item}* ) | (subquery) | ( nested_array_item {, nested_array_item}+ ) | collection_valued_input_parameter }
in_expression_expression ::= { state_field_path_expression | type_discriminator |
single_valued_input_parameter | identification_variable |
scalar_expression }
nested_array_expression ::= ( in_expression_expression {, in_expression_expression}+ )
nested_array_item ::= ( in_item {, in_item}+ )
hierarchical_query_clause ::= [start_with_clause] connectby_clause [order_siblings_by_clause]
start_with_clause ::= START WITH conditional_expression
connectby_clause ::= CONNECT BY { single_valued_object_path_expression | collection_valued_path_expression }
order_siblings_by_clause ::= ORDER SIBLINGS BY orderby_item {, orderby_item}*
asof_clause ::= AS OF { SCN | TIMESTAMP } scalar_expression
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.
Modifier and Type | Field and Description |
---|---|
static EclipseLinkVersion |
VERSION
The EclipseLink version, which is 2.5.
|
Constructor and Description |
---|
EclipseLinkJPQLGrammar2_5()
Creates a new
EclipseLinkJPQLGrammar2_5 . |
EclipseLinkJPQLGrammar2_5(AbstractJPQLGrammar jpqlGrammar)
Creates a new
EclipseLinkJPQLGrammar2_5 . |
Modifier and Type | Method and Description |
---|---|
protected JPQLGrammar |
buildBaseGrammar()
Creates the base
JPQLGrammar this one extends, if one exists. |
static void |
extend(AbstractJPQLGrammar jpqlGrammar)
Extends the given
JPQLGrammar with the information of this one without instantiating
the base JPQLGrammar . |
JPAVersion |
getJPAVersion()
Returns the
JPAVersion of the Java Persistence supported by this grammar. |
java.lang.String |
getProvider()
Returns the persistence provider name.
|
java.lang.String |
getProviderVersion()
Returns the version of the persistence provider.
|
protected void |
initializeBNFs()
Registers the JPQL query BNFs defining the JPQL grammar.
|
protected void |
initializeExpressionFactories()
Registers the
ExpressionFactories required to properly parse JPQL
queries. |
protected void |
initializeIdentifiers()
Registers the JPQL identifiers support by this
JPQLGrammar . |
static JPQLGrammar |
instance()
Returns the singleton instance of this class.
|
java.lang.String |
toString() |
addChildBNF, addChildFactory, addIdentifier, addIdentifiers, buildExpressionRegistry, getBaseGrammar, getExpressionRegistry, initialize, registerBNF, registerFactory, registerIdentifierRole, registerIdentifierVersion, setFallbackBNFId, setFallbackExpressionFactoryId, setHandleCollection, setHandleNestedArray, setHandleSubExpression
public static final EclipseLinkVersion VERSION
public EclipseLinkJPQLGrammar2_5()
EclipseLinkJPQLGrammar2_5
.public EclipseLinkJPQLGrammar2_5(AbstractJPQLGrammar jpqlGrammar)
EclipseLinkJPQLGrammar2_5
.jpqlGrammar
- The JPQLGrammar
to extend with the content of this one without
instantiating the base JPQLGrammar
public static void extend(AbstractJPQLGrammar jpqlGrammar)
JPQLGrammar
with the information of this one without instantiating
the base JPQLGrammar
.jpqlGrammar
- The JPQLGrammar
to extend with the content of this one without
instantiating the base JPQLGrammar
public static JPQLGrammar instance()
EclipseLinkJPQLGrammar2_5
protected JPQLGrammar buildBaseGrammar()
JPQLGrammar
this one extends, if one exists.
IMPORTANT: The singleton instance of any JPQLGrammar
(for example JPQLGrammar1_0.instance()
cannot be used, the API does not support
extending it, a new instance has to be created.
buildBaseGrammar
in class AbstractJPQLGrammar
JPQLGrammar
or null
if there is no base grammarpublic JPAVersion getJPAVersion()
JPAVersion
of the Java Persistence supported by this grammar.JPA version
supported by this grammarpublic java.lang.String getProvider()
null
should never be returnedpublic java.lang.String getProviderVersion()
protected void initializeBNFs()
initializeBNFs
in class AbstractJPQLGrammar
protected void initializeExpressionFactories()
ExpressionFactories
required to properly parse JPQL
queries. An ExpressionFactory
is responsible to create an Expression
object
that represents a portion of the JPQL query.initializeExpressionFactories
in class AbstractJPQLGrammar
protected void initializeIdentifiers()
JPQLGrammar
. The registration
involves registering the JPAVersion
and the IdentifierRole
.initializeIdentifiers
in class AbstractJPQLGrammar
public java.lang.String toString()
toString
in class java.lang.Object