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 ofTextEdit
objects.buildRefactoringTool()
provides support for refactoring the JPQL query through the editableStateObject
and once all refactoring operations have been executed, theIJPQLQueryFormatter
will 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
ConstructorDescriptionEclipseLinkJPQLQueryHelper
(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 AbstractContentAssistVisitor
buildContentAssistVisitor
(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 EclipseLinkSemanticValidatorExtension
Creates a newEclipseLinkSemanticValidatorExtension
, which will provide additional support for non-JPA related information.protected EclipseLinkGrammarValidator
buildGrammarValidator
(JPQLGrammar jpqlGrammar) Creates the concrete instance of the validator that will grammatically validate the JPQL query.protected JPQLQueryContext
buildJPQLQueryContext
(JPQLGrammar jpqlGrammar) Creates a context that will be used to store and retrieve information about the JPQL query.protected IJPQLQueryBuilder
Creates the rightIJPQLQueryBuilder
based on the JPQL grammar.Creates the concrete instance of the tool that can refactor the content of a JPQL query.protected AbstractEclipseLinkSemanticValidator
buildSemanticValidator
(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
- TheJPQLGrammar
that 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:AbstractJPQLQueryHelper
Creates 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:
buildBasicRefactoringTool
in classAbstractJPQLQueryHelper
- Returns:
- The concrete instance of
RefactoringTool
- See Also:
-
buildContentAssistVisitor
Description copied from class:AbstractJPQLQueryHelper
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.- Specified by:
buildContentAssistVisitor
in 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
EclipseLinkSemanticValidatorExtension
orEclipseLinkSemanticValidatorExtension.NULL_EXTENSION
if none is required
-
buildGrammarValidator
Description copied from class:AbstractJPQLQueryHelper
Creates the concrete instance of the validator that will grammatically validate the JPQL query.- Specified by:
buildGrammarValidator
in 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:AbstractJPQLQueryHelper
Creates a context that will be used to store and retrieve information about the JPQL query.- Specified by:
buildJPQLQueryContext
in 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 rightIJPQLQueryBuilder
based on the JPQL grammar.- Returns:
- A new concrete instance of
IJPQLQueryBuilder
-
buildRefactoringTool
Description copied from class:AbstractJPQLQueryHelper
Creates 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 (StateObject
and simply outputs the result of the refactoring operations, i.e. the updated JPQL query).- Specified by:
buildRefactoringTool
in classAbstractJPQLQueryHelper
- Returns:
- The concrete instance of
RefactoringTool
- See Also:
-
buildSemanticValidator
protected AbstractEclipseLinkSemanticValidator buildSemanticValidator(JPQLQueryContext queryContext) Description copied from class:AbstractJPQLQueryHelper
Creates the concrete instance of the validator that will semantically validate the JPQL query.- Specified by:
buildSemanticValidator
in classAbstractJPQLQueryHelper
- Parameters:
queryContext
- The context used to query information about the JPQL query- Returns:
- A new concrete instance of
AbstractSemanticValidator
-