Top Description Fields Constructors Methods
org.eclipse.persistence.jpa.jpql.parser

public final Class EclipseLinkJPQLGrammar2_4

extends AbstractJPQLGrammar
Class Inheritance
Annotations
@SuppressWarnings:nls
Imports
org.eclipse.persistence.jpa.jpql.EclipseLinkVersion, .JPAVersion, org.eclipse.persistence.jpa.jpql.parser.FunctionExpressionFactory.ParameterCount

This JPQLGrammar provides support for parsing JPQL queries defined in JSR-338 - Java Persistence 2.1 and the additional support provided by EclipseLink 2.4.

The BNFs of the additional support are the following:
 select_statement ::= select_clause from_clause [where_clause] [groupby_clause] [having_clause] [orderby_clause] {union_clause}*

union_clause ::= { UNION | INTERSECT | EXCEPT} [ALL] subquery

from_clause ::= FROM identification_variable_declaration {, {identification_variable_declaration |
                                                             collection_member_declaration |
                                                             (subquery) |
                                                             table_variable_declaration }}*

range_variable_declaration ::= root_object [AS] identification_variable

root_object ::= abstract_schema_name | fully_qualified_class_name

table_variable_declaration ::= table_expression [AS] identification_variable

join ::= join_spec { abstract_schema_name | join_association_path_expression } [AS] identification_variable [join_condition]

functions_returning_datetime ::= cast_expression |
                                 extract_expression |
                                 ...

functions_returning_string ::= cast_expression |
                               extract_expression |
                               ...

functions_returning_numeric ::= cast_expression |
                                extract_expression |
                                ...

simple_cond_expression ::= regexp_expression |
                           ...

function_expression ::= { FUNC | FUNCTION | OPERATOR | SQL | COLUMN } (string_literal {, function_arg}*)

regexp_expression ::= string_expression REGEXP pattern_value

extract_expression ::= EXTRACT(date_part_literal [FROM] scalar_expression)

table_expression ::= TABLE(string_literal)

date_part_literal ::= { MICROSECOND | SECOND | MINUTE | HOUR | DAY | WEEK | MONTH | QUARTER |
                        YEAR | SECOND_MICROSECOND | MINUTE_MICROSECOND | MINUTE_SECOND |
                        HOUR_MICROSECOND | HOUR_SECOND | HOUR_MINUTE | DAY_MICROSECOND |
                        DAY_SECOND | DAY_MINUTE | DAY_HOUR | YEAR_MONTH, etc }

cast_expression ::= CAST(scalar_expression [AS] database_type)

database_type ::= data_type_literal [( [numeric_literal [, numeric_literal]] )]

data_type_literal ::= [CHAR, VARCHAR, NUMERIC, INTEGER, DATE, TIME, TIMESTAMP, etc]

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.

Author
Pascal Filion
Since
2.4
Version
2.5

Field Summary

Modifier and TypeField and Description
private static final JPQLGrammar
INSTANCE

The singleton instance of this EclipseLinkJPQLGrammar2_4.

public static final EclipseLinkVersion
VERSION

The EclipseLink version, which is 2.4.

Constructor Summary

AccessConstructor and Description
public
EclipseLinkJPQLGrammar2_4()

Creates a new EclipseLinkJPQLGrammar2_4.

private
EclipseLinkJPQLGrammar2_4(AbstractJPQLGrammar
The JPQLGrammar to extend with the content of this one without instantiating the base JPQLGrammar
jpqlGrammar
)

Creates a new EclipseLinkJPQLGrammar2_4.

Method Summary

Modifier and TypeMethod and Description
protected JPQLGrammar
buildBaseGrammar()

Implements abstract org.eclipse.persistence.jpa.jpql.parser.AbstractJPQLGrammar.buildBaseGrammar.

Creates the base JPQLGrammar this one extends, if one exists.
public static void
extend(AbstractJPQLGrammar
The JPQLGrammar to extend with the content of this one without instantiating the base JPQLGrammar
jpqlGrammar
)

Extends the given JPQLGrammar with the information of this one without instantiating the base JPQLGrammar.

public JPAVersion
getJPAVersion()

Implements org.eclipse.persistence.jpa.jpql.parser.JPQLGrammar.getJPAVersion.

Returns the JPAVersion of the Java Persistence supported by this grammar.
public String
getProvider()

Implements org.eclipse.persistence.jpa.jpql.parser.JPQLGrammar.getProvider.

Returns the persistence provider name.
public String
getProviderVersion()

Implements org.eclipse.persistence.jpa.jpql.parser.JPQLGrammar.getProviderVersion.

Returns the version of the persistence provider.
protected void
initializeBNFs()

Implements abstract org.eclipse.persistence.jpa.jpql.parser.AbstractJPQLGrammar.initializeBNFs.

Registers the JPQL query BNFs defining the JPQL grammar.
protected void
protected void
public static JPQLGrammar

Returns:

The singleton instance of EclipseLinkJPQLGrammar2_4
instance
()

Returns the singleton instance of this class.

public String
toString()

Overrides java.lang.Object.toString.

Returns a string representation of the object.
Inherited from org.eclipse.persistence.jpa.jpql.parser.AbstractJPQLGrammar:
addChildBNFaddChildFactoryaddIdentifieraddIdentifiersbuildExpressionRegistrygetBaseGrammargetExpressionRegistryinitializeregisterBNFregisterFactoryregisterIdentifierRoleregisterIdentifierVersionsetFallbackBNFIdsetFallbackExpressionFactoryIdsetHandleCollectionsetHandleNestedArraysetHandleSubExpression

Field Detail

INSTANCEback to summary
private static final JPQLGrammar INSTANCE

The singleton instance of this EclipseLinkJPQLGrammar2_4.

VERSIONback to summary
public static final EclipseLinkVersion VERSION

The EclipseLink version, which is 2.4.

Constructor Detail

EclipseLinkJPQLGrammar2_4back to summary
public EclipseLinkJPQLGrammar2_4()

Creates a new EclipseLinkJPQLGrammar2_4.

EclipseLinkJPQLGrammar2_4back to summary
private EclipseLinkJPQLGrammar2_4(AbstractJPQLGrammar jpqlGrammar)

Creates a new EclipseLinkJPQLGrammar2_4.

Parameters
jpqlGrammar:AbstractJPQLGrammar

The JPQLGrammar to extend with the content of this one without instantiating the base JPQLGrammar

Method Detail

buildBaseGrammarback to summary
protected JPQLGrammar buildBaseGrammar()

Implements abstract org.eclipse.persistence.jpa.jpql.parser.AbstractJPQLGrammar.buildBaseGrammar.

Doc from org.eclipse.persistence.jpa.jpql.parser.AbstractJPQLGrammar.buildBaseGrammar.

Creates the base JPQLGrammar this one extends, if one exists.

Important Note

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.

Returns:JPQLGrammar

The base JPQLGrammar or null if there is no base grammar

Annotations
@Override
extendback to summary
public static void extend(AbstractJPQLGrammar jpqlGrammar)

Extends the given JPQLGrammar with the information of this one without instantiating the base JPQLGrammar.

Parameters
jpqlGrammar:AbstractJPQLGrammar

The JPQLGrammar to extend with the content of this one without instantiating the base JPQLGrammar

getJPAVersionback to summary
public JPAVersion getJPAVersion()

Implements org.eclipse.persistence.jpa.jpql.parser.JPQLGrammar.getJPAVersion.

Doc from org.eclipse.persistence.jpa.jpql.parser.JPQLGrammar.getJPAVersion.

Returns the JPAVersion of the Java Persistence supported by this grammar.

Returns:JPAVersion

The JPA version supported by this grammar

Annotations
@Override
getProviderback to summary
public String getProvider()

Implements org.eclipse.persistence.jpa.jpql.parser.JPQLGrammar.getProvider.

Doc from org.eclipse.persistence.jpa.jpql.parser.JPQLGrammar.getProvider.

Returns the persistence provider name.

Returns:String

The name of the persistence provider, null should never be returned

Annotations
@Override
getProviderVersionback to summary
public String getProviderVersion()

Implements org.eclipse.persistence.jpa.jpql.parser.JPQLGrammar.getProviderVersion.

Doc from org.eclipse.persistence.jpa.jpql.parser.JPQLGrammar.getProviderVersion.

Returns the version of the persistence provider.

Returns:String

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

Annotations
@Override
initializeBNFsback to summary
protected void initializeBNFs()

Implements abstract org.eclipse.persistence.jpa.jpql.parser.AbstractJPQLGrammar.initializeBNFs.

Doc from org.eclipse.persistence.jpa.jpql.parser.AbstractJPQLGrammar.initializeBNFs.

Registers the JPQL query BNFs defining the JPQL grammar.

Annotations
@Override
initializeExpressionFactoriesback to summary
protected void initializeExpressionFactories()

Implements abstract org.eclipse.persistence.jpa.jpql.parser.AbstractJPQLGrammar.initializeExpressionFactories.

Doc from org.eclipse.persistence.jpa.jpql.parser.AbstractJPQLGrammar.initializeExpressionFactories.

Registers the ExpressionFactories required to properly parse JPQL queries. An ExpressionFactory is responsible to create an Expression object that represents a portion of the JPQL query.

Annotations
@Override
initializeIdentifiersback to summary
protected void initializeIdentifiers()

Implements abstract org.eclipse.persistence.jpa.jpql.parser.AbstractJPQLGrammar.initializeIdentifiers.

Doc from org.eclipse.persistence.jpa.jpql.parser.AbstractJPQLGrammar.initializeIdentifiers.

Registers the JPQL identifiers support by this JPQLGrammar. The registration involves registering the JPAVersion and the IdentifierRole.

Annotations
@Override
instanceback to summary
public static JPQLGrammar instance()

Returns the singleton instance of this class.

Returns:JPQLGrammar

The singleton instance of EclipseLinkJPQLGrammar2_4

toStringback to summary
public String toString()

Overrides java.lang.Object.toString.

Doc from java.lang.Object.toString.

Returns a string representation of the object.

Returns:String

a string representation of the object.

Annotations
@Override