java.lang.Object
org.eclipse.persistence.jpa.jpql.parser.AnonymousExpressionVisitor
org.eclipse.persistence.jpa.jpql.parser.AbstractTraverseParentVisitor
org.eclipse.persistence.jpa.jpql.ParameterTypeVisitor
- All Implemented Interfaces:
ExpressionVisitor
- Direct Known Subclasses:
AbstractEclipseLinkParameterTypeVisitor
This visitor calculates the type of an input parameter.
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.
- Version:
- 2.5
- Author:
- Pascal Filion
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected ExpressionTheExpressionthat will help to determine the type of the input parameter.protected booleanUsed to ignore the type when calculating it.protected InputParameterTheInputParameterfor which its type will be searched by visiting the query.protected Class<?> The well defined type, which does not have to be calculated.protected StringThe fully qualified name of the type.protected final Set<Expression> This is used to prevent an infinite loop. -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedCreates a newParameterTypeVisitor. -
Method Summary
Modifier and TypeMethodDescriptionvoiddispose()Disposes this visitor.abstract ObjectgetType()Returns the type, if it can be determined, of the input parameter.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(BetweenExpression expression) Visits theBetweenExpressionexpression.voidvisit(CaseExpression expression) Visits theCaseExpressionexpression.voidvisit(CoalesceExpression expression) Visits theCoalesceExpressionexpression.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.voidvisit(DatabaseType expression) Visits theDatabaseTypeexpression.voidVisits theDateTimeexpression.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.voidvisit(FunctionExpression expression) Visits theFunctionExpressionexpression.voidvisit(IdentificationVariable expression) Visits theIdentificationVariableexpression.voidvisit(IdExpression expression) Visits theIdExpressionexpression.voidvisit(IndexExpression expression) Visits theIndexExpressionexpression.voidvisit(InExpression expression) Visits theInExpressionexpression.voidvisit(InputParameter expression) Visits theInputParameterexpression.voidvisit(KeyExpression expression) Visits theKeyExpressionexpression.voidvisit(KeywordExpression expression) Visits theKeywordExpressionexpression.voidvisit(LeftExpression expression) Visits theLeftExpressionexpression.voidvisit(LengthExpression expression) Visits theLengthExpressionexpression.voidvisit(LikeExpression expression) Visits theLikeExpressionexpression.voidvisit(LocateExpression expression) Visits theLocateExpressionexpression.voidvisit(LowerExpression expression) Visits theLowerExpressionexpression.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(NullIfExpression expression) Visits theNullIfExpressionexpression.voidvisit(NumericLiteral expression) Visits theNumericLiteralexpression.voidvisit(ObjectExpression expression) Visits theObjectExpressionexpression.voidvisit(OrExpression expression) Visits theOrExpressionexpression.voidvisit(ReplaceExpression expression) Visits theReplaceExpressionexpression.voidvisit(RightExpression expression) Visits theRightExpressionexpression.voidvisit(SizeExpression expression) Visits theSizeExpressionexpression.voidvisit(SqrtExpression expression) Visits theSqrtExpressionexpression.voidvisit(StateFieldPathExpression expression) Visits theStateFieldPathExpressionexpression.voidvisit(StringLiteral expression) Visits theStringLiteralexpression.voidvisit(SubstringExpression expression) Visits theSubstringExpressionexpression.voidvisit(SubtractionExpression expression) Visits theSubtractionExpressionexpression.voidvisit(SumFunction expression) Visits theSumFunctionexpression.voidvisit(TrimExpression expression) Visits theTrimExpressionexpression.voidvisit(TypeExpression expression) Visits theTypeExpressionexpression.voidvisit(UpdateItem expression) Visits theUpdateItemexpression.voidvisit(UpperExpression expression) Visits theUpperExpressionexpression.voidvisit(ValueExpression expression) Visits theValueExpressionexpression.voidvisit(VersionExpression expression) Visits theVersionExpressionexpression.voidvisit(WhenClause expression) Visits theWhenClauseexpression.protected voidvisitCompoundExpression(CompoundExpression expression) protected voidprotected voidvisitDoubleExpressions(Expression expression, Expression firstExpression, Expression secondExpression, boolean traverseParent) Methods inherited from class org.eclipse.persistence.jpa.jpql.parser.AbstractTraverseParentVisitor
visit, visitMethods inherited from class org.eclipse.persistence.jpa.jpql.parser.AnonymousExpressionVisitor
visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit
-
Field Details
-
expression
TheExpressionthat will help to determine the type of the input parameter. -
ignoreType
protected boolean ignoreTypeUsed to ignore the type when calculating it. If Object.class was used, then it could incorrectly calculate the type. Example: ":arg = 'JPQL' AND :arg IS NULL", the second :arg should be ignored. -
inputParameter
TheInputParameterfor which its type will be searched by visiting the query. -
type
The well defined type, which does not have to be calculated. -
typeName
The fully qualified name of the type. -
visitedExpressions
This is used to prevent an infinite loop.
-
-
Constructor Details
-
ParameterTypeVisitor
protected ParameterTypeVisitor()Creates a newParameterTypeVisitor.
-
-
Method Details
-
dispose
public void dispose()Disposes this visitor. -
getType
Returns the type, if it can be determined, of the input parameter.- Returns:
- Either the closed type or
Objectif it can't be determined
-
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 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 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 theDatabaseTypeexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheDatabaseTypeto 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 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 interface:ExpressionVisitorVisits theFunctionExpressionexpression.- 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 theIdExpressionexpression.- 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 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 theLeftExpressionexpression.- 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 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 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 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 theOrExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theReplaceExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theRightExpressionexpression.- 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 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 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 theUpdateItemexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheUpdateItemto 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 theVersionExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
Description copied from interface:ExpressionVisitorVisits theWhenClauseexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheWhenClauseto visit
-
visitCompoundExpression
-
visitDoubleEncapsulatedExpression
-
visitDoubleExpressions
protected void visitDoubleExpressions(Expression expression, Expression firstExpression, Expression secondExpression, boolean traverseParent)
-