public final class EclipseLinkJPQLGrammar2_1 extends AbstractJPQLGrammar
This JPQLGrammar
provides support for parsing JPQL queries defined in JSR-337 - Java Persistence 2.0 and the additional
support provided by EclipseLink 2.1.
join ::= join_spec { join_association_path_expression | join_treat_association_path_expression } [AS] identification_variable
join_treat_association_path_expression ::= TREAT(join_association_path_expression AS entity_type_literal)
func_expression ::= FUNC(string_literal {, func_item}*)
func_item ::= new_value
between_expression ::= scalar_expression [NOT] BETWEEN scalar_expression AND scalar_expression
in_expression ::= in_expression_expression [NOT] IN { ( in_item {, in_item}* ) | (subquery) | collection_valued_input_parameter }
in_expression_expression ::= { state_field_path_expression | type_discriminator |
single_valued_input_parameter | identification_variable |
scalar_expression }
in_item ::= literal | single_valued_input_parameter | scalar_expression
scalar_expression ::= arithmetic_expression |
...
pattern_value ::= scalar_expression | arithmetic_expression
escape_character ::= scalar_expression
functions_returning_numerics ::= LENGTH(scalarExpression) |
LOCATE(scalarExpression, scalarExpression[, scalarExpression]) |
MOD(scalarExpression, scalarExpression) |
SQRT(scalarExpression)
func_expression |
...
functions_returning_strings ::= CONCAT(scalar_expression {, scalar_expression }+) |
SUBSTRING(scalar_expression, scalar_expression [, scalar_expression]) |
LOWER(scalar_expression) |
UPPER(scalar_expression) |
func_expression |
...
orderby_item ::= state_field_path_expression | result_variable | scalar_expression [ ASC | DESC ]
groupby_item ::= single_valued_path_expression | identification_variable | scalar_expression
aggregate_expression ::= { AVG | MAX | MIN | SUM | COUNT } ([DISTINCT] 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.1.
|
Constructor and Description |
---|
EclipseLinkJPQLGrammar2_1()
Creates a new
EclipseLinkJPQLGrammar2_1 . |
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_1()
EclipseLinkJPQLGrammar2_1
.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_1
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