Class EclipseLinkJPQLQueryHelper
java.lang.Object
org.eclipse.persistence.jpa.jpql.tools.AbstractJPQLQueryHelper
org.eclipse.persistence.jpa.jpql.tools.EclipseLinkJPQLQueryHelper
This helper can perform the following operations over a JPQL query:
- Calculates the result type of a query:
AbstractJPQLQueryHelper.getResultType(); - Calculates the type of an input parameter:
AbstractJPQLQueryHelper.getParameterType(String). - Calculates the possible choices to complete the query from a given
position (used for content assist):
AbstractJPQLQueryHelper.buildContentAssistProposals(int). - Validates the query by introspecting it grammatically and semantically:
- Refactoring support:
buildBasicRefactoringTool()provides support for generating the delta of the refactoring operation through a collection ofTextEditobjects.buildRefactoringTool()provides support for refactoring the JPQL query through the editableStateObjectand once all refactoring operations have been executed, theIJPQLQueryFormatterwill generate a new string representation of the JPQL query.
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.
- Since:
- 2.4
- Version:
- 2.5
-
Constructor Summary
ConstructorsConstructorDescriptionEclipseLinkJPQLQueryHelper(JPQLGrammar jpqlGrammar) Creates a newEclipseLinkJPQLQueryHelper.EclipseLinkJPQLQueryHelper(JPQLQueryContext queryContext) Creates a newEclipseLinkJPQLQueryHelper. -
Method Summary
Modifier and TypeMethodDescriptionCreates the concrete instance of the tool that can refactor the content of a JPQL query.protected AbstractContentAssistVisitorbuildContentAssistVisitor(JPQLQueryContext queryContext) Creates the concrete instance of the content assist visitor that will give the possible choices based on the position of the cursor within the JPQL query.protected EclipseLinkSemanticValidatorExtensionCreates a newEclipseLinkSemanticValidatorExtension, which will provide additional support for non-JPA related information.protected EclipseLinkGrammarValidatorbuildGrammarValidator(JPQLGrammar jpqlGrammar) Creates the concrete instance of the validator that will grammatically validate the JPQL query.protected JPQLQueryContextbuildJPQLQueryContext(JPQLGrammar jpqlGrammar) Creates a context that will be used to store and retrieve information about the JPQL query.protected IJPQLQueryBuilderCreates the rightIJPQLQueryBuilderbased on the JPQL grammar.Creates the concrete instance of the tool that can refactor the content of a JPQL query.protected AbstractEclipseLinkSemanticValidatorbuildSemanticValidator(JPQLQueryContext queryContext) Creates the concrete instance of the validator that will semantically validate the JPQL query.Methods inherited from class org.eclipse.persistence.jpa.jpql.tools.AbstractJPQLQueryHelper
buildContentAssistProposals, buildContentAssistProposals, buildNumericTypeComparator, dispose, getContentAssistVisitor, getGrammar, getGrammarValidator, getJPQLExpression, getParameterType, getParsedJPQLQuery, getProvider, getQuery, getQueryContext, getResultType, getSemanticValidator, getType, getTypeHelper, getTypeRepository, setJPQLExpression, setQuery, validate, validate, validateGrammar, validateGrammar, validateSemantic, validateSemantic
-
Constructor Details
-
EclipseLinkJPQLQueryHelper
Creates a newEclipseLinkJPQLQueryHelper.- Parameters:
jpqlGrammar- TheJPQLGrammarthat will determine how to parse JPQL queries
-
EclipseLinkJPQLQueryHelper
Creates a newEclipseLinkJPQLQueryHelper.- Parameters:
queryContext- The context used to query information about the JPQL query
-
-
Method Details
-
buildBasicRefactoringTool
Description copied from class:AbstractJPQLQueryHelperCreates the concrete instance of the tool that can refactor the content of a JPQL query. This version simply provides the delta of the refactoring operations.- Specified by:
buildBasicRefactoringToolin classAbstractJPQLQueryHelper- Returns:
- The concrete instance of
RefactoringTool - See Also:
-
buildContentAssistVisitor
Description copied from class:AbstractJPQLQueryHelperCreates the concrete instance of the content assist visitor that will give the possible choices based on the position of the cursor within the JPQL query.- Specified by:
buildContentAssistVisitorin classAbstractJPQLQueryHelper- Parameters:
queryContext- The context used to query information about the JPQL query- Returns:
- A new concrete instance of
AbstractContentAssistVisitor
-
buildEclipseLinkSemanticValidatorExtension
Creates a newEclipseLinkSemanticValidatorExtension, which will provide additional support for non-JPA related information.- Returns:
- Either a new concrete instance of
EclipseLinkSemanticValidatorExtensionorEclipseLinkSemanticValidatorExtension.NULL_EXTENSIONif none is required
-
buildGrammarValidator
Description copied from class:AbstractJPQLQueryHelperCreates the concrete instance of the validator that will grammatically validate the JPQL query.- Specified by:
buildGrammarValidatorin classAbstractJPQLQueryHelper- Parameters:
jpqlGrammar- The context used to query information about the JPQL query- Returns:
- A new concrete instance of
AbstractGrammarValidator
-
buildJPQLQueryContext
Description copied from class:AbstractJPQLQueryHelperCreates a context that will be used to store and retrieve information about the JPQL query.- Specified by:
buildJPQLQueryContextin classAbstractJPQLQueryHelper- Parameters:
jpqlGrammar- The JPQL grammar that is required for dictating how the JPQL query will be parsed. It is also used by validation and by the content assist- Returns:
- A new
JPQLQueryContext
-
buildQueryBuilder
Creates the rightIJPQLQueryBuilderbased on the JPQL grammar.- Returns:
- A new concrete instance of
IJPQLQueryBuilder
-
buildRefactoringTool
Description copied from class:AbstractJPQLQueryHelperCreates the concrete instance of the tool that can refactor the content of a JPQL query. This version provides a way to manipulate the editable version of the JPQL query (StateObjectand simply outputs the result of the refactoring operations, i.e. the updated JPQL query).- Specified by:
buildRefactoringToolin classAbstractJPQLQueryHelper- Returns:
- The concrete instance of
RefactoringTool - See Also:
-
buildSemanticValidator
protected AbstractEclipseLinkSemanticValidator buildSemanticValidator(JPQLQueryContext queryContext) Description copied from class:AbstractJPQLQueryHelperCreates the concrete instance of the validator that will semantically validate the JPQL query.- Specified by:
buildSemanticValidatorin classAbstractJPQLQueryHelper- Parameters:
queryContext- The context used to query information about the JPQL query- Returns:
- A new concrete instance of
AbstractSemanticValidator
-