- java.lang.Object
-
- org.eclipse.persistence.jpa.jpql.parser.AbstractJPQLGrammar
-
- org.eclipse.persistence.jpa.jpql.parser.JPQLGrammar3_1
-
- All Implemented Interfaces:
JPQLGrammar
public class JPQLGrammar3_1 extends AbstractJPQLGrammar
ThisJPQLGrammar
provides support for parsing JPQL queries defined in Jakarta Persistence 3.1.functions_returning_numerics ::= ABS(arithmetic_expression) | CEILING(arithmetic_expression) | EXP(arithmetic_expression) | FLOOR(arithmetic_expression) | LN(arithmetic_expression) | MOD(arithmetic_expression, arithmetic_expression) | POWER(arithmetic_expression, arithmetic_expression) | ROUND(arithmetic_expression, arithmetic_expression) | SIGN(arithmetic_expression) | SQRT(arithmetic_expression) | SIZE(collection_valued_path_expression) | INDEX(identification_variable) | extract_datetime_field extract_datetime_field := EXTRACT(datetime_field FROM datetime_expression) datetime_field := identification_variable functions_returning_datetime ::= CURRENT_DATE | CURRENT_TIME | CURRENT_TIMESTAMP | LOCAL local_datetime_type | extract_datetime_par local_datetime_type ::= DATE | ..... matches Java java.time.LocalDate TIME | ..... matches Java java.time.LocalTime DATETIME ..... matches Java java.time.LocalDateTime
-
-
Constructor Summary
Constructors Constructor Description JPQLGrammar3_1()
Creates an insance of Jakarta Persistence 3.1 JPQL grammar.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected JPQLGrammar
buildBaseGrammar()
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
.JPAVersion
getJPAVersion()
Returns theJPAVersion
of the Java Persistence supported by this grammar.String
getProvider()
Returns the persistence provider name.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 theExpressionFactories
required to properly parse JPQL queries.protected void
initializeIdentifiers()
Registers the JPQL identifiers support by thisJPQLGrammar
.static JPQLGrammar
instance()
Returns the singleton instance of the default implementation ofJPQLGrammar
which provides support for the JPQL grammar defined in the Jakarta Persistence 3.1 functional specification.String
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
-
-
-
-
Method Detail
-
extend
public static void extend(AbstractJPQLGrammar jpqlGrammar)
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
public static JPQLGrammar instance()
Returns the singleton instance of the default implementation ofJPQLGrammar
which provides support for the JPQL grammar defined in the Jakarta Persistence 3.1 functional specification.- Returns:
- The
JPQLGrammar
that only has support for Jakarta Persistence 3.1
-
buildBaseGrammar
protected JPQLGrammar 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
public JPAVersion 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
public String getProvider()
Description copied from interface:JPQLGrammar
Returns the persistence provider name.- Returns:
- The name of the persistence provider,
null
should never be returned
-
getProviderVersion
public String 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
-
-