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 Expression
expression
TheExpression
that will help to determine the type of the input parameter.protected boolean
ignoreType
Used to ignore the type when calculating it.protected InputParameter
inputParameter
TheInputParameter
for which its type will be searched by visiting the query.protected java.lang.Class<?>
type
The well defined type, which does not have to be calculated.protected java.lang.String
typeName
The fully qualified name of the type.protected java.util.Set<Expression>
visitedExpressions
This is used to prevent an infinite loop.
-
Constructor Summary
Constructors Modifier Constructor Description protected
ParameterTypeVisitor()
Creates a newParameterTypeVisitor
.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
dispose()
Disposes this visitor.abstract java.lang.Object
getType()
Returns the type, if it can be determined, of the input parameter.void
visit(AbsExpression expression)
Visits theAbsExpression
expression.void
visit(AbstractSchemaName expression)
Visits theAbstractSchemaName
expression.void
visit(AdditionExpression expression)
Visits theAdditionExpression
expression.void
visit(AllOrAnyExpression expression)
Visits theAllOrAnyExpression
expression.void
visit(AndExpression expression)
Visits theAndExpression
expression.void
visit(ArithmeticFactor expression)
Visits theArithmeticFactor
expression.void
visit(AvgFunction expression)
Visits theAvgFunction
expression.void
visit(BetweenExpression expression)
Visits theBetweenExpression
expression.void
visit(CaseExpression expression)
Visits theCaseExpression
expression.void
visit(CoalesceExpression expression)
Visits theCoalesceExpression
expression.void
visit(CollectionMemberExpression expression)
Visits theCollectionMemberExpression
expression.void
visit(CollectionValuedPathExpression expression)
Visits theCollectionValuedPathExpression
expression.void
visit(ComparisonExpression expression)
Visits theComparisonExpression
expression.void
visit(ConcatExpression expression)
Visits theConcatExpression
expression.void
visit(ConstructorExpression expression)
Visits theConstructorExpression
expression.void
visit(CountFunction expression)
Visits theCountFunction
expression.void
visit(DateTime expression)
Visits theDateTime
expression.void
visit(DivisionExpression expression)
Visits theDivisionExpression
expression.void
visit(EmptyCollectionComparisonExpression expression)
Visits theEmptyCollectionComparisonExpression
expression.void
visit(EntityTypeLiteral expression)
Visits theEntityTypeLiteral
expression.void
visit(EntryExpression expression)
Visits theEntryExpression
expression.void
visit(ExistsExpression expression)
Visits theExistsExpression
expression.void
visit(FunctionExpression expression)
Visits theFunctionExpression
expression.void
visit(IdentificationVariable expression)
Visits theIdentificationVariable
expression.void
visit(IndexExpression expression)
Visits theIndexExpression
expression.void
visit(InExpression expression)
Visits theInExpression
expression.void
visit(InputParameter expression)
Visits theInputParameter
expression.void
visit(KeyExpression expression)
Visits theKeyExpression
expression.void
visit(KeywordExpression expression)
Visits theKeywordExpression
expression.void
visit(LengthExpression expression)
Visits theLengthExpression
expression.void
visit(LikeExpression expression)
Visits theLikeExpression
expression.void
visit(LocateExpression expression)
Visits theLocateExpression
expression.void
visit(LowerExpression expression)
Visits theLowerExpression
expression.void
visit(MaxFunction expression)
Visits theMaxFunction
expression.void
visit(MinFunction expression)
Visits theMinFunction
expression.void
visit(ModExpression expression)
Visits theModExpression
expression.void
visit(MultiplicationExpression expression)
Visits theMultiplicationExpression
expression.void
visit(NotExpression expression)
Visits theNotExpression
expression.void
visit(NullComparisonExpression expression)
Visits theNullComparisonExpression
expression.void
visit(NullIfExpression expression)
Visits theNullIfExpression
expression.void
visit(NumericLiteral expression)
Visits theNumericLiteral
expression.void
visit(ObjectExpression expression)
Visits theObjectExpression
expression.void
visit(OrExpression expression)
Visits theOrExpression
expression.void
visit(SizeExpression expression)
Visits theSizeExpression
expression.void
visit(SqrtExpression expression)
Visits theSqrtExpression
expression.void
visit(StateFieldPathExpression expression)
Visits theStateFieldPathExpression
expression.void
visit(StringLiteral expression)
Visits theStringLiteral
expression.void
visit(SubstringExpression expression)
Visits theSubstringExpression
expression.void
visit(SubtractionExpression expression)
Visits theSubtractionExpression
expression.void
visit(SumFunction expression)
Visits theSumFunction
expression.void
visit(TrimExpression expression)
Visits theTrimExpression
expression.void
visit(TypeExpression expression)
Visits theTypeExpression
expression.void
visit(UpdateItem expression)
Visits theUpdateItem
expression.void
visit(UpperExpression expression)
Visits theUpperExpression
expression.void
visit(ValueExpression expression)
Visits theValueExpression
expression.void
visit(WhenClause expression)
Visits theWhenClause
expression.protected void
visitCompoundExpression(CompoundExpression expression)
protected void
visitDoubleEncapsulatedExpression(AbstractDoubleEncapsulatedExpression expression)
protected void
visitDoubleExpressions(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
TheExpression
that 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
TheInputParameter
for 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
Object
if it can't be determined
-
visit
public void visit(AbsExpression expression)
Visits theAbsExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(AbstractSchemaName expression)
Visits theAbstractSchemaName
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(AdditionExpression expression)
Visits theAdditionExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(AllOrAnyExpression expression)
Visits theAllOrAnyExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(AndExpression expression)
Visits theAndExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(ArithmeticFactor expression)
Visits theArithmeticFactor
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(AvgFunction expression)
Visits theAvgFunction
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(BetweenExpression expression)
Visits theBetweenExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(CaseExpression expression)
Visits theCaseExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(CoalesceExpression expression)
Visits theCoalesceExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(CollectionMemberExpression expression)
Visits theCollectionMemberExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(CollectionValuedPathExpression expression)
Visits theCollectionValuedPathExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(ComparisonExpression expression)
Visits theComparisonExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(ConcatExpression expression)
Visits theConcatExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(ConstructorExpression expression)
Visits theConstructorExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(CountFunction expression)
Visits theCountFunction
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(DateTime expression)
Visits theDateTime
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(DivisionExpression expression)
Visits theDivisionExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(EmptyCollectionComparisonExpression expression)
Visits theEmptyCollectionComparisonExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(EntityTypeLiteral expression)
Visits theEntityTypeLiteral
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(EntryExpression expression)
Visits theEntryExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(ExistsExpression expression)
Visits theExistsExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(FunctionExpression expression)
Visits theFunctionExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(IdentificationVariable expression)
Visits theIdentificationVariable
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(IndexExpression expression)
Visits theIndexExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(InExpression expression)
Visits theInExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(InputParameter expression)
Visits theInputParameter
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(KeyExpression expression)
Visits theKeyExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(KeywordExpression expression)
Visits theKeywordExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(LengthExpression expression)
Visits theLengthExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(LikeExpression expression)
Visits theLikeExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(LocateExpression expression)
Visits theLocateExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(LowerExpression expression)
Visits theLowerExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(MaxFunction expression)
Visits theMaxFunction
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(MinFunction expression)
Visits theMinFunction
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(ModExpression expression)
Visits theModExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(MultiplicationExpression expression)
Visits theMultiplicationExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(NotExpression expression)
Visits theNotExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(NullComparisonExpression expression)
Visits theNullComparisonExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(NullIfExpression expression)
Visits theNullIfExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(NumericLiteral expression)
Visits theNumericLiteral
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(ObjectExpression expression)
Visits theObjectExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(OrExpression expression)
Visits theOrExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(SizeExpression expression)
Visits theSizeExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(SqrtExpression expression)
Visits theSqrtExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(StateFieldPathExpression expression)
Visits theStateFieldPathExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(StringLiteral expression)
Visits theStringLiteral
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(SubstringExpression expression)
Visits theSubstringExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(SubtractionExpression expression)
Visits theSubtractionExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(SumFunction expression)
Visits theSumFunction
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(TrimExpression expression)
Visits theTrimExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(TypeExpression expression)
Visits theTypeExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(UpdateItem expression)
Visits theUpdateItem
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheUpdateItem
to visit
-
visit
public void visit(UpperExpression expression)
Visits theUpperExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheUpperExpression
to visit
-
visit
public void visit(ValueExpression expression)
Visits theValueExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheValueExpression
to visit
-
visit
public void visit(WhenClause expression)
Visits theWhenClause
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheWhenClause
to 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)
-
-