Class EclipseLinkJPQLGrammar2_5
java.lang.Object
org.eclipse.persistence.jpa.jpql.parser.AbstractJPQLGrammar
org.eclipse.persistence.jpa.jpql.parser.EclipseLinkJPQLGrammar2_5
- All Implemented Interfaces:
JPQLGrammar
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.
- Since:
- 2.5
- Version:
- 2.5
-
Field Summary
Modifier and TypeFieldDescriptionstatic final EclipseLinkVersion
The EclipseLink version, which is 2.5. -
Constructor Summary
ConstructorDescriptionCreates a newEclipseLinkJPQLGrammar2_5
.EclipseLinkJPQLGrammar2_5
(AbstractJPQLGrammar jpqlGrammar) Creates a newEclipseLinkJPQLGrammar2_5
. -
Method Summary
Modifier and TypeMethodDescriptionprotected JPQLGrammar
Creates the baseJPQLGrammar
this one extends, if one exists.static void
extend
(AbstractJPQLGrammar jpqlGrammar) Extends the givenJPQLGrammar
with the information of this one without instantiating the baseJPQLGrammar
.Returns theJPAVersion
of the Java Persistence supported by this grammar.Returns the persistence provider name.Returns the version of the persistence provider.protected void
Registers the JPQL query BNFs defining the JPQL grammar.protected void
Registers theExpressionFactories
required to properly parse JPQL queries.protected void
Registers the JPQL identifiers support by thisJPQLGrammar
.static JPQLGrammar
instance()
Returns the singleton instance of this class.toString()
Methods inherited from class org.eclipse.persistence.jpa.jpql.parser.AbstractJPQLGrammar
addChildBNF, addChildFactory, addIdentifier, addIdentifiers, buildExpressionRegistry, getBaseGrammar, getExpressionRegistry, initialize, registerBNF, registerFactory, registerIdentifierRole, registerIdentifierVersion, setFallbackBNFId, setFallbackExpressionFactoryId, setHandleCollection, setHandleNestedArray, setHandleSubExpression
-
Field Details
-
VERSION
The EclipseLink version, which is 2.5.
-
-
Constructor Details
-
EclipseLinkJPQLGrammar2_5
public EclipseLinkJPQLGrammar2_5()Creates a newEclipseLinkJPQLGrammar2_5
. -
EclipseLinkJPQLGrammar2_5
Creates a newEclipseLinkJPQLGrammar2_5
.- Parameters:
jpqlGrammar
- TheJPQLGrammar
to extend with the content of this one without instantiating the baseJPQLGrammar
-
-
Method Details
-
extend
Extends the givenJPQLGrammar
with the information of this one without instantiating the baseJPQLGrammar
.- Parameters:
jpqlGrammar
- TheJPQLGrammar
to extend with the content of this one without instantiating the baseJPQLGrammar
-
instance
Returns the singleton instance of this class.- Returns:
- The singleton instance of
EclipseLinkJPQLGrammar2_5
-
buildBaseGrammar
Description copied from class:AbstractJPQLGrammar
Creates the baseJPQLGrammar
this one extends, if one exists.IMPORTANT: The singleton instance of any
JPQLGrammar
(for exampleJPQLGrammar1_0.instance()
cannot be used, the API does not support extending it, a new instance has to be created.- Specified by:
buildBaseGrammar
in classAbstractJPQLGrammar
- Returns:
- The base
JPQLGrammar
ornull
if there is no base grammar
-
getJPAVersion
Description copied from interface:JPQLGrammar
Returns theJPAVersion
of the Java Persistence supported by this grammar.- Returns:
- The
JPA version
supported by this grammar
-
getProvider
Description copied from interface:JPQLGrammar
Returns the persistence provider name.- Returns:
- The name of the persistence provider,
null
should never be returned
-
getProviderVersion
Description copied from interface:JPQLGrammar
Returns the version of the persistence provider.- Returns:
- 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
-
initializeBNFs
protected void initializeBNFs()Description copied from class:AbstractJPQLGrammar
Registers the JPQL query BNFs defining the JPQL grammar.- Specified by:
initializeBNFs
in classAbstractJPQLGrammar
-
initializeExpressionFactories
protected void initializeExpressionFactories()Description copied from class:AbstractJPQLGrammar
Registers theExpressionFactories
required to properly parse JPQL queries. AnExpressionFactory
is responsible to create anExpression
object that represents a portion of the JPQL query.- Specified by:
initializeExpressionFactories
in classAbstractJPQLGrammar
-
initializeIdentifiers
protected void initializeIdentifiers()Description copied from class:AbstractJPQLGrammar
Registers the JPQL identifiers support by thisJPQLGrammar
. The registration involves registering theJPAVersion
and theIdentifierRole
.- Specified by:
initializeIdentifiers
in classAbstractJPQLGrammar
-
toString
-