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,DefaultParameterTypeVisitor
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.
- Version:
- 2.5
- Author:
- Pascal Filion
- Since:
- 2.5
-
-
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 java.lang.Class<?>typeThe well defined type, which does not have to be calculated.protected java.lang.StringtypeNameThe fully qualified name of the type.protected java.util.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 java.lang.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
-
-
-
-
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 java.lang.Class<?> type
The well defined type, which does not have to be calculated.
-
typeName
protected java.lang.String typeName
The fully qualified name of the type.
-
visitedExpressions
protected final java.util.Set<Expression> visitedExpressions
This is used to prevent an infinite loop.
-
-
Method Detail
-
dispose
public void dispose()
Disposes this visitor.
-
getType
public abstract java.lang.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)
Visits theAbsExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(AbstractSchemaName expression)
Visits theAbstractSchemaNameexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(AdditionExpression expression)
Visits theAdditionExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(AllOrAnyExpression expression)
Visits theAllOrAnyExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(AndExpression expression)
Visits theAndExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(ArithmeticFactor expression)
Visits theArithmeticFactorexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(AvgFunction expression)
Visits theAvgFunctionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(BetweenExpression expression)
Visits theBetweenExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(CaseExpression expression)
Visits theCaseExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(CoalesceExpression expression)
Visits theCoalesceExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(CollectionMemberExpression expression)
Visits theCollectionMemberExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(CollectionValuedPathExpression expression)
Visits theCollectionValuedPathExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(ComparisonExpression expression)
Visits theComparisonExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(ConcatExpression expression)
Visits theConcatExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(ConstructorExpression expression)
Visits theConstructorExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(CountFunction expression)
Visits theCountFunctionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(DateTime expression)
Visits theDateTimeexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(DivisionExpression expression)
Visits theDivisionExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(EmptyCollectionComparisonExpression expression)
Visits theEmptyCollectionComparisonExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(EntityTypeLiteral expression)
Visits theEntityTypeLiteralexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(EntryExpression expression)
Visits theEntryExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(ExistsExpression expression)
Visits theExistsExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(FunctionExpression expression)
Visits theFunctionExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(IdentificationVariable expression)
Visits theIdentificationVariableexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(IndexExpression expression)
Visits theIndexExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(InExpression expression)
Visits theInExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(InputParameter expression)
Visits theInputParameterexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(KeyExpression expression)
Visits theKeyExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(KeywordExpression expression)
Visits theKeywordExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(LengthExpression expression)
Visits theLengthExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(LikeExpression expression)
Visits theLikeExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(LocateExpression expression)
Visits theLocateExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(LowerExpression expression)
Visits theLowerExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(MaxFunction expression)
Visits theMaxFunctionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(MinFunction expression)
Visits theMinFunctionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(ModExpression expression)
Visits theModExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(MultiplicationExpression expression)
Visits theMultiplicationExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(NotExpression expression)
Visits theNotExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(NullComparisonExpression expression)
Visits theNullComparisonExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(NullIfExpression expression)
Visits theNullIfExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(NumericLiteral expression)
Visits theNumericLiteralexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(ObjectExpression expression)
Visits theObjectExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(OrExpression expression)
Visits theOrExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(SizeExpression expression)
Visits theSizeExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(SqrtExpression expression)
Visits theSqrtExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(StateFieldPathExpression expression)
Visits theStateFieldPathExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(StringLiteral expression)
Visits theStringLiteralexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(SubstringExpression expression)
Visits theSubstringExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(SubtractionExpression expression)
Visits theSubtractionExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(SumFunction expression)
Visits theSumFunctionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(TrimExpression expression)
Visits theTrimExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(TypeExpression expression)
Visits theTypeExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(UpdateItem expression)
Visits theUpdateItemexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheUpdateItemto visit
-
visit
public void visit(UpperExpression expression)
Visits theUpperExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheUpperExpressionto visit
-
visit
public void visit(ValueExpression expression)
Visits theValueExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheValueExpressionto visit
-
visit
public void visit(WhenClause expression)
Visits 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)
-
-