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
IJPQLExtension. |
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, setHandleSubExpressionpublic 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 JPQLGrammarpublic 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 JPQLGrammarpublic static JPQLGrammar instance()
EclipseLinkJPQLGrammar2_5protected 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 AbstractJPQLGrammarJPQLGrammar 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 AbstractJPQLGrammarprotected 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 AbstractJPQLGrammarprotected void initializeIdentifiers()
IJPQLExtension. The registration
involves registering the JPAVersion and the IdentifierRole.initializeIdentifiers in class AbstractJPQLGrammarpublic java.lang.String toString()
toString in class java.lang.Object