Package org.eclipse.persistence.jpa.jpql
Class ParameterTypeVisitor
- 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
public abstract class ParameterTypeVisitor extends AbstractTraverseParentVisitor
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.
- Since:
- 2.5
- Version:
- 2.5
- Author:
- Pascal Filion
-
-
Field Summary
Fields Modifier and Type Field Description protected ExpressionexpressionTheExpressionthat will help to determine the type of the input parameter.protected booleanignoreTypeUsed to ignore the type when calculating it.protected InputParameterinputParameterTheInputParameterfor which its type will be searched by visiting the query.protected Class<?>typeThe well defined type, which does not have to be calculated.protected StringtypeNameThe fully qualified name of the type.protected Set<Expression>visitedExpressionsThis is used to prevent an infinite loop.
-
Constructor Summary
Constructors Modifier Constructor Description protectedParameterTypeVisitor()Creates a newParameterTypeVisitor.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voiddispose()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(DateTime expression)Visits 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(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(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(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(WhenClause expression)Visits theWhenClauseexpression.protected voidvisitCompoundExpression(CompoundExpression expression)protected voidvisitDoubleEncapsulatedExpression(AbstractDoubleEncapsulatedExpression expression)protected voidvisitDoubleExpressions(Expression expression, Expression firstExpression, Expression secondExpression, boolean traverseParent)-
Methods inherited from class org.eclipse.persistence.jpa.jpql.parser.AbstractTraverseParentVisitor
visit, visit
-
Methods 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
-
-
-
-
Field Detail
-
expression
protected Expression expression
TheExpressionthat will help to determine the type of the input parameter.
-
ignoreType
protected boolean ignoreType
Used 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
protected InputParameter inputParameter
TheInputParameterfor which its type will be searched by visiting the query.
-
type
protected Class<?> type
The well defined type, which does not have to be calculated.
-
typeName
protected String typeName
The fully qualified name of the type.
-
visitedExpressions
protected final Set<Expression> visitedExpressions
This is used to prevent an infinite loop.
-
-
Method Detail
-
dispose
public void dispose()
Disposes this visitor.
-
getType
public abstract Object 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
public void visit(AbsExpression expression)
Description copied from interface:ExpressionVisitorVisits theAbsExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(AbstractSchemaName expression)
Description copied from interface:ExpressionVisitorVisits theAbstractSchemaNameexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(AdditionExpression expression)
Description copied from interface:ExpressionVisitorVisits theAdditionExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(AllOrAnyExpression expression)
Description copied from interface:ExpressionVisitorVisits theAllOrAnyExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(AndExpression expression)
Description copied from interface:ExpressionVisitorVisits theAndExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(ArithmeticFactor expression)
Description copied from interface:ExpressionVisitorVisits theArithmeticFactorexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(AvgFunction expression)
Description copied from interface:ExpressionVisitorVisits theAvgFunctionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(BetweenExpression expression)
Description copied from interface:ExpressionVisitorVisits theBetweenExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(CaseExpression expression)
Description copied from interface:ExpressionVisitorVisits theCaseExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(CoalesceExpression expression)
Description copied from interface:ExpressionVisitorVisits theCoalesceExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(CollectionMemberExpression expression)
Description copied from interface:ExpressionVisitorVisits theCollectionMemberExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(CollectionValuedPathExpression expression)
Description copied from interface:ExpressionVisitorVisits theCollectionValuedPathExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(ComparisonExpression expression)
Description copied from interface:ExpressionVisitorVisits theComparisonExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(ConcatExpression expression)
Description copied from interface:ExpressionVisitorVisits theConcatExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(ConstructorExpression expression)
Description copied from interface:ExpressionVisitorVisits theConstructorExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(CountFunction expression)
Description copied from interface:ExpressionVisitorVisits theCountFunctionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(DateTime expression)
Description copied from interface:ExpressionVisitorVisits theDateTimeexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(DivisionExpression expression)
Description copied from interface:ExpressionVisitorVisits theDivisionExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(EmptyCollectionComparisonExpression expression)
Description copied from interface:ExpressionVisitorVisits theEmptyCollectionComparisonExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(EntityTypeLiteral expression)
Description copied from interface:ExpressionVisitorVisits theEntityTypeLiteralexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(EntryExpression expression)
Description copied from interface:ExpressionVisitorVisits theEntryExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(ExistsExpression expression)
Description copied from interface:ExpressionVisitorVisits theExistsExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(FunctionExpression expression)
Description copied from interface:ExpressionVisitorVisits theFunctionExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(IdentificationVariable expression)
Description copied from interface:ExpressionVisitorVisits theIdentificationVariableexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(IndexExpression expression)
Description copied from interface:ExpressionVisitorVisits theIndexExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(InExpression expression)
Description copied from interface:ExpressionVisitorVisits theInExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(InputParameter expression)
Description copied from interface:ExpressionVisitorVisits theInputParameterexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(KeyExpression expression)
Description copied from interface:ExpressionVisitorVisits theKeyExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(KeywordExpression expression)
Description copied from interface:ExpressionVisitorVisits theKeywordExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(LengthExpression expression)
Description copied from interface:ExpressionVisitorVisits theLengthExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(LikeExpression expression)
Description copied from interface:ExpressionVisitorVisits theLikeExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(LocateExpression expression)
Description copied from interface:ExpressionVisitorVisits theLocateExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(LowerExpression expression)
Description copied from interface:ExpressionVisitorVisits theLowerExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(MaxFunction expression)
Description copied from interface:ExpressionVisitorVisits theMaxFunctionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(MinFunction expression)
Description copied from interface:ExpressionVisitorVisits theMinFunctionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(ModExpression expression)
Description copied from interface:ExpressionVisitorVisits theModExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(MultiplicationExpression expression)
Description copied from interface:ExpressionVisitorVisits theMultiplicationExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(NotExpression expression)
Description copied from interface:ExpressionVisitorVisits theNotExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(NullComparisonExpression expression)
Description copied from interface:ExpressionVisitorVisits theNullComparisonExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(NullIfExpression expression)
Description copied from interface:ExpressionVisitorVisits theNullIfExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(NumericLiteral expression)
Description copied from interface:ExpressionVisitorVisits theNumericLiteralexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(ObjectExpression expression)
Description copied from interface:ExpressionVisitorVisits theObjectExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(OrExpression expression)
Description copied from interface:ExpressionVisitorVisits theOrExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(SizeExpression expression)
Description copied from interface:ExpressionVisitorVisits theSizeExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(SqrtExpression expression)
Description copied from interface:ExpressionVisitorVisits theSqrtExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(StateFieldPathExpression expression)
Description copied from interface:ExpressionVisitorVisits theStateFieldPathExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(StringLiteral expression)
Description copied from interface:ExpressionVisitorVisits theStringLiteralexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(SubstringExpression expression)
Description copied from interface:ExpressionVisitorVisits theSubstringExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(SubtractionExpression expression)
Description copied from interface:ExpressionVisitorVisits theSubtractionExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(SumFunction expression)
Description copied from interface:ExpressionVisitorVisits theSumFunctionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(TrimExpression expression)
Description copied from interface:ExpressionVisitorVisits theTrimExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(TypeExpression expression)
Description copied from interface:ExpressionVisitorVisits theTypeExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(UpdateItem expression)
Description copied from interface:ExpressionVisitorVisits theUpdateItemexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheUpdateItemto visit
-
visit
public void visit(UpperExpression expression)
Description copied from interface:ExpressionVisitorVisits theUpperExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheUpperExpressionto visit
-
visit
public void visit(ValueExpression expression)
Description copied from interface:ExpressionVisitorVisits theValueExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheValueExpressionto visit
-
visit
public void visit(WhenClause expression)
Description copied from interface:ExpressionVisitorVisits theWhenClauseexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheWhenClauseto visit
-
visitCompoundExpression
protected void visitCompoundExpression(CompoundExpression expression)
-
visitDoubleEncapsulatedExpression
protected void visitDoubleEncapsulatedExpression(AbstractDoubleEncapsulatedExpression expression)
-
visitDoubleExpressions
protected void visitDoubleExpressions(Expression expression, Expression firstExpression, Expression secondExpression, boolean traverseParent)
-
-