Class AbstractContentAssistVisitor
- All Implemented Interfaces:
ExpressionVisitor
- Direct Known Subclasses:
DefaultContentAssistVisitor,EclipseLinkContentAssistVisitor
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.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static classprotected static classThis helper handles adding proposals within a conditional expression that might be parsed as a single expression or has a collection of expression, which means the fragment is either incomplete or invalid.protected static classprotected static classAbstractContentAssistVisitor.AbstractGroupByClauseStatementHelper<T extends AbstractSelectStatement>protected static classprotected static classprotected static classprotected static classAbstractContentAssistVisitor.AbstractWhereClauseSelectStatementHelper<T extends AbstractSelectStatement>protected static classThis visitor retrieves the permitted type from the path expression's parent.protected static classThis visitor scans the visitedExpressionand determines if a JPQL identifier can be added ("appended") when the position of the cursor is at the end of the expression.protected static enumThis is used to determine howAbstractContentAssistVisitor.AppendableExpressionVisitorshould perform the check.protected static interfaceThis helper is used to determine how to add proposals within a collection of expressions.protected static final classThis visitor retrieves theCollectionExpressionif it is visited.protected static final classprotected static final classprotected static final classThis helpers handles adding proposals forAbstractConditionalClause.protected static final classprotected static final classprotected static final classThe default implementation ofAbstractContentAssistVisitor.MappingCollector, which simply returns an empty collection.protected static final classprotected static final classprotected static final classprotected static final classprotected static final classprotected static classThis builder populates aQueryPositionby traversing the valid portion of the JPQL query.protected static final classThis visitor determines whether a path expression can be resolved as a fully qualified enum type and an enum constant.protected static final classThisAbstractContentAssistVisitor.MappingCollectorreturns the possible mappings (non-collection type or collection type) from a managed type.protected static classprotected static final classprotected static classprotected static classprotected static final classprotected static final classprotected static final classprotected static enumThe various ways of retrieving identification variables from the declaration expression.protected static classThis visitor is used when a clause or a compound expression was parsed with a collection of expressions representing an invalid fragment.protected static final classThis visitor determines if the visitedExpressionis one of the two that represents an invalid expression.protected static final classprotected static interfaceA collector is responsible to retrieve the possible proposals by using the mappings that can complete a path expression.protected static final classThis visitor is responsible to create the rightFilterbased on the type of theExpression.protected static final classThisFilteris responsible to filter out the mappings that can't have their type assignable to the one passed in.protected static final classprotected static final classprotected static classprotected static final classprotected static final classprotected static final classprotected static final classprotected static final classprotected static classprotected static final classprotected static final classprotected static final classprotected static final classprotected static final classprotected static interfaceThis helper helps to add JPQL identifiers for the clauses that make up a query statement and also chains the clauses within the query.protected static final classprotected static final classThis visitor determines if anExpressionis in a subquery.protected static final classprotected static final classprotected static final classprotected static final classThis visitor is meant to adjust the corrections stack when traversing anExpressionin order to increase the list of valid proposals.protected static final classThis helpers handles adding proposals forWhenClause.protected static final classprotected static final classprotected static final classprotected static final class -
Field Summary
FieldsModifier and TypeFieldDescriptionThis is used to change the position of the cursor in order to add possible proposalsThe cached helpers that are used by this visitor to add valid content assist proposals.protected Map<String, Filter<Expression>> This map contains theFilterthat is used to determine when an identifier is a valid proposal, some of them depends on the expression's type.protected static final Filter<Expression> ThisFilteris used to say theExpressionis invalid without doing anything.protected Stack<Expression> Used to prevent and infinite recursion when one of the visit method is virtually asking a child expression to be visited.protected DefaultContentAssistProposalsThe set of possible proposals gathered based on the position in the query.protected final JPQLQueryContextThe context used to query information about the JPQL query.protected QueryPositionContains the position of the cursor within the parsedExpressionfrom the root node up to the deepest leaf node.protected static final intA constant for the length of a whitespace, which is 1.protected static final Filter<Expression> ThisFilteris used to say theExpressionis valid without doing anything.A virtual space is used to move the position of the cursor by adding an extra space in order to find some proposals within an expression.protected StringThe current word, which was retrieved from the JPQL query based on the position of the cursor.protected WordParserThis is used to retrieve words from the actual JPQL query. -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedAbstractContentAssistVisitor(JPQLQueryContext queryContext) Creates a newAbstractContentAssistVisitor. -
Method Summary
Modifier and TypeMethodDescriptionprotected voidaddAggregateIdentifier(String identifier) Adds the given JPQL identifier as a valid proposal if its role isIdentifierRole.AGGREGATEand the beginning starts with the current word.protected voidaddAggregateIdentifiers(String queryBNFId) Adds the JPQL identifiers that are registered with the givenJPQLQueryBNFas valid proposals if their role isIdentifierRole.AGGREGATEand the beginning starts with the current word.protected voidaddAggregateIdentifiers(JPQLQueryBNF queryBNF) Adds the JPQL identifiers that are registered with the givenJPQLQueryBNFas valid proposals if their role isIdentifierRole.AGGREGATEand the beginning starts with the current word.protected voidAdds the JPQL identifiers which correspond to the arithmetic operators as valid proposals.protected voidaddClauseIdentifier(String identifier) Adds the given JPQL identifier as a valid proposal if its role isIdentifierRole.CLAUSEand the beginning starts with the current word.protected voidaddClauseIdentifiers(String queryBNFId) Adds the JPQL identifiers that are registered with the givenJPQLQueryBNFas valid proposals if their role isIdentifierRole.CLAUSEand the beginning starts with the current word.protected voidaddClauseIdentifiers(JPQLQueryBNF queryBNF) Adds the JPQL identifiers that are registered with the givenJPQLQueryBNFas valid proposals if their role isIdentifierRole.CLAUSEand the beginning starts with the current word.protected voidaddComparisonIdentifiers(Expression expression) Adds the JPQL identifiers which correspond to the comparison operators as valid proposals.protected voidaddCompositeIdentifier(String identifier, int offset) Adds the composite JPQL identifier by following the given rules: If the word is empty and the offset is -1, then use the rule used byaddIdentifier(String); Otherwise checks the ending of the JPQL query with a portion of the identifier from the entire length of the identifier to the given offset by cutting off the trailing characters.protected voidaddCompoundIdentifier(String identifier, Expression expression, boolean hasIs, boolean hasNot) Adds the given JPQL identifier as a valid proposal if its role isIdentifierRole.COMPOUND_FUNCTIONand the beginning starts with the current word.protected voidaddCompoundIdentifiers(String queryBNFId, Expression expression, boolean hasIs, boolean hasNot) Adds the JPQL identifiers that are registered with the givenJPQLQueryBNFas valid proposals if their role isIdentifierRole.COMPOUND_FUNCTIONand the beginning starts with the current word.protected voidaddCompoundIdentifiers(JPQLQueryBNF queryBNF, Expression expression, boolean hasIs, boolean hasNot) Adds the JPQL identifiers that are registered with the givenJPQLQueryBNFas valid proposals if their role isIdentifierRole.COMPOUND_FUNCTIONand the beginning starts with the current word.protected voidAdds the entities as possible content assist proposals but will be filtered using the current word.protected voidaddEntities(IType type) Adds the entities as possible content assist proposals but will be filtered using the current word and the entity's type will have to be assignable from the givenIType.protected voidaddEnumConstant(IType enumType, String enumConstant) Adds the given enum constant as a valid proposal.protected voidaddEnumConstants(IType enumType, String word) Adds the constants of the given enum type as valid proposals if the beginning starts with the given word.protected voidaddExpressionFactoryIdentifiers(String expressionFactoryId) Adds the JPQL identifiers that were registered with theExpressionFactorywith the given unique identifier.protected voidaddExpressionFactoryIdentifiers(ExpressionFactory expressionFactory) Adds the JPQL identifiers that were registered with the givenExpressionFactory.protected voidaddFunctionIdentifier(String identifier) Adds the given JPQL identifier as a valid proposal if its role isIdentifierRole.FUNCTIONand the beginning starts with the current word.protected voidaddFunctionIdentifiers(String queryBNFId) Adds the JPQL identifiers that are registered with the givenJPQLQueryBNFas valid proposals if their role isIdentifierRole.FUNCTIONand the beginning starts with the current word.protected voidaddFunctionIdentifiers(Expression expression) Adds the JPQL identifiers for which their role isFUNCTIONby determining theJPQLQueryBNFthat represents the fragment for which the givenExpressionwas parsed.protected voidaddFunctionIdentifiers(JPQLQueryBNF queryBNF) Adds the JPQL identifiers that are registered with the givenJPQLQueryBNFas valid proposals if their role isIdentifierRole.FUNCTIONand the beginning starts with the current word.protected voidaddIdentificationVariable(String identificationVariable) Adds the given identification variable as a valid proposal.protected voidAdds all the identification variables defined in the current query's FROM clause.protected voidaddIdentificationVariables(Expression expression, AbstractContentAssistVisitor.IdentificationVariableType type) Adds the possible identification variables as valid proposals but filter them based on the given type.protected voidaddIdentifier(String identifier) Adds the given identifier as a proposal if it passes the checks.protected voidAdds the join specification identifiers as proposals.protected voidaddLeftIdentificationVariables(Expression expression) Adds the identification variables defined in the current query's FROM clause that are declared before the givenExpression.protected voidAdds the logical identifiers, which areANDandOR.protected voidaddRangeIdentificationVariable(String identificationVariable) Adds the given identification variable as a proposal if it passes the checks.protected voidAdds the result variables defined in theSELECTclause as valid proposals.protected final voidAdds a virtual space on the stack.protected booleanareArithmeticSymbolsAppendable(Expression expression) Determines whether the givenExpressioncan be followed by an arithmetic operator.protected booleanareComparisonSymbolsAppendable(Expression expression) Determines whether the givenExpressioncan be followed by a comparison operator.protected booleanareLogicalSymbolsAppendable(Expression expression) Determines whether the givenExpressioncan be followed by a logical operator.protected abstract AbstractContentAssistVisitor.AcceptableTypeVisitorprotected Filter<Expression> protected Filter<Expression> protected QueryPositionbuildEndingPositionFromInvalidExpression(Expression invalidExpression, Expression startingPointExpression, boolean[] virtualSpace) Creates a newQueryPositioncontaining the corrected positions starting at the givenExpressionand traversing the children at is always at the right side of the tree.protected AbstractContentAssistVisitor.EnumVisitorbuildFilteringMappingCollector(AbstractPathExpression expression, Resolver resolver, Filter<IMapping> filter, String pattern) protected AbstractValidator.JPQLQueryBNFValidatorbuildJPQLQueryBNFValidator(JPQLQueryBNF queryBNF) Returns theAbstractValidator.JPQLQueryBNFValidatorthat can be used to validate anExpressionby making sure its BNF is part of the given BNF.buildMappingCollector(AbstractPathExpression expression, Resolver resolver, Filter<IMapping> filter) buildMappingFilter(AbstractPathExpression expression, Filter<IMapping> filter) buildMappingFilter(Expression expression) protected Filter<Expression> buildProposals(int position) Prepares this visitor by prepopulating it with the necessary data that is required to properly gather the list of proposals based on the given caret position.buildProposals(int position, ContentAssistExtension extension) Prepares this visitor by prepopulating it with the necessary data that is required to properly gather the list of proposals based on the given caret position.voiddispose()Disposes of the internal data.protected RangeVariableDeclarationfindRangeVariableDeclaration(UpdateClause expression) Retrieves theRangeVariableDeclarationthat defines the entity name and identification variable for the givenUpdateClause.protected ITypegetAcceptableType(Expression expression) Determines the rootITypethat any type should be assignable.protected CollectionExpressiongetCollectionExpression(Expression expression) Casts the givenExpressionto aCollectionExpressionif it is actually an object of that type.Returns the visitor that collects theCollectionExpressionif it's been visited.protected AbstractContentAssistVisitor.EnumVisitorprotected ExpressionFactorygetExpressionFactory(String expressionFactoryId) Retrieves the registeredExpressionFactorythat was registered for the given unique identifier.protected Filter<Expression> protected final <T> TRetrieves the helper associated with the given helper class.protected IdentifierRolegetIdentifierRole(String identifier) Retrieves the role of the given identifier.protected abstract JPQLGrammarReturns the latest supported JPQL grammar, which is required when checking the validity of a JPQL identifier.protected JPQLQueryBNFgetQueryBNF(String queryBNFId) Retrieves theJPQLQueryBNFthat was registered for the given unique identifier.protected booleanhasClausesDefinedBetween(Expression expression, String afterIdentifier, String beforeIdentifier) protected final booleanDetermines whether there is a virtual space to be considered or not.protected voidInitializes this visitor.protected booleanisAggregate(String identifier) Determines whether the given JPQL identifier used in an aggregate expression; for instance AND.protected booleanisAppendable(Expression expression, AbstractContentAssistVisitor.AppendableType appendableType) Determines whether a certain type of JPQL identifiers can be appended to the JPQL query based on the givenExpression.protected booleanisAppendableToCollection(Expression expression) Determines whetherprotected booleanDetermines whether the given JPQL identifier used in a clause; for instance SELECT.protected booleanisClauseAppendable(Expression expression) Determines whether the identifiers identifying clauses can be appended to the JPQL query based on the givenExpression.protected booleanisComplete(Expression expression) Determines whether the givenExpressionis grammatically complete.protected booleanisCompoundable(Expression expression) Determines whether the givenExpressioncan be used as the left side of a compound expression.protected booleanisCompoundFunction(String identifier) Determines whether the given JPQL identifier used in a compound expression; an example would be BETWEEN or MEMBER.protected booleanisDeclaration(AbstractPathExpression expression) Determines whether the givenAbstractPathExpressionis found within a declaration expression.protected booleanisEncapsulated(Expression expression) Determines whether the givenExpressionis being encapsulated or not.protected booleanisEnumAllowed(AbstractPathExpression expression) Determines whether the givenAbstractPathExpressioncould potentially represent a fully qualified enum constant, which is dictated by the location of the path expression within the query.protected booleanisFollowingInvalidExpression(Expression expression) Determines whether the givenExpressionis preceded by an invalid expression.protected booleanisFunction(String identifier) Determines whether the given JPQL identifier is a function, an example would be AVG.protected booleanisInSubquery(Expression expression) Determines whether the givenExpressionis in a subquery or in the top-level query.protected booleanisInvalidExpression(Expression expression) Determines whether the givenExpressionrepresents an invalid fragment.protected abstract booleanDetermines whether aJOIN FETCHexpression can be identified by with an identification variable or not.protected booleanisLocked(Expression expression) Determines whether the givenExpressionhas been set has the lock to prevent an infinite recursion.protected booleanisNotExpression(Expression expression) Determines whether the givenExpressionrepresents the negated expression.protected booleanisPositionWithin(int position, int offset, String word) Determines whether the given position is within the given word.protected booleanisPositionWithin(int position, String word) Determines whether the given position is within the given word.protected booleanisSubqueryAppendable(Expression expression) Determines whether the JPQL identifier starting a subquery (SELECT) can be appended based on the givenExpressionwhich is preceding the position of the cursor.protected booleanisValid(Expression expression, String queryBNFId) Determines whether the givenExpressionpart is an expression of the given query BNF.protected booleanisValid(Expression expression, JPQLQueryBNF queryBNF) Determines whether the givenExpressionpart is an expression of the given query BNF.protected booleanisValid(JPQLQueryBNF parentQueryBNF, String queryBNFId, boolean bypassCompound) Determines whether the givenJPQLQueryBNFpart is the given parentJPQLQueryBNF.protected booleanisValid(JPQLQueryBNF parentQueryBNF, JPQLQueryBNF queryBNF) Determines whether the givenJPQLQueryBNFpart is the given parentJPQLQueryBNF.protected booleanisValid(JPQLQueryBNF parentQueryBNF, JPQLQueryBNF queryBNF, boolean bypassCompound) Determines whether the givenJPQLQueryBNFpart is the given parentJPQLQueryBNF.protected booleanisValidProposal(String proposal, String word) Determines whether the given proposal is a valid, which is based on the content of the given word.protected booleanisValidVersion(String identifier) Determines whether the given JPQL identifier can be a valid proposal, i.e.protected booleanisWithinInvalidExpression(Expression expression) Determines whether the givenExpressionis part of an invalid fragmentprotected final <T> voidregisterHelper(Class<T> helperClass, T helper) Registers the given helper associated with the given helper class.protected final voidRemoves the last virtual space from the stack.toString()voidvisit(AbsExpression expression) Visits theAbsExpressionexpression.voidvisit(AbstractSchemaName expression) Visits theAbstractSchemaNameexpression.voidvisit(AdditionExpression expression) Visits theAdditionExpressionexpression.voidvisit(AllOrAnyExpression expression) Visits theAllOrAnyExpressionexpression.voidvisit(AndExpression expression) Visits theAndExpressionexpression.voidvisit(ArithmeticFactor expression) Visits theArithmeticFactorexpression.voidvisit(AvgFunction expression) Visits theAvgFunctionexpression.voidvisit(BadExpression expression) Visits theBadExpressionexpression.voidvisit(BetweenExpression expression) Visits theBetweenExpressionexpression.voidvisit(CaseExpression expression) Visits theCaseExpressionexpression.voidvisit(CoalesceExpression expression) Visits theCoalesceExpressionexpression.voidvisit(CollectionExpression expression) Visits theCollectionExpressionexpression.voidvisit(CollectionMemberDeclaration expression) Visits theCollectionMemberDeclarationexpression.voidvisit(CollectionMemberExpression expression) Visits theCollectionMemberExpressionexpression.voidvisit(CollectionValuedPathExpression expression) Visits theCollectionValuedPathExpressionexpression.voidvisit(ComparisonExpression expression) Visits theComparisonExpressionexpression.voidvisit(ConcatExpression expression) Visits theConcatExpressionexpression.voidvisit(ConstructorExpression expression) Visits theConstructorExpressionexpression.voidvisit(CountFunction expression) Visits theCountFunctionexpression.voidVisits theDateTimeexpression.voidvisit(DeleteClause expression) Visits theDeleteClauseexpression.voidvisit(DeleteStatement expression) Visits theDeleteStatementexpression.voidvisit(DivisionExpression expression) Visits theDivisionExpressionexpression.voidvisit(EmptyCollectionComparisonExpression expression) Visits theEmptyCollectionComparisonExpressionexpression.voidvisit(EntityTypeLiteral expression) Visits theEntityTypeLiteralexpression.voidvisit(EntryExpression expression) Visits theEntryExpressionexpression.voidvisit(ExistsExpression expression) Visits theExistsExpressionexpression.protected voidvisit(Expression expression) Blindly visit the givenExpression.voidvisit(FromClause expression) Visits theFromClauseexpression.voidvisit(FunctionExpression expression) Visits theFunctionExpressionexpression.voidvisit(GroupByClause expression) Visits theGroupByClauseexpression.voidvisit(HavingClause expression) Visits theHavingClauseexpression.voidvisit(IdentificationVariable expression) Visits theIdentificationVariableexpression.voidvisit(IdentificationVariableDeclaration expression) Visits theIdentificationVariableDeclarationexpression.voidvisit(IndexExpression expression) Visits theIndexExpressionexpression.voidvisit(InExpression expression) Visits theInExpressionexpression.voidvisit(InputParameter expression) Visits theInputParameterexpression.voidVisits theJoinexpression.voidvisit(JPQLExpression expression) Visits theJPQLExpressionexpression.voidvisit(KeyExpression expression) Visits theKeyExpressionexpression.voidvisit(KeywordExpression expression) Visits theKeywordExpressionexpression.voidvisit(LengthExpression expression) Visits theLengthExpressionexpression.voidvisit(LikeExpression expression) Visits theLikeExpressionexpression.voidvisit(LocalDateTime expression) Visits theLocalDateTimeexpression.voidvisit(LocalExpression expression) Visits theLocalExpressionexpression.voidvisit(LocateExpression expression) Visits theLocateExpressionexpression.voidvisit(LowerExpression expression) Visits theLowerExpressionexpression.voidvisit(MathDoubleExpression.Power expression) Visits theMathDoubleExpression.Powerexpression.voidvisit(MathDoubleExpression.Round expression) Visits theMathDoubleExpression.Roundexpression.voidvisit(MathSingleExpression.Ceiling expression) Visits theMathSingleExpression.Ceilingexpression.voidvisit(MathSingleExpression.Exp expression) Visits theMathSingleExpression.Expexpression.voidvisit(MathSingleExpression.Floor expression) Visits theMathSingleExpression.Floorexpression.voidvisit(MathSingleExpression.Ln expression) Visits theMathSingleExpression.Lnexpression.voidvisit(MathSingleExpression.Sign expression) Visits theMathSingleExpression.Signexpression.voidvisit(MaxFunction expression) Visits theMaxFunctionexpression.voidvisit(MinFunction expression) Visits theMinFunctionexpression.voidvisit(ModExpression expression) Visits theModExpressionexpression.voidvisit(MultiplicationExpression expression) Visits theMultiplicationExpressionexpression.voidvisit(NotExpression expression) Visits theNotExpressionexpression.voidvisit(NullComparisonExpression expression) Visits theNullComparisonExpressionexpression.voidvisit(NullExpression expression) Visits theNullExpressionexpression.voidvisit(NullIfExpression expression) Visits theNullIfExpressionexpression.voidvisit(NumericLiteral expression) Visits theNumericLiteralexpression.voidvisit(ObjectExpression expression) Visits theObjectExpressionexpression.voidVisits theOnClauseexpression.voidvisit(OrderByClause expression) Visits theOrderByClauseexpression.voidvisit(OrderByItem expression) Visits theOrderByItemexpression.voidvisit(OrExpression expression) Visits theOrExpressionexpression.voidvisit(RangeVariableDeclaration expression) Visits theRangeVariableDeclarationexpression.voidvisit(ResultVariable expression) Visits theResultVariableexpression.voidvisit(SelectClause expression) Visits theSelectClauseexpression.voidvisit(SelectStatement expression) Visits theSelectStatementexpression.voidvisit(SimpleFromClause expression) Visits theSimpleFromClauseexpression.voidvisit(SimpleSelectClause expression) Visits theSimpleSelectClauseexpression.voidvisit(SimpleSelectStatement expression) Visits theSimpleSelectStatementexpression.voidvisit(SizeExpression expression) Visits theSizeExpressionexpression.voidvisit(SqrtExpression expression) Visits theSqrtExpressionexpression.voidvisit(StateFieldPathExpression expression) Visits theStateFieldPathExpressionexpression.voidvisit(StringLiteral expression) Visits theStringLiteralexpression.voidvisit(SubExpression expression) Visits theSubExpressionexpression.voidvisit(SubstringExpression expression) Visits theSubstringExpressionexpression.voidvisit(SubtractionExpression expression) Visits theSubtractionExpressionexpression.voidvisit(SumFunction expression) Visits theSumFunctionexpression.voidvisit(TreatExpression expression) Visits theTreatExpressionexpression.voidvisit(TrimExpression expression) Visits theTrimExpressionexpression.voidvisit(TypeExpression expression) Visits theTypeExpressionexpression.voidvisit(UnknownExpression expression) Visits theUnknownExpressionexpression.voidvisit(UpdateClause expression) Visits theUpdateClauseexpression.voidvisit(UpdateItem expression) Visits theUpdateItemexpression.voidvisit(UpdateStatement expression) Visits theUpdateStatementexpression.voidvisit(UpperExpression expression) Visits theUpperExpressionexpression.voidvisit(ValueExpression expression) Visits theValueExpressionexpression.voidvisit(WhenClause expression) Visits theWhenClauseexpression.voidvisit(WhereClause expression) Visits theWhereClauseexpression.protected voidvisitAggregateFunction(AggregateFunction expression) Visits the givenAggregateFunctionand attempts to find valid proposals.protected voidvisitArithmeticExpression(ArithmeticExpression expression) Visits the givenArithmeticExpressionand attempts to find valid proposals.protected <T extends Expression>
voidvisitCollectionExpression(T expression, String identifier, AbstractContentAssistVisitor.CollectionExpressionHelper<T> helper) Adds the possible proposals for the givenexpressionbased on the location of the cursor and the content of the expression.protected voidvisitEndingExpression(Expression expression) protected voidvisitEnumConstant(AbstractPathExpression expression) protected voidvisitInvalidExpression(Expression expression) protected voidvisitLogicalExpression(LogicalExpression expression) Visits the givenLogicalExpressionand attempts to find valid proposals.protected voidvisitPathExpression(AbstractPathExpression expression) Visits the givenAbstractPathExpressionand attempts to find valid proposals.protected voidvisitPathExpression(AbstractPathExpression expression, Filter<IMapping> filter) Visits the givenAbstractPathExpressionby attempting to resolve the path.protected voidvisitSingleEncapsulatedExpression(AbstractSingleEncapsulatedExpression expression, AbstractContentAssistVisitor.IdentificationVariableType identificationVariableType) Adds the possible proposals for the givenexpressionbased on the location of the cursor and the content of the expression.protected voidvisitSingleEncapsulatedExpression(AbstractSingleEncapsulatedExpression expression, AbstractContentAssistVisitor.IdentificationVariableType identificationVariableType, String... expressionIdentifiers) Adds the possible proposals for the givenexpressionbased on the location of the cursor and the content of the expression.protected <T extends Expression>
voidvisitStatement(T expression, AbstractContentAssistVisitor.StatementHelper<T> helper) Visits the givenAbstractSelectStatementand checks to see if the identifiers of the following clauses can be added a valid proposals.protected voidvisitThirdPartyPathExpression(AbstractPathExpression expression, String variableName) Visits the givenAbstractPathExpressionand attempts to find valid proposals that is not provided by the default implementation.
-
Field Details
-
corrections
This is used to change the position of the cursor in order to add possible proposals -
helpers
The cached helpers that are used by this visitor to add valid content assist proposals. -
identifierFilters
This map contains theFilterthat is used to determine when an identifier is a valid proposal, some of them depends on the expression's type. -
lockedExpressions
Used to prevent and infinite recursion when one of the visit method is virtually asking a child expression to be visited. -
proposals
The set of possible proposals gathered based on the position in the query. -
queryContext
The context used to query information about the JPQL query. -
queryPosition
Contains the position of the cursor within the parsedExpressionfrom the root node up to the deepest leaf node. -
virtualSpaces
A virtual space is used to move the position of the cursor by adding an extra space in order to find some proposals within an expression. This is usually used when the trailing whitespace is not owned by the child expression but by one of its parents. -
word
The current word, which was retrieved from the JPQL query based on the position of the cursor. The word is the partial string found to the left of the cursor and up to the cursor. -
wordParser
This is used to retrieve words from the actual JPQL query. -
INVALID_IDENTIFIER_FILTER
ThisFilteris used to say theExpressionis invalid without doing anything. -
SPACE_LENGTH
protected static final int SPACE_LENGTHA constant for the length of a whitespace, which is 1.- See Also:
-
VALID_IDENTIFIER_FILTER
ThisFilteris used to say theExpressionis valid without doing anything.
-
-
Constructor Details
-
AbstractContentAssistVisitor
Creates a newAbstractContentAssistVisitor.- Parameters:
queryContext- The context used to query information about the JPQL query- Throws:
NullPointerException- TheJPQLQueryContextcannot benull
-
-
Method Details
-
addAggregateIdentifier
Adds the given JPQL identifier as a valid proposal if its role isIdentifierRole.AGGREGATEand the beginning starts with the current word.- Parameters:
identifier- The JPQL identifier to add as a valid proposal if it passes the checks
-
addAggregateIdentifiers
Adds the JPQL identifiers that are registered with the givenJPQLQueryBNFas valid proposals if their role isIdentifierRole.AGGREGATEand the beginning starts with the current word.- Parameters:
queryBNF- TheJPQLQueryBNFfor which the registered JPQL identifiers will be added as proposals if they pass the checks
-
addAggregateIdentifiers
Adds the JPQL identifiers that are registered with the givenJPQLQueryBNFas valid proposals if their role isIdentifierRole.AGGREGATEand the beginning starts with the current word.- Parameters:
queryBNFId- The unique of theJPQLQueryBNFfor which the registered JPQL identifiers will be added as proposals if they pass the checks
-
addArithmeticIdentifiers
protected void addArithmeticIdentifiers()Adds the JPQL identifiers which correspond to the arithmetic operators as valid proposals. The word has to be an empty string. -
addClauseIdentifier
Adds the given JPQL identifier as a valid proposal if its role isIdentifierRole.CLAUSEand the beginning starts with the current word.- Parameters:
identifier- The JPQL identifier to add as a valid proposal if it passes the checks
-
addClauseIdentifiers
Adds the JPQL identifiers that are registered with the givenJPQLQueryBNFas valid proposals if their role isIdentifierRole.CLAUSEand the beginning starts with the current word.- Parameters:
queryBNF- TheJPQLQueryBNFfor which the registered JPQL identifiers will be added as proposals if they pass the checks
-
addClauseIdentifiers
Adds the JPQL identifiers that are registered with the givenJPQLQueryBNFas valid proposals if their role isIdentifierRole.CLAUSEand the beginning starts with the current word.- Parameters:
queryBNFId- The unique identifier of theJPQLQueryBNFfor which the registered JPQL identifiers will be added as proposals if they pass the checks
-
addComparisonIdentifiers
Adds the JPQL identifiers which correspond to the comparison operators as valid proposals. The word has to be an empty string.- Parameters:
expression- TheExpressionis preceding the position of the cursor and will help to determine which of the comparison operators are valid
-
addCompositeIdentifier
Adds the composite JPQL identifier by following the given rules:- If the word is empty and the offset is -1, then use the rule used by
addIdentifier(String); - Otherwise checks the ending of the JPQL query with a portion of the identifier from the entire length of the identifier to the given offset by cutting off the trailing characters.
- Parameters:
identifier- The composite JPQL identifier to add as valid proposal. The composite part means it is an identifier composed of more than one word, example:GROUP BYoffset- The smallest length of the given identifier to test against the ending of the JPQL query based on the position of the cursor. The offset is exclusive
- If the word is empty and the offset is -1, then use the rule used by
-
addCompoundIdentifier
protected void addCompoundIdentifier(String identifier, Expression expression, boolean hasIs, boolean hasNot) Adds the given JPQL identifier as a valid proposal if its role isIdentifierRole.COMPOUND_FUNCTIONand the beginning starts with the current word.- Parameters:
identifier- The JPQL identifier to add as a valid proposal if it passes the checksexpression- TheExpressionrepresents the fragment that is before the current word and it helps to filter out some of the compound identifiershasIs- Flag indicating if theISidentifier was found before the word, which would also be before theNOTidentifier if it was also foundhasNot- Flag indicating if theNOTidentifier was found before the word
-
addCompoundIdentifiers
protected void addCompoundIdentifiers(JPQLQueryBNF queryBNF, Expression expression, boolean hasIs, boolean hasNot) Adds the JPQL identifiers that are registered with the givenJPQLQueryBNFas valid proposals if their role isIdentifierRole.COMPOUND_FUNCTIONand the beginning starts with the current word.- Parameters:
queryBNF- TheJPQLQueryBNFfor which the registered JPQL identifiers will be added as proposals if they pass the checksexpression- TheExpressionrepresents the fragment that is before the current word and it helps to filter out some of the compound identifiershasIs- Flag indicating if theISidentifier was found before the word, which would also be before theNOTidentifier if it was also foundhasNot- Flag indicating if theNOTidentifier was found before the word
-
addCompoundIdentifiers
protected void addCompoundIdentifiers(String queryBNFId, Expression expression, boolean hasIs, boolean hasNot) Adds the JPQL identifiers that are registered with the givenJPQLQueryBNFas valid proposals if their role isIdentifierRole.COMPOUND_FUNCTIONand the beginning starts with the current word.- Parameters:
queryBNFId- The unique identifier of theJPQLQueryBNFfor which the registered JPQL identifiers will be added as proposals if they pass the checksexpression- TheExpressionrepresents the fragment that is before the current word and it helps to filter out some of the compound identifiershasIs- Flag indicating if theISidentifier was found before the word, which would also be before theNOTidentifier if it was also foundhasNot- Flag indicating if theNOTidentifier was found before the word
-
addEntities
protected void addEntities()Adds the entities as possible content assist proposals but will be filtered using the current word. -
addEntities
Adds the entities as possible content assist proposals but will be filtered using the current word and the entity's type will have to be assignable from the givenIType.- Parameters:
type- TheITypeused to filter the abstract schema types
-
addEnumConstant
Adds the given enum constant as a valid proposal. -
addEnumConstants
Adds the constants of the given enum type as valid proposals if the beginning starts with the given word.- Parameters:
enumType- TheITypeof the enum typeword- The word is used to filter the enum constants, which can benullor an empty string
-
addExpressionFactoryIdentifiers
Adds the JPQL identifiers that were registered with the givenExpressionFactory.- Parameters:
expressionFactory- The factory for which its registered JPQL identifiers are added as valid proposals, if they meet the checks
-
addExpressionFactoryIdentifiers
Adds the JPQL identifiers that were registered with theExpressionFactorywith the given unique identifier.- Parameters:
expressionFactoryId- The unique identifier of the factory for which its registered JPQL identifiers are added as valid proposals, if they meet the checks
-
addFunctionIdentifier
Adds the given JPQL identifier as a valid proposal if its role isIdentifierRole.FUNCTIONand the beginning starts with the current word.- Parameters:
identifier- The JPQL identifier to add as a valid proposal if it passes the checks
-
addFunctionIdentifiers
Adds the JPQL identifiers for which their role isFUNCTIONby determining theJPQLQueryBNFthat represents the fragment for which the givenExpressionwas parsed.For instance: "
SELECT e, AVG(e.name) FROM Employee e" and the given expression is "AVG(e.name)", then the BNF should be the select item BNF.If the BNF allows for a subquery and the expression is encapsulated by parenthesis, then
SELECTwill also be added.The identification variables will also be added.
- Parameters:
expression- TheExpressionis used to determine theJPQLQueryBNFto use when retrieving the JPQL identifiers representing a function
-
addFunctionIdentifiers
Adds the JPQL identifiers that are registered with the givenJPQLQueryBNFas valid proposals if their role isIdentifierRole.FUNCTIONand the beginning starts with the current word.- Parameters:
queryBNF- TheJPQLQueryBNFfor which the registered JPQL identifiers will be added as proposals if they pass the checks
-
addFunctionIdentifiers
Adds the JPQL identifiers that are registered with the givenJPQLQueryBNFas valid proposals if their role isIdentifierRole.FUNCTIONand the beginning starts with the current word.- Parameters:
queryBNFId- The unique identifier of theJPQLQueryBNFfor which the registered JPQL identifiers will be added as proposals if they pass the checks
-
addIdentificationVariable
Adds the given identification variable as a valid proposal.- Parameters:
identificationVariable- The identification variable to add as a proposal if it passes the checks
-
addIdentificationVariables
protected void addIdentificationVariables()Adds all the identification variables defined in the current query's FROM clause. -
addIdentificationVariables
protected void addIdentificationVariables(Expression expression, AbstractContentAssistVisitor.IdentificationVariableType type) Adds the possible identification variables as valid proposals but filter them based on the given type.For instance, if the type is
AbstractContentAssistVisitor.IdentificationVariableType.LEFT, then any identification variables that have been defined before the givenExpressionare valid proposals, but those defined after are not valid proposals.- Parameters:
expression- TheExpressionwhere the content assist was invoked, which helps to determine how to stop adding identification variablestype- Which type of identification variables to add as valid proposals
-
addIdentifier
Adds the given identifier as a proposal if it passes the checks.- Parameters:
identifier- The JPQL identifier to add as a proposal
-
addJoinIdentifiers
protected void addJoinIdentifiers()Adds the join specification identifiers as proposals. -
addLeftIdentificationVariables
Adds the identification variables defined in the current query's FROM clause that are declared before the givenExpression.- Parameters:
expression- TheExpressionused to determine at which declaration to stop
-
addLogicalIdentifiers
protected void addLogicalIdentifiers()Adds the logical identifiers, which areANDandOR. -
addRangeIdentificationVariable
Adds the given identification variable as a proposal if it passes the checks. If an entity is found, then it will be registered.- Parameters:
identificationVariable- An identification variable that is
-
addResultVariables
protected void addResultVariables()Adds the result variables defined in theSELECTclause as valid proposals. -
addVirtualSpace
protected final void addVirtualSpace()Adds a virtual space on the stack. -
areArithmeticSymbolsAppendable
Determines whether the givenExpressioncan be followed by an arithmetic operator.- Parameters:
expression- TheExpressionthat found left of the cursor, which determines if the arithmetic operators are appendable or not- Returns:
trueif the operators are appendable;falseotherwise
-
areComparisonSymbolsAppendable
Determines whether the givenExpressioncan be followed by a comparison operator.- Parameters:
expression- TheExpressionthat found left of the cursor, which determines if the comparison operators are appendable or not- Returns:
trueif the operators are appendable;falseotherwise
-
areLogicalSymbolsAppendable
Determines whether the givenExpressioncan be followed by a logical operator.- Parameters:
expression- TheExpressionthat found left of the cursor, which determines if the logical operators are appendable or not- Returns:
trueif the logical identifiers are appendable;falseotherwise
-
buildAcceptableTypeVisitor
-
buildAppendableExpressionVisitor
protected AbstractContentAssistVisitor.AppendableExpressionVisitor buildAppendableExpressionVisitor() -
buildCollectionCompoundTypeFilter
-
buildCollectionExpressionVisitor
protected AbstractContentAssistVisitor.CollectionExpressionVisitor buildCollectionExpressionVisitor() -
buildCollectionMappingFilter
-
buildConcatExpressionCollectionHelper
protected AbstractContentAssistVisitor.ConcatExpressionCollectionHelper buildConcatExpressionCollectionHelper() -
buildConditionalClauseCollectionHelper
protected AbstractContentAssistVisitor.ConditionalClauseCollectionHelper buildConditionalClauseCollectionHelper() -
buildConstrutorCollectionHelper
-
buildDeclarationVisitor
-
buildDefaultMappingCollector
-
buildDeleteClauseCollectionHelper
protected AbstractContentAssistVisitor.DeleteClauseCollectionHelper buildDeleteClauseCollectionHelper() -
buildDeleteClauseStatementHelper
protected AbstractContentAssistVisitor.DeleteClauseStatementHelper buildDeleteClauseStatementHelper() -
buildDifferentComparisonFilter
-
buildDoubleEncapsulatedCollectionHelper
protected AbstractContentAssistVisitor.DoubleEncapsulatedCollectionHelper buildDoubleEncapsulatedCollectionHelper() -
buildEncapsulatedExpressionVisitor
protected AbstractContentAssistVisitor.EncapsulatedExpressionVisitor buildEncapsulatedExpressionVisitor() -
buildEndingPositionFromInvalidExpression
protected QueryPosition buildEndingPositionFromInvalidExpression(Expression invalidExpression, Expression startingPointExpression, boolean[] virtualSpace) Creates a newQueryPositioncontaining the corrected positions starting at the givenExpressionand traversing the children at is always at the right side of the tree.- Parameters:
invalidExpression- The invalidExpressionfor which a newQueryPositionwill be calculatedstartingPointExpression- TheExpressionfrom which the calculation of the positions will startvirtualSpace- Single element array that will be used to store the flag indicating if a virtual space should be added or not- Returns:
- The new
QueryPositionthat contains the position of the cursor starting from the givenExpressiondown to the right leaf
-
buildEndingQueryPositionBuilder
-
buildEnumVisitor
-
buildFilteringMappingCollector
protected AbstractContentAssistVisitor.FilteringMappingCollector buildFilteringMappingCollector(AbstractPathExpression expression, Resolver resolver, Filter<IMapping> filter, String pattern) -
buildFollowingClausesVisitor
-
buildFollowingInvalidExpressionVisitor
protected AbstractContentAssistVisitor.FollowingInvalidExpressionVisitor buildFollowingInvalidExpressionVisitor() -
buildFromClauseCollectionHelper
-
buildFromClauseStatementHelper
-
buildGroupByClauseCollectionHelper
protected AbstractContentAssistVisitor.GroupByClauseCollectionHelper buildGroupByClauseCollectionHelper() -
buildGroupByClauseStatementHelper
protected AbstractContentAssistVisitor.GroupByClauseStatementHelper buildGroupByClauseStatementHelper() -
buildHavingClauseStatementHelper
protected AbstractContentAssistVisitor.HavingClauseStatementHelper buildHavingClauseStatementHelper() -
buildIncompleteCollectionExpressionVisitor
protected AbstractContentAssistVisitor.IncompleteCollectionExpressionVisitor buildIncompleteCollectionExpressionVisitor() -
buildInvalidExpressionVisitor
-
buildJoinCollectionHelper
-
buildJPQLQueryBNFValidator
Returns theAbstractValidator.JPQLQueryBNFValidatorthat can be used to validate anExpressionby making sure its BNF is part of the given BNF.- Parameters:
queryBNF- The BNF used to determine the validity of anExpression- Returns:
- A
AbstractValidator.JPQLQueryBNFValidatorthat can determine if anExpressionfollows the given BNF
-
buildMappingCollector
protected AbstractContentAssistVisitor.MappingCollector buildMappingCollector(AbstractPathExpression expression, Resolver resolver, Filter<IMapping> filter) -
buildMappingFilter
protected Filter<IMapping> buildMappingFilter(AbstractPathExpression expression, Filter<IMapping> filter) -
buildMappingFilter
-
buildMappingFilterBuilder
-
buildNonCollectionCompoundTypeFilter
-
buildNotExpressionVisitor
-
buildOrderByClauseCollectionHelper
protected AbstractContentAssistVisitor.OrderByClauseCollectionHelper buildOrderByClauseCollectionHelper() -
buildOrderByClauseStatementHelper
protected AbstractContentAssistVisitor.OrderByClauseStatementHelper buildOrderByClauseStatementHelper() -
buildPropertyMappingFilter
-
buildProposals
Prepares this visitor by prepopulating it with the necessary data that is required to properly gather the list of proposals based on the given caret position.- Parameters:
position- The position of the cursor within the JPQL query- Returns:
- The proposals that are valid choices for the given position
-
buildProposals
Prepares this visitor by prepopulating it with the necessary data that is required to properly gather the list of proposals based on the given caret position.- Parameters:
position- The position of the cursor within the JPQL queryextension- This extension can be used to provide additional support to JPQL content assist that is outside the scope of providing proposals related to JPA metadata. It adds support for providing suggestions related to class names, enum constants, table names, column names- Returns:
- The proposals that are valid choices for the given position
-
buildRangeVariableDeclarationVisitor
protected AbstractContentAssistVisitor.RangeVariableDeclarationVisitor buildRangeVariableDeclarationVisitor() -
buildResultVariableVisitor
-
buildSelectClauseCollectionHelper
protected AbstractContentAssistVisitor.SelectClauseCollectionHelper buildSelectClauseCollectionHelper() -
buildSelectClauseStatementHelper
protected AbstractContentAssistVisitor.SelectClauseStatementHelper buildSelectClauseStatementHelper() -
buildSimpleFromClauseStatementHelper
protected AbstractContentAssistVisitor.SimpleFromClauseStatementHelper buildSimpleFromClauseStatementHelper() -
buildSimpleGroupByClauseStatementHelper
protected AbstractContentAssistVisitor.SimpleGroupByClauseStatementHelper buildSimpleGroupByClauseStatementHelper() -
buildSimpleHavingClauseStatementHelper
protected AbstractContentAssistVisitor.SimpleHavingClauseStatementHelper buildSimpleHavingClauseStatementHelper() -
buildSimpleSelectClauseCollectionHelper
protected AbstractContentAssistVisitor.SimpleSelectClauseCollectionHelper buildSimpleSelectClauseCollectionHelper() -
buildSimpleSelectClauseStatementHelper
protected AbstractContentAssistVisitor.SimpleSelectClauseStatementHelper buildSimpleSelectClauseStatementHelper() -
buildSimpleWhereClauseSelectStatementHelper
protected AbstractContentAssistVisitor.SimpleWhereClauseSelectStatementHelper buildSimpleWhereClauseSelectStatementHelper() -
buildSubqueryAppendableExpressionVisitor
protected AbstractContentAssistVisitor.SubqueryAppendableExpressionVisitor buildSubqueryAppendableExpressionVisitor() -
buildSubqueryVisitor
-
buildTripleEncapsulatedCollectionHelper
protected AbstractContentAssistVisitor.TripleEncapsulatedCollectionHelper buildTripleEncapsulatedCollectionHelper() -
buildUpdateClauseStatementHelper
protected AbstractContentAssistVisitor.UpdateClauseStatementHelper buildUpdateClauseStatementHelper() -
buildUpdateItemCollectionHelper
-
buildVisitParentVisitor
-
buildWhenClauseConditionalClauseCollectionHelper
protected AbstractContentAssistVisitor.WhenClauseConditionalClauseCollectionHelper buildWhenClauseConditionalClauseCollectionHelper() -
buildWhereClauseDeleteStatementHelper
protected AbstractContentAssistVisitor.WhereClauseDeleteStatementHelper buildWhereClauseDeleteStatementHelper() -
buildWhereClauseSelectStatementHelper
protected AbstractContentAssistVisitor.WhereClauseSelectStatementHelper buildWhereClauseSelectStatementHelper() -
buildWhereClauseUpdateStatementHelper
protected AbstractContentAssistVisitor.WhereClauseUpdateStatementHelper buildWhereClauseUpdateStatementHelper() -
buildWithinInvalidExpressionVisitor
protected AbstractContentAssistVisitor.WithinInvalidExpressionVisitor buildWithinInvalidExpressionVisitor() -
dispose
public void dispose()Disposes of the internal data. -
findRangeVariableDeclaration
Retrieves theRangeVariableDeclarationthat defines the entity name and identification variable for the givenUpdateClause.- Returns:
- Either the
RangeVariableDeclarationif the JPQL query defines it ornullif it was not defined
-
getAcceptableType
Determines the rootITypethat any type should be assignable. If theITypeisNumber, than any subclasses will be allowed.- Parameters:
expression- TheExpressionto visit, including its parent hierarchy until anExpressionrequires a certainIType- Returns:
- The root
ITypeallowed ornullif anything is allowed
-
getAppendableExpressionVisitor
-
getCollectionExpression
Casts the givenExpressionto aCollectionExpressionif it is actually an object of that type.- Parameters:
expression- TheExpressionto cast- Returns:
- The given
Expressionif it is aCollectionExpressionornullif it is any other object
-
getCollectionExpressionVisitor
Returns the visitor that collects theCollectionExpressionif it's been visited.- Returns:
- The
AbstractContentAssistVisitor.CollectionExpressionVisitor - See Also:
-
getConcatExpressionCollectionHelper
protected AbstractContentAssistVisitor.ConcatExpressionCollectionHelper getConcatExpressionCollectionHelper() -
getConditionalClauseCollectionHelper
protected AbstractContentAssistVisitor.ConditionalClauseCollectionHelper getConditionalClauseCollectionHelper() -
getConstructorCollectionHelper
-
getDeclarationVisitor
-
getDefaultMappingCollector
-
getDeleteClauseCollectionHelper
protected AbstractContentAssistVisitor.DeleteClauseCollectionHelper getDeleteClauseCollectionHelper() -
getDeleteClauseStatementHelper
-
getDoubleEncapsulatedCollectionHelper
protected AbstractContentAssistVisitor.DoubleEncapsulatedCollectionHelper getDoubleEncapsulatedCollectionHelper() -
getEncapsulatedExpressionVisitor
protected AbstractContentAssistVisitor.EncapsulatedExpressionVisitor getEncapsulatedExpressionVisitor() -
getEndingQueryPositionBuilder
-
getEnumVisitor
-
getExpressionFactory
Retrieves the registeredExpressionFactorythat was registered for the given unique identifier.- Parameters:
expressionFactoryId- The unique identifier of theExpressionFactoryto retrieve- Returns:
- The
ExpressionFactorymapped with the given unique identifier
-
getExpressionTypeVisitor
-
getFilter
-
getFollowingClausesVisitor
-
getFollowingInvalidExpressionVisitor
protected AbstractContentAssistVisitor.FollowingInvalidExpressionVisitor getFollowingInvalidExpressionVisitor() -
getFromClauseCollectionHelper
-
getFromClauseStatementHelper
-
getGroupByClauseCollectionHelper
protected AbstractContentAssistVisitor.GroupByClauseCollectionHelper getGroupByClauseCollectionHelper() -
getGroupByClauseStatementHelper
protected AbstractContentAssistVisitor.GroupByClauseStatementHelper getGroupByClauseStatementHelper() -
getHavingClauseStatementHelper
-
getHelper
Retrieves the helper associated with the given helper class.- Parameters:
helperClass- The Java class of the helper to retrieve- Returns:
- The helper being requested
-
getIdentifierRole
Retrieves the role of the given identifier. A role helps to describe the purpose of the identifier in a query.- Parameters:
identifier- The identifier for which its role is requested- Returns:
- The role of the given identifier
-
getIncompleteCollectionExpressionVisitor
protected AbstractContentAssistVisitor.IncompleteCollectionExpressionVisitor getIncompleteCollectionExpressionVisitor() -
getInvalidExpressionVisitor
-
getJoinCollectionHelper
-
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:
- The latest
JPQLGrammarsupported by the provider
-
getMappingCollectionFilter
-
getMappingFilterBuilder
-
getMappingPropertyFilter
-
getNotExpressionVisitor
-
getOrderByClauseCollectionHelper
protected AbstractContentAssistVisitor.OrderByClauseCollectionHelper getOrderByClauseCollectionHelper() -
getOrderByClauseStatementHelper
protected AbstractContentAssistVisitor.OrderByClauseStatementHelper getOrderByClauseStatementHelper() -
getQueryBNF
Retrieves theJPQLQueryBNFthat was registered for the given unique identifier.- Parameters:
queryBNFId- The unique identifier of theJPQLQueryBNFto retrieve- Returns:
- The
JPQLQueryBNFrepresenting a section of the grammar
-
getRangeVariableDeclarationVisitor
protected AbstractContentAssistVisitor.RangeVariableDeclarationVisitor getRangeVariableDeclarationVisitor() -
getResultVariableVisitor
-
getSelectClauseCollectionHelper
protected AbstractContentAssistVisitor.SelectClauseCollectionHelper getSelectClauseCollectionHelper() -
getSelectClauseStatementHelper
-
getSimpleFromClauseStatementHelper
protected AbstractContentAssistVisitor.SimpleFromClauseStatementHelper getSimpleFromClauseStatementHelper() -
getSimpleGroupByClauseStatementHelper
protected AbstractContentAssistVisitor.SimpleGroupByClauseStatementHelper getSimpleGroupByClauseStatementHelper() -
getSimpleHavingClauseStatementHelper
protected AbstractContentAssistVisitor.SimpleHavingClauseStatementHelper getSimpleHavingClauseStatementHelper() -
getSimpleSelectClauseCollectionHelper
protected AbstractContentAssistVisitor.SimpleSelectClauseCollectionHelper getSimpleSelectClauseCollectionHelper() -
getSimpleSelectClauseStatementHelper
protected AbstractContentAssistVisitor.SimpleSelectClauseStatementHelper getSimpleSelectClauseStatementHelper() -
getSimpleWhereClauseSelectStatementHelper
protected AbstractContentAssistVisitor.SimpleWhereClauseSelectStatementHelper getSimpleWhereClauseSelectStatementHelper() -
getSubqueryAppendableExpressionVisitor
protected AbstractContentAssistVisitor.SubqueryAppendableExpressionVisitor getSubqueryAppendableExpressionVisitor() -
getSubqueryVisitor
-
getTripleEncapsulatedCollectionHelper
protected AbstractContentAssistVisitor.TripleEncapsulatedCollectionHelper getTripleEncapsulatedCollectionHelper() -
getUpdateClauseStatementHelper
-
getUpdateItemCollectionHelper
-
getVisitParentVisitor
-
getWhenClauseConditionalClauseCollectionHelper
protected AbstractContentAssistVisitor.WhenClauseConditionalClauseCollectionHelper getWhenClauseConditionalClauseCollectionHelper() -
getWhereClauseDeleteStatementHelper
protected AbstractContentAssistVisitor.WhereClauseDeleteStatementHelper getWhereClauseDeleteStatementHelper() -
getWhereClauseSelectStatementHelper
protected AbstractContentAssistVisitor.WhereClauseSelectStatementHelper getWhereClauseSelectStatementHelper() -
getWhereClauseUpdateStatementHelper
protected AbstractContentAssistVisitor.WhereClauseUpdateStatementHelper getWhereClauseUpdateStatementHelper() -
getWithinInvalidExpressionVisitor
protected AbstractContentAssistVisitor.WithinInvalidExpressionVisitor getWithinInvalidExpressionVisitor() -
hasClausesDefinedBetween
protected boolean hasClausesDefinedBetween(Expression expression, String afterIdentifier, String beforeIdentifier) -
hasVirtualSpace
protected final boolean hasVirtualSpace()Determines whether there is a virtual space to be considered or not.- Returns:
trueif there is a virtual space to count as a real one or not
-
initialize
protected void initialize()Initializes this visitor. -
isAggregate
Determines whether the given JPQL identifier used in an aggregate expression; for instance AND.- Parameters:
identifier- The identifier to validate- Returns:
trueif the given identifier is used in an aggregate expression;falseotherwise
-
isAppendable
protected boolean isAppendable(Expression expression, AbstractContentAssistVisitor.AppendableType appendableType) Determines whether a certain type of JPQL identifiers can be appended to the JPQL query based on the givenExpression.- Parameters:
expression- TheExpressionthat determines what can be appendedappendableType- The type of identifiers to append to the JPQL query- Returns:
trueif the JPQL identifiers with the given type can be appended to the JPQL query;falseif they cannot
-
isAppendableToCollection
Determines whether -
isClause
Determines whether the given JPQL identifier used in a clause; for instance SELECT.- Parameters:
identifier- The identifier to validate- Returns:
trueif the given identifier is a clause;falseotherwise
-
isClauseAppendable
Determines whether the identifiers identifying clauses can be appended to the JPQL query based on the givenExpression.- Parameters:
expression- TheExpressionthat determines what can be appended- Returns:
trueif the following clauses can be appended to the JPQL query;falseif they cannot
-
isComplete
Determines whether the givenExpressionis grammatically complete.- Parameters:
expression- TheExpressionto verify its grammar integrity- Returns:
trueif theExpressionis grammatically complete;falseotherwise
-
isCompoundable
Determines whether the givenExpressioncan be used as the left side of a compound expression.- Parameters:
expression- TheExpressionthat determines if the JPQL identifiers withIdentifierRole.COMPOUND_FUNCTIONcan be used to create a compound expression- Returns:
trueif the compound identifiers can be appended to the JPQL query;falseif they cannot
-
isCompoundFunction
Determines whether the given JPQL identifier used in a compound expression; an example would be BETWEEN or MEMBER.- Parameters:
identifier- The identifier to validate- Returns:
trueif the given identifier is used in a compound expression;falseotherwise
-
isDeclaration
Determines whether the givenAbstractPathExpressionis found within a declaration expression.- Parameters:
expression- TheAbstractPathExpressionto visit- Returns:
trueif the visitedCollectionValuedPathExpressionis owned by aRangeVariableDeclaration, which indicates it is used to define the "root" object;falseif it is not
-
isEncapsulated
Determines whether the givenExpressionis being encapsulated or not.- Parameters:
expression- TheExpressionto scan for encapsulation- Returns:
trueif the givenExpressionis within parenthesis;falseotherwise
-
isEnumAllowed
Determines whether the givenAbstractPathExpressioncould potentially represent a fully qualified enum constant, which is dictated by the location of the path expression within the query. Only a few location allows an enum constant.- Parameters:
expression- TheAbstractPathExpressionto visit- Returns:
trueif the path expression represents a enum constant;falseotherwise
-
isFollowingInvalidExpression
Determines whether the givenExpressionis preceded by an invalid expression.- Parameters:
expression- TheExpressionto visit- Returns:
trueif the visitedExpressionis part of a collection of expressions and an invalid expression precede it;falseotherwise
-
isFunction
Determines whether the given JPQL identifier is a function, an example would be AVG.- Parameters:
identifier- The identifier to validate- Returns:
trueif the given identifier is a function;falseotherwise
-
isInSubquery
Determines whether the givenExpressionis in a subquery or in the top-level query.- Parameters:
expression- TheExpressionto visit its parent hierarchy- Returns:
trueif the owning query is a subquery;falseif it's the top-level query
-
isInvalidExpression
Determines whether the givenExpressionrepresents an invalid fragment.- Parameters:
expression- TheExpressionto visit- Returns:
trueif theExpressionis an invalid fragment;falseotherwise
-
isJoinFetchIdentifiable
protected abstract boolean isJoinFetchIdentifiable()Determines whether aJOIN FETCHexpression can be identified by with an identification variable or not.- Returns:
trueif the expression can have an identification variable;falseotherwise
-
isLocked
Determines whether the givenExpressionhas been set has the lock to prevent an infinite recursion.- Parameters:
expression- TheExpressionto check if it is locked- Returns:
trueif the givenExpressionhas been marked as locked;falseotherwise
-
isNotExpression
Determines whether the givenExpressionrepresents the negated expression.- Parameters:
expression- TheExpressionto visit- Returns:
trueif theExpressionisNotExpression;falseotherwise
-
isPositionWithin
Determines whether the given position is within the given word.Example: position=0, word="JPQL" => true Example: position=1, word="JPQL" => true Example: position=4, word="JPQL" => true Example: position=5, word="JPQL" => true Example: position=5, offset 2, (actual cursor position is 3), word="JPQL" => true
- Parameters:
position- The position of the cursoroffset- The offset to adjust the positionword- The word to check if the cursor is positioned in it- Returns:
trueif the given position is within the given word;falseotherwise
-
isPositionWithin
Determines whether the given position is within the given word.Example: position=0, word="JPQL" => true Example: position=1, word="JPQL" => true Example: position=4, word="JPQL" => true Example: position=5, word="JPQL" => true
- Parameters:
position- The position of the cursorword- The word to check if the cursor is positioned in it- Returns:
trueif the given position is within the given word;falseotherwise
-
isSubqueryAppendable
Determines whether the JPQL identifier starting a subquery (SELECT) can be appended based on the givenExpressionwhich is preceding the position of the cursor.- Parameters:
expression- TheExpressionthat precedes the position of the cursor- Returns:
trueif a subquery can be appended;falseotherwise
-
isValid
Determines whether the givenExpressionpart is an expression of the given query BNF.- Parameters:
expression- TheExpressionto validate based on the query BNF- Returns:
trueif theExpressionpart is a child of the given query BNF;falseotherwise
-
isValid
Determines whether the givenExpressionpart is an expression of the given query BNF.- Parameters:
expression- TheExpressionto validate based on the query BNF- Returns:
trueif theExpressionpart is a child of the given query BNF;falseotherwise
-
isValid
Determines whether the givenJPQLQueryBNFpart is the given parentJPQLQueryBNF.- Parameters:
parentQueryBNF- The "root" of the BNF used to determine if the other is a descendantqueryBNF- The BNF to check if it is a descendant of the parent- Returns:
trueif theJPQLQueryBNFis a descendant of the given parentJPQLQueryBNF;falseotherwise
-
isValid
protected boolean isValid(JPQLQueryBNF parentQueryBNF, JPQLQueryBNF queryBNF, boolean bypassCompound) Determines whether the givenJPQLQueryBNFpart is the given parentJPQLQueryBNF.- Parameters:
parentQueryBNF- The "root" of the BNF used to determine if the other is a descendantqueryBNF- The BNF to check if it is a descendant of the parentbypassCompound- Indicates whether aJPQLQueryBNFrepresenting a compound expression should be considered when doing the validation- Returns:
trueif theJPQLQueryBNFis a descendant of the given parentJPQLQueryBNF;falseotherwise
-
isValid
Determines whether the givenJPQLQueryBNFpart is the given parentJPQLQueryBNF.- Parameters:
parentQueryBNF- The "root" of the BNF used to determine if the other is a descendantqueryBNFId- The unique identifier of theJPQLQueryBNFto check if it is a descendant of the parentbypassCompound- Indicates whether aJPQLQueryBNFrepresenting a compound expression should be considered when doing the validation- Returns:
trueif theJPQLQueryBNFis a descendant of the given parentJPQLQueryBNF;falseotherwise
-
isValidProposal
Determines whether the given proposal is a valid, which is based on the content of the given word. If the word is not an empty string, the proposal must start with the content of the word.- Parameters:
proposal- The proposal to validateword- The word, which is what was parsed before the position of the cursor- Returns:
trueif the proposal is valid;falseotherwise
-
isValidVersion
Determines whether the given JPQL identifier can be a valid proposal, i.e. if it's part of the grammar of the JPA version that was used to parse the JPQL query.- Parameters:
identifier- The JPQL identifier to validate- Returns:
trueif the given identifier is part of the current JPA version or was defined in previous release;falseotherwise
-
isWithinInvalidExpression
Determines whether the givenExpressionis part of an invalid fragment- Parameters:
expression- TheExpressionto verify its location within the JPQL query- Returns:
trueif the givenExpressionis within an invalid fragment;falseif it is not
-
registerHelper
Registers the given helper associated with the given helper class.- Parameters:
helperClass- The Java class of the helper to retrievehelper- The helper being registered- See Also:
-
removeVirtualSpace
protected final void removeVirtualSpace()Removes the last virtual space from the stack. -
toString
-
visit
Description copied from interface:ExpressionVisitorVisits theAbsExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theAbstractSchemaNameexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theAdditionExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theAllOrAnyExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theAndExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theArithmeticFactorexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theAvgFunctionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theBadExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theBetweenExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theCaseExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theCoalesceExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theCollectionExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theCollectionMemberDeclarationexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theCollectionMemberExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theCollectionValuedPathExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theComparisonExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theConcatExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theConstructorExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theCountFunctionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theDateTimeexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theDeleteClauseexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theDeleteStatementexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theDivisionExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theEmptyCollectionComparisonExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theEntityTypeLiteralexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theEntryExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theExistsExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from class:AnonymousExpressionVisitorBlindly visit the givenExpression.- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theFromClauseexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theFunctionExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theGroupByClauseexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theHavingClauseexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theIdentificationVariableexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theIdentificationVariableDeclarationexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theIndexExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theInExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theInputParameterexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theJoinexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theJPQLExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theKeyExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theKeywordExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theLengthExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theLikeExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theLocalExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theLocalDateTimeexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theLocateExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theLowerExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theMathDoubleExpression.Powerexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theMathDoubleExpression.Roundexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theMathSingleExpression.Ceilingexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theMathSingleExpression.Expexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theMathSingleExpression.Floorexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theMathSingleExpression.Lnexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theMathSingleExpression.Signexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theMaxFunctionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theMinFunctionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theModExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theMultiplicationExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theNotExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theNullComparisonExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theNullExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theNullIfExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theNumericLiteralexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theObjectExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theOnClauseexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theOrderByClauseexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theOrderByItemexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theOrExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theRangeVariableDeclarationexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theResultVariableexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theSelectClauseexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theSelectStatementexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theSimpleFromClauseexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theSimpleSelectClauseexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theSimpleSelectStatementexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theSizeExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theSqrtExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theStateFieldPathExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theStringLiteralexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theSubExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theSubstringExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theSubtractionExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theSumFunctionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theTreatExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theTrimExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theTypeExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theUnknownExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheUnknownExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theUpdateClauseexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheUpdateClauseto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theUpdateItemexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheUpdateItemto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theUpdateStatementexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheUpdateStatementto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theUpperExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheUpperExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theValueExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheValueExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theWhenClauseexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheWhenClauseto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theWhereClauseexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheWhereClauseto visit
-
visitAggregateFunction
Visits the givenAggregateFunctionand attempts to find valid proposals.- Parameters:
expression- TheAggregateFunctionto inspect
-
visitArithmeticExpression
Visits the givenArithmeticExpressionand attempts to find valid proposals.- Parameters:
expression- TheArithmeticExpressionto inspect
-
visitCollectionExpression
protected <T extends Expression> void visitCollectionExpression(T expression, String identifier, AbstractContentAssistVisitor.CollectionExpressionHelper<T> helper) Adds the possible proposals for the givenexpressionbased on the location of the cursor and the content of the expression.- Parameters:
expression- Theexpressionbeing visitedidentifier- The JPQL identifier of theExpressionbeing visited, if theExpressiondoes not have an identifier, than an empty string should be passedhelper- This helper completes the behavior of this method by retrieving the information from the givenExpression
-
visitEndingExpression
-
visitEnumConstant
-
visitInvalidExpression
-
visitLogicalExpression
Visits the givenLogicalExpressionand attempts to find valid proposals.- Parameters:
expression- TheLogicalExpressionto inspect
-
visitPathExpression
Visits the givenAbstractPathExpressionand attempts to find valid proposals.Note: A path expression can represent many things: state field, relationship field, collection field, enum constant, etc. This will consider all variations.
- Parameters:
expression- TheAbstractPathExpressionto inspect
-
visitPathExpression
Visits the givenAbstractPathExpressionby attempting to resolve the path.- Parameters:
expression- TheAbstractPathExpressionto inspectfilter- TheFilteris used to filter outIMappingthat are not valid based on their type and the type that is allowed
-
visitSingleEncapsulatedExpression
protected void visitSingleEncapsulatedExpression(AbstractSingleEncapsulatedExpression expression, AbstractContentAssistVisitor.IdentificationVariableType identificationVariableType) Adds the possible proposals for the givenexpressionbased on the location of the cursor and the content of the expression.- Parameters:
expression- Theexpressionbeing visitedidentificationVariableType- The type of identification variables that can be added as possible proposals
-
visitSingleEncapsulatedExpression
protected void visitSingleEncapsulatedExpression(AbstractSingleEncapsulatedExpression expression, AbstractContentAssistVisitor.IdentificationVariableType identificationVariableType, String... expressionIdentifiers) Adds the possible proposals for the givenexpressionbased on the location of the cursor and the content of the expression.- Parameters:
expression- Theexpressionbeing visitedidentificationVariableType- The type of identification variables that can be added as possible proposalsexpressionIdentifiers- Sometimes the expression may have more than one possible identifier, such as ALL, ANY and SOME are a possible JPQL identifier for a single expression (AllOrAnyExpression
-
visitStatement
protected <T extends Expression> void visitStatement(T expression, AbstractContentAssistVisitor.StatementHelper<T> helper) Visits the givenAbstractSelectStatementand checks to see if the identifiers of the following clauses can be added a valid proposals.- Parameters:
helper- This helper handles one clause from the givenSELECTstatement
-
visitThirdPartyPathExpression
protected void visitThirdPartyPathExpression(AbstractPathExpression expression, String variableName) Visits the givenAbstractPathExpressionand attempts to find valid proposals that is not provided by the default implementation. Subclasses can add additional proposals that is outside of the scope of generic JPA metadata.- Parameters:
expression- TheAbstractPathExpressionto inspectvariableName- The beginning of the path expression
-