Top Description Inners Fields Constructors Methods
org.eclipse.persistence.jpa.jpql.tools

public Class DefaultContentAssistVisitor

extends AbstractContentAssistVisitor
Class Inheritance
Imports
org.eclipse.persistence.jpa.jpql.parser.AbsExpression, .ArithmeticFactor, .AvgFunction, .ConcatExpression, .DefaultJPQLGrammar, .JPQLGrammar, .LengthExpression, .LocateExpression, .LowerExpression, .ModExpression, .SqrtExpression, .SubstringExpression, .SumFunction, .TrimExpression, .UpperExpression

This visitor traverses the JPQL parsed tree and gathers the possible proposals at a given position.

Example:

 // Have the external form of an IQuery
IQuery query = ...

// Create a JPQLQueryContext
JPQLQueryContext context = new JPQLQueryContext();
context.setQuery(query);

// Create a map of the positions within the parsed tree
QueryPosition queryPosition = context.getJPQLExpression().buildPosition(query.getExpression(), position);

// Either a real extension that adds additional support or
ContentAssistExtension extension = ContentAssistExtension.NULL_HELPER;

// Create the visitor and visit the parsed tree
DefaultContentAssistVisitor visitor = new DefaultContentAssistVisitor(context);
visitor.buildProposals(queryPosition.getPosition(), extension);
queryPosition.getExpression().accept(visitor);

// Retrieve the proposals
ContentAssistProposals proposals = visitor.getProposals();

// Only required if the visitor is cached
visitor.dispose();

// Only required if the context is cached
context.dispose();

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.3
Version
2.5.1

Nested and Inner Type Summary

Modifier and TypeClass and Description
protected class
DefaultContentAssistVisitor.AcceptableTypeVisitor

The concrete instance that determines the return type of a function expression.

Field Summary

Inherited from org.eclipse.persistence.jpa.jpql.tools.AbstractContentAssistVisitor:
correctionshelpersidentifierFiltersINVALID_IDENTIFIER_FILTERlockedExpressionsproposalsqueryContextqueryPositionSPACE_LENGTHVALID_IDENTIFIER_FILTERvirtualSpaceswordwordParser

Constructor Summary

AccessConstructor and Description
public
DefaultContentAssistVisitor(JPQLQueryContext
The context used to query information about the query
queryContext
)

Creates a new DefaultContentAssistVisitor.

Method Summary

Modifier and TypeMethod and Description
protected DefaultContentAssistVisitor.AcceptableTypeVisitor
protected JPQLGrammar
getLatestGrammar()

Implements abstract org.eclipse.persistence.jpa.jpql.tools.AbstractContentAssistVisitor.getLatestGrammar.

Returns the latest supported JPQL grammar, which is required when checking the validity of a JPQL identifier.
protected boolean
isJoinFetchIdentifiable()

Implements abstract org.eclipse.persistence.jpa.jpql.tools.AbstractContentAssistVisitor.isJoinFetchIdentifiable.

Determines whether a JOIN FETCH expression can be identified by with an identification variable or not.
Inherited from org.eclipse.persistence.jpa.jpql.tools.AbstractContentAssistVisitor:
addAggregateIdentifieraddAggregateIdentifiersaddAggregateIdentifiersaddArithmeticIdentifiersaddClauseIdentifieraddClauseIdentifiersaddClauseIdentifiersaddComparisonIdentifiersaddCompositeIdentifieraddCompoundIdentifieraddCompoundIdentifiersaddCompoundIdentifiersaddEntitiesaddEntitiesaddEnumConstantaddEnumConstantsaddExpressionFactoryIdentifiersaddExpressionFactoryIdentifiersaddFunctionIdentifieraddFunctionIdentifiersaddFunctionIdentifiersaddFunctionIdentifiersaddIdentificationVariableaddIdentificationVariablesaddIdentificationVariablesaddIdentifieraddJoinIdentifiersaddLeftIdentificationVariablesaddLogicalIdentifiersaddRangeIdentificationVariableaddResultVariablesaddVirtualSpaceareArithmeticSymbolsAppendableareComparisonSymbolsAppendableareLogicalSymbolsAppendablebuildAppendableExpressionVisitorbuildCollectionCompoundTypeFilterbuildCollectionExpressionVisitorbuildCollectionMappingFilterbuildConcatExpressionCollectionHelperbuildConditionalClauseCollectionHelperbuildConstrutorCollectionHelperbuildDeclarationVisitorbuildDefaultMappingCollectorbuildDeleteClauseCollectionHelperbuildDeleteClauseStatementHelperbuildDifferentComparisonFilterbuildDoubleEncapsulatedCollectionHelperbuildEncapsulatedExpressionVisitorbuildEndingPositionFromInvalidExpressionbuildEndingQueryPositionBuilderbuildEnumVisitorbuildFilteringMappingCollectorbuildFollowingClausesVisitorbuildFollowingInvalidExpressionVisitorbuildFromClauseCollectionHelperbuildFromClauseStatementHelperbuildGroupByClauseCollectionHelperbuildGroupByClauseStatementHelperbuildHavingClauseStatementHelperbuildIncompleteCollectionExpressionVisitorbuildInvalidExpressionVisitorbuildJoinCollectionHelperbuildJPQLQueryBNFValidatorbuildMappingCollectorbuildMappingFilterbuildMappingFilterbuildMappingFilterBuilderbuildNonCollectionCompoundTypeFilterbuildNotExpressionVisitorbuildOrderByClauseCollectionHelperbuildOrderByClauseStatementHelperbuildPropertyMappingFilterbuildProposalsbuildProposalsbuildRangeVariableDeclarationVisitorbuildResultVariableVisitorbuildSelectClauseCollectionHelperbuildSelectClauseStatementHelperbuildSimpleFromClauseStatementHelperbuildSimpleGroupByClauseStatementHelperbuildSimpleHavingClauseStatementHelperbuildSimpleSelectClauseCollectionHelperbuildSimpleSelectClauseStatementHelperbuildSimpleWhereClauseSelectStatementHelperbuildSubqueryAppendableExpressionVisitorbuildSubqueryVisitorbuildTripleEncapsulatedCollectionHelperbuildUpdateClauseStatementHelperbuildUpdateItemCollectionHelperbuildVisitParentVisitorbuildWhenClauseConditionalClauseCollectionHelperbuildWhereClauseDeleteStatementHelperbuildWhereClauseSelectStatementHelperbuildWhereClauseUpdateStatementHelperbuildWithinInvalidExpressionVisitordisposefindRangeVariableDeclarationgetAcceptableTypegetAppendableExpressionVisitorgetCollectionExpressiongetCollectionExpressionVisitorgetConcatExpressionCollectionHelpergetConditionalClauseCollectionHelpergetConstructorCollectionHelpergetDeclarationVisitorgetDefaultMappingCollectorgetDeleteClauseCollectionHelpergetDeleteClauseStatementHelpergetDoubleEncapsulatedCollectionHelpergetEncapsulatedExpressionVisitorgetEndingQueryPositionBuildergetEnumVisitorgetExpressionFactorygetExpressionTypeVisitorgetFiltergetFollowingClausesVisitorgetFollowingInvalidExpressionVisitorgetFromClauseCollectionHelpergetFromClauseStatementHelpergetGroupByClauseCollectionHelpergetGroupByClauseStatementHelpergetHavingClauseStatementHelpergetHelpergetIdentifierRolegetIncompleteCollectionExpressionVisitorgetInvalidExpressionVisitorgetJoinCollectionHelpergetMappingCollectionFiltergetMappingFilterBuildergetMappingPropertyFiltergetNotExpressionVisitorgetOrderByClauseCollectionHelpergetOrderByClauseStatementHelpergetQueryBNFgetRangeVariableDeclarationVisitorgetResultVariableVisitorgetSelectClauseCollectionHelpergetSelectClauseStatementHelpergetSimpleFromClauseStatementHelpergetSimpleGroupByClauseStatementHelpergetSimpleHavingClauseStatementHelpergetSimpleSelectClauseCollectionHelpergetSimpleSelectClauseStatementHelpergetSimpleWhereClauseSelectStatementHelpergetSubqueryAppendableExpressionVisitorgetSubqueryVisitorgetTripleEncapsulatedCollectionHelpergetUpdateClauseStatementHelpergetUpdateItemCollectionHelpergetVisitParentVisitorgetWhenClauseConditionalClauseCollectionHelpergetWhereClauseDeleteStatementHelpergetWhereClauseSelectStatementHelpergetWhereClauseUpdateStatementHelpergetWithinInvalidExpressionVisitorhasClausesDefinedBetweenhasVirtualSpaceinitializeisAggregateisAppendableisAppendableToCollectionisClauseisClauseAppendableisCompleteisCompoundableisCompoundFunctionisDeclarationisEncapsulatedisEnumAllowedisFollowingInvalidExpressionisFunctionisInSubqueryisInvalidExpressionisLockedisNotExpressionisPositionWithinisPositionWithinisSubqueryAppendableisValidisValidisValidisValidisValidisValidProposalisValidVersionisWithinInvalidExpressionregisterHelperremoveVirtualSpacetoStringvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitAggregateFunctionvisitArithmeticExpressionvisitCollectionExpressionvisitEndingExpressionvisitEnumConstantvisitInvalidExpressionvisitLogicalExpressionvisitPathExpressionvisitPathExpressionvisitSingleEncapsulatedExpressionvisitSingleEncapsulatedExpressionvisitStatementvisitThirdPartyPathExpression

Constructor Detail

DefaultContentAssistVisitorback to summary
public DefaultContentAssistVisitor(JPQLQueryContext queryContext)

Creates a new DefaultContentAssistVisitor.

Parameters
queryContext:JPQLQueryContext

The context used to query information about the query

Exceptions
NullPointerException:
The JPQLQueryContext cannot be null

Method Detail

buildAcceptableTypeVisitorback to summary
protected DefaultContentAssistVisitor.AcceptableTypeVisitor buildAcceptableTypeVisitor()

Implements abstract org.eclipse.persistence.jpa.jpql.tools.AbstractContentAssistVisitor.buildAcceptableTypeVisitor.

Annotations
@Override
getLatestGrammarback to summary
protected JPQLGrammar getLatestGrammar()

Implements abstract org.eclipse.persistence.jpa.jpql.tools.AbstractContentAssistVisitor.getLatestGrammar.

Doc from org.eclipse.persistence.jpa.jpql.tools.AbstractContentAssistVisitor.getLatestGrammar.

Returns the latest supported JPQL grammar, which is required when checking the validity of a JPQL identifier. This is due to the fact that any JPQL identifiers defined in a more recent spec will be seen to be registered in version 1.0 of the spec. By returning the latest version, any JPQL identifiers should have a version registered.

Returns:JPQLGrammar

The latest JPQLGrammar supported by the provider

Annotations
@Override
isJoinFetchIdentifiableback to summary
protected boolean isJoinFetchIdentifiable()

Implements abstract org.eclipse.persistence.jpa.jpql.tools.AbstractContentAssistVisitor.isJoinFetchIdentifiable.

Doc from org.eclipse.persistence.jpa.jpql.tools.AbstractContentAssistVisitor.isJoinFetchIdentifiable.

Determines whether a JOIN FETCH expression can be identified by with an identification variable or not.

Returns:boolean

true if the expression can have an identification variable; false otherwise

Annotations
@Override
org.eclipse.persistence.jpa.jpql.tools back to summary

protected Class DefaultContentAssistVisitor.AcceptableTypeVisitor

extends AcceptableTypeVisitor
Class Inheritance

The concrete instance that determines the return type of a function expression.

Field Summary

Inherited from org.eclipse.persistence.jpa.jpql.tools.AbstractContentAssistVisitor.AcceptableTypeVisitor:
type

Constructor Summary

AccessConstructor and Description
protected

Method Summary

Modifier and TypeMethod and Description
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
Inherited from org.eclipse.persistence.jpa.jpql.tools.AbstractContentAssistVisitor.AcceptableTypeVisitor:
disposevisitvisit

Constructor Detail

AcceptableTypeVisitorback to summary
protected AcceptableTypeVisitor()

Method Detail

visitback to summary
public void visit(AbsExpression expression)

Overrides org.eclipse.persistence.jpa.jpql.parser.AbstractExpressionVisitor.visit.

Implements org.eclipse.persistence.jpa.jpql.parser.ExpressionVisitor.visit.

Doc from org.eclipse.persistence.jpa.jpql.parser.ExpressionVisitor.visit.

Visits the AbsExpression expression.

Parameters
expression:AbsExpression

The Expression to visit

Annotations
@Override
visitback to summary
public void visit(ArithmeticFactor expression)

Overrides org.eclipse.persistence.jpa.jpql.parser.AbstractExpressionVisitor.visit.

Implements org.eclipse.persistence.jpa.jpql.parser.ExpressionVisitor.visit.

Doc from org.eclipse.persistence.jpa.jpql.parser.ExpressionVisitor.visit.

Visits the ArithmeticFactor expression.

Parameters
expression:ArithmeticFactor

The Expression to visit

Annotations
@Override
visitback to summary
public void visit(AvgFunction expression)

Overrides org.eclipse.persistence.jpa.jpql.parser.AbstractExpressionVisitor.visit.

Implements org.eclipse.persistence.jpa.jpql.parser.ExpressionVisitor.visit.

Doc from org.eclipse.persistence.jpa.jpql.parser.ExpressionVisitor.visit.

Visits the AvgFunction expression.

Parameters
expression:AvgFunction

The Expression to visit

Annotations
@Override
visitback to summary
public void visit(ConcatExpression expression)

Overrides org.eclipse.persistence.jpa.jpql.parser.AbstractExpressionVisitor.visit.

Implements org.eclipse.persistence.jpa.jpql.parser.ExpressionVisitor.visit.

Doc from org.eclipse.persistence.jpa.jpql.parser.ExpressionVisitor.visit.

Visits the ConcatExpression expression.

Parameters
expression:ConcatExpression

The Expression to visit

Annotations
@Override
visitback to summary
public void visit(LengthExpression expression)

Overrides org.eclipse.persistence.jpa.jpql.parser.AbstractExpressionVisitor.visit.

Implements org.eclipse.persistence.jpa.jpql.parser.ExpressionVisitor.visit.

Doc from org.eclipse.persistence.jpa.jpql.parser.ExpressionVisitor.visit.

Visits the LengthExpression expression.

Parameters
expression:LengthExpression

The Expression to visit

Annotations
@Override
visitback to summary
public void visit(LocateExpression expression)

Overrides org.eclipse.persistence.jpa.jpql.parser.AbstractExpressionVisitor.visit.

Implements org.eclipse.persistence.jpa.jpql.parser.ExpressionVisitor.visit.

Doc from org.eclipse.persistence.jpa.jpql.parser.ExpressionVisitor.visit.

Visits the LocateExpression expression.

Parameters
expression:LocateExpression

The Expression to visit

Annotations
@Override
visitback to summary
public void visit(LowerExpression expression)

Overrides org.eclipse.persistence.jpa.jpql.parser.AbstractExpressionVisitor.visit.

Implements org.eclipse.persistence.jpa.jpql.parser.ExpressionVisitor.visit.

Doc from org.eclipse.persistence.jpa.jpql.parser.ExpressionVisitor.visit.

Visits the LowerExpression expression.

Parameters
expression:LowerExpression

The Expression to visit

Annotations
@Override
visitback to summary
public void visit(ModExpression expression)

Overrides org.eclipse.persistence.jpa.jpql.parser.AbstractExpressionVisitor.visit.

Implements org.eclipse.persistence.jpa.jpql.parser.ExpressionVisitor.visit.

Doc from org.eclipse.persistence.jpa.jpql.parser.ExpressionVisitor.visit.

Visits the ModExpression expression.

Parameters
expression:ModExpression

The Expression to visit

Annotations
@Override
visitback to summary
public void visit(SqrtExpression expression)

Overrides org.eclipse.persistence.jpa.jpql.parser.AbstractExpressionVisitor.visit.

Implements org.eclipse.persistence.jpa.jpql.parser.ExpressionVisitor.visit.

Doc from org.eclipse.persistence.jpa.jpql.parser.ExpressionVisitor.visit.

Visits the SqrtExpression expression.

Parameters
expression:SqrtExpression

The Expression to visit

Annotations
@Override
visitback to summary
public void visit(SubstringExpression expression)

Overrides org.eclipse.persistence.jpa.jpql.parser.AbstractExpressionVisitor.visit.

Implements org.eclipse.persistence.jpa.jpql.parser.ExpressionVisitor.visit.

Doc from org.eclipse.persistence.jpa.jpql.parser.ExpressionVisitor.visit.

Visits the SubstringExpression expression.

Parameters
expression:SubstringExpression

The Expression to visit

Annotations
@Override
visitback to summary
public void visit(SumFunction expression)

Overrides org.eclipse.persistence.jpa.jpql.parser.AbstractExpressionVisitor.visit.

Implements org.eclipse.persistence.jpa.jpql.parser.ExpressionVisitor.visit.

Doc from org.eclipse.persistence.jpa.jpql.parser.ExpressionVisitor.visit.

Visits the SumFunction expression.

Parameters
expression:SumFunction

The Expression to visit

Annotations
@Override
visitback to summary
public void visit(TrimExpression expression)

Overrides org.eclipse.persistence.jpa.jpql.parser.AbstractExpressionVisitor.visit.

Implements org.eclipse.persistence.jpa.jpql.parser.ExpressionVisitor.visit.

Doc from org.eclipse.persistence.jpa.jpql.parser.ExpressionVisitor.visit.

Visits the TrimExpression expression.

Parameters
expression:TrimExpression

The Expression to visit

Annotations
@Override
visitback to summary
public void visit(UpperExpression expression)

Overrides org.eclipse.persistence.jpa.jpql.parser.AbstractExpressionVisitor.visit.

Implements org.eclipse.persistence.jpa.jpql.parser.ExpressionVisitor.visit.

Doc from org.eclipse.persistence.jpa.jpql.parser.ExpressionVisitor.visit.

Visits the UpperExpression expression.

Parameters
expression:UpperExpression

The UpperExpression to visit

Annotations
@Override