Class AbstractJPQLQueryBuilder
java.lang.Object
org.eclipse.persistence.jpa.jpql.tools.model.AbstractJPQLQueryBuilder
- All Implemented Interfaces:
IJPQLQueryBuilder
- Direct Known Subclasses:
EclipseLinkJPQLQueryBuilder,JPQLQueryBuilder1_0,JPQLQueryBuilder2_0,JPQLQueryBuilder2_1
An abstract implementation of
IJPQLQueryBuilder that parses a JPQL query or any JPQL
fragments and creates the StateObject representation by delegating the creation to an
instance of BasicStateObjectBuilder.- Since:
- 2.4
- Version:
- 2.4
- See Also:
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedCreates a newAbstractJPQLQueryBuilder. -
Method Summary
Modifier and TypeMethodDescriptionCreates a builder that can create aCASEexpression programmatically.buildStateObject(StateObject parent, CharSequence jpqlFragment, String queryBNFId) Creates aStateObjectrepresentation of the given JPQL fragment.buildStateObject(IManagedTypeProvider provider, CharSequence jpqlQuery, boolean tolerant) Creates a state model representation of a JPQL query that can be edited.buildStateObject(IManagedTypeProvider provider, CharSequence jpqlQuery, String queryBNFId, boolean tolerant) Creates a state model representation of a JPQL query that can be edited.protected abstract BasicStateObjectBuilderCreates the builder that creates theStateObjectfor eachExpression.protected final BasicStateObjectBuilderReturns the builder that creates theStateObjectfor eachExpression.protected JPQLExpressionparse(CharSequence jpqlQuery, JPQLGrammar jpqlGrammar, boolean tolerant) Parses the given JPQL query with tolerant mode turned on.protected JPQLExpressionparse(CharSequence jpqFragment, JPQLGrammar jpqlGrammar, String queryBNFId) Parses the given JPQL fragment with tolerant mode turned on.protected ExpressionVisitorwrap(BasicStateObjectBuilder builder) If a subclass needs to wrap the givenBasicStateObjectBuilderwith another visitor can do so by simply overriding this method.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.eclipse.persistence.jpa.jpql.tools.model.IJPQLQueryBuilder
buildStateObjectBuilder, buildStateObjectBuilder, buildStateObjectBuilder, buildStateObjectBuilder, getGrammar
-
Constructor Details
-
AbstractJPQLQueryBuilder
protected AbstractJPQLQueryBuilder()Creates a newAbstractJPQLQueryBuilder.
-
-
Method Details
-
buildCaseExpressionStateObjectBuilder
Description copied from interface:IJPQLQueryBuilderCreates a builder that can create aCASEexpression programmatically. Once the expression is complete,ICaseExpressionStateObjectBuilder.buildStateObject()will return the result.- Specified by:
buildCaseExpressionStateObjectBuilderin interfaceIJPQLQueryBuilder- Parameters:
parent- TheStateObjectthat will be the parent of the newly created model- Returns:
- The builder of a
CASEexpression
-
buildStateObject
public JPQLQueryStateObject buildStateObject(IManagedTypeProvider provider, CharSequence jpqlQuery, boolean tolerant) Description copied from interface:IJPQLQueryBuilderCreates a state model representation of a JPQL query that can be edited.- Specified by:
buildStateObjectin interfaceIJPQLQueryBuilder- Parameters:
provider- The provider of managed typesjpqlQuery- The JPQL query to parse into aStateObjectmodeltolerant- Determines if the parsing system should be tolerant, meaning if it should try to parse invalid or incomplete queries- Returns:
- The root of the
StateObjectmodel that represents the edited form of the JPQL query
-
buildStateObject
public JPQLQueryStateObject buildStateObject(IManagedTypeProvider provider, CharSequence jpqlQuery, String queryBNFId, boolean tolerant) Description copied from interface:IJPQLQueryBuilderCreates a state model representation of a JPQL query that can be edited.- Specified by:
buildStateObjectin interfaceIJPQLQueryBuilder- Parameters:
provider- The provider of managed typesjpqlQuery- The JPQL query to parse into aStateObjectmodelqueryBNFId- The unique identifier of the query BNF that will be used to parse the fragmenttolerant- Determines if the parsing system should be tolerant, meaning if it should try to parse invalid or incomplete queries- Returns:
- The root of the
StateObjectmodel that represents the edited form of the JPQL query
-
buildStateObject
public StateObject buildStateObject(StateObject parent, CharSequence jpqlFragment, String queryBNFId) Description copied from interface:IJPQLQueryBuilderCreates aStateObjectrepresentation of the given JPQL fragment. In order to properly parse the fragment, the given unique identifier of theJPQLQueryBNFwill determine how to parse it.It is possible the given JPQL fragment has more than one expression, in this case, parsing should stop at the first comma (x, y) or space (x y) where x and y are two separate expressions.
- Specified by:
buildStateObjectin interfaceIJPQLQueryBuilder- Parameters:
parent- TheStateObjectthat will be the parent of the newly created modeljpqlFragment- A portion of a JPQL query that will be parsed and theStateObjectrepresentation will be createdqueryBNFId- The unique identifier of the query BNF that will be used to parse the fragment- Returns:
- The
StateObjectrepresentation of the given JPQL fragment
-
buildStateObjectBuilder
Creates the builder that creates theStateObjectfor eachExpression.- Returns:
- The builder that will be visiting the
Expression
-
getStateObjectBuilder
Returns the builder that creates theStateObjectfor eachExpression.- Returns:
- The builder that will be visiting the
Expression
-
parse
Parses the given JPQL query with tolerant mode turned on.- Parameters:
jpqlQuery- The string representation of the JPQL query to parsejpqlGrammar- The JPQL grammar that defines how to parse a JPQL querytolerant- Determines if the parsing system should be tolerant, meaning if it should try to parse invalid or incomplete queries- Returns:
- The root of the parsed tree representation of the JPQL query
-
parse
protected JPQLExpression parse(CharSequence jpqFragment, JPQLGrammar jpqlGrammar, String queryBNFId) Parses the given JPQL fragment with tolerant mode turned on.- Parameters:
jpqFragment- The string representation of the portion of a JPQL query to parsejpqlGrammar- The JPQL grammar that defines how to parse a JPQL queryqueryBNFId- The unique identifier of theJPQLQueryBNF- Returns:
- The root of the parsed tree representation of the JPQL fragment
-
wrap
If a subclass needs to wrap the givenBasicStateObjectBuilderwith another visitor can do so by simply overriding this method.buildStateObjectBuilder()can't be easily overridden with anExpressionVisitordue to the constraint on the return type.- Parameters:
builder- The builder to wrap- Returns:
- By default the given builder is returned
-