Class EvaluatingVisitor
- java.lang.Object
-
- com.thoughtworks.qdox.builder.impl.EvaluatingVisitor
-
- All Implemented Interfaces:
ExpressionVisitor
public class EvaluatingVisitor extends java.lang.Object implements ExpressionVisitor
Visitor that evaluates annotation expressions.Users of this class must override
getFieldReferenceValue(JavaField)
to return values for referenced fields.
-
-
Constructor Summary
Constructors Constructor Description EvaluatingVisitor()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected java.lang.Object
getFieldReferenceValue(JavaField javaField)
java.util.List<?>
getListValue(JavaAnnotation annotation, java.lang.String property)
java.lang.Object
getValue(JavaAnnotation annotation, java.lang.String property)
protected static java.lang.Class<?>
numericResultType(java.lang.Object left, java.lang.Object right)
Return the numeric result type of a binary operatorprotected static java.lang.Class<?>
resultType(java.lang.Object left, java.lang.Object right)
Return the result type of a binary operatorprotected static java.lang.Class<?>
unaryNumericResultType(java.lang.Object value)
Return the result type of an unary operatorprotected static java.lang.Class<?>
unaryResultType(java.lang.Object value)
java.lang.Object
visit(Add op)
java.lang.Object
visit(And and)
java.util.List<?>
visit(AnnotationValueList valueList)
java.lang.Object
visit(Assignment assignment)
java.lang.Object
visit(Cast annotationCast)
java.lang.Object
visit(Constant constant)
java.lang.Object
visit(Divide op)
java.lang.Object
visit(Equals annotationEquals)
java.lang.Object
visit(ExclusiveOr annotationExclusiveOr)
java.lang.Object
visit(FieldRef fieldRef)
java.lang.Object
visit(GreaterEquals greaterEquals)
java.lang.Object
visit(GreaterThan op)
java.lang.Object
visit(LessEquals lessEquals)
java.lang.Object
visit(LessThan op)
java.lang.Object
visit(LogicalAnd and)
java.lang.Object
visit(LogicalNot not)
java.lang.Object
visit(LogicalOr or)
java.lang.Object
visit(MethodInvocation methodInvocation)
java.lang.Object
visit(MinusSign sign)
java.lang.Object
visit(Multiply op)
java.lang.Object
visit(Not not)
java.lang.Object
visit(NotEquals annotationNotEquals)
java.lang.Object
visit(Or or)
java.lang.Object
visit(ParenExpression parenExpression)
java.lang.Object
visit(PlusSign sign)
java.lang.Object
visit(PostDecrement postDecrement)
java.lang.Object
visit(PostIncrement postIncrement)
java.lang.Object
visit(PreDecrement preDecrement)
java.lang.Object
visit(PreIncrement preIncrement)
java.lang.Object
visit(Query annotationQuery)
java.lang.Object
visit(Remainder remainder)
java.lang.Object
visit(ShiftLeft shiftLeft)
java.lang.Object
visit(ShiftRight shiftRight)
java.lang.Object
visit(Subtract op)
JavaType
visit(TypeRef typeRef)
java.lang.Object
visit(UnsignedShiftRight shiftRight)
java.lang.Object
visit(JavaAnnotation annotation)
-
-
-
Method Detail
-
getValue
public java.lang.Object getValue(JavaAnnotation annotation, java.lang.String property)
-
getListValue
public java.util.List<?> getListValue(JavaAnnotation annotation, java.lang.String property)
-
resultType
protected static java.lang.Class<?> resultType(java.lang.Object left, java.lang.Object right)
Return the result type of a binary operatorPerforms binary numeric promotion as specified in the Java Language Specification,
- Parameters:
left
- the left hand side instanceright
- the right hand side instance- Returns:
- the expected result Class
- See Also:
- section 5.6.1
-
numericResultType
protected static java.lang.Class<?> numericResultType(java.lang.Object left, java.lang.Object right)
Return the numeric result type of a binary operatorPerforms binary numeric promotion as specified in the Java Language Specification,
- Parameters:
left
- the left hand side instanceright
- the right hand side instance- Returns:
- the expected result Class
- See Also:
- section 5.6.1
-
unaryNumericResultType
protected static java.lang.Class<?> unaryNumericResultType(java.lang.Object value)
Return the result type of an unary operatorPerforms unary numeric promotion as specified in the Java Language Specification,
- Parameters:
value
- the instance- Returns:
- the expected result Class
- See Also:
- section 5.6.2
-
unaryResultType
protected static java.lang.Class<?> unaryResultType(java.lang.Object value)
-
visit
public java.lang.Object visit(JavaAnnotation annotation) throws java.lang.UnsupportedOperationException
- Specified by:
visit
in interfaceExpressionVisitor
- Throws:
java.lang.UnsupportedOperationException
-
visit
public java.lang.Object visit(Add op)
- Specified by:
visit
in interfaceExpressionVisitor
-
visit
public java.lang.Object visit(Constant constant)
- Specified by:
visit
in interfaceExpressionVisitor
-
visit
public java.lang.Object visit(Divide op)
- Specified by:
visit
in interfaceExpressionVisitor
-
visit
public java.lang.Object visit(FieldRef fieldRef)
- Specified by:
visit
in interfaceExpressionVisitor
-
getFieldReferenceValue
protected java.lang.Object getFieldReferenceValue(JavaField javaField)
-
visit
public java.lang.Object visit(GreaterThan op)
- Specified by:
visit
in interfaceExpressionVisitor
-
visit
public java.lang.Object visit(LessThan op)
- Specified by:
visit
in interfaceExpressionVisitor
-
visit
public java.lang.Object visit(Multiply op)
- Specified by:
visit
in interfaceExpressionVisitor
-
visit
public java.lang.Object visit(ParenExpression parenExpression)
- Specified by:
visit
in interfaceExpressionVisitor
-
visit
public java.lang.Object visit(Subtract op)
- Specified by:
visit
in interfaceExpressionVisitor
-
visit
public JavaType visit(TypeRef typeRef)
- Specified by:
visit
in interfaceExpressionVisitor
-
visit
public java.util.List<?> visit(AnnotationValueList valueList)
- Specified by:
visit
in interfaceExpressionVisitor
-
visit
public java.lang.Object visit(And and)
- Specified by:
visit
in interfaceExpressionVisitor
-
visit
public java.lang.Object visit(GreaterEquals greaterEquals)
- Specified by:
visit
in interfaceExpressionVisitor
-
visit
public java.lang.Object visit(LessEquals lessEquals)
- Specified by:
visit
in interfaceExpressionVisitor
-
visit
public java.lang.Object visit(LogicalAnd and)
- Specified by:
visit
in interfaceExpressionVisitor
-
visit
public java.lang.Object visit(LogicalNot not)
- Specified by:
visit
in interfaceExpressionVisitor
-
visit
public java.lang.Object visit(LogicalOr or)
- Specified by:
visit
in interfaceExpressionVisitor
-
visit
public java.lang.Object visit(MinusSign sign)
- Specified by:
visit
in interfaceExpressionVisitor
-
visit
public java.lang.Object visit(Not not)
- Specified by:
visit
in interfaceExpressionVisitor
-
visit
public java.lang.Object visit(Or or)
- Specified by:
visit
in interfaceExpressionVisitor
-
visit
public java.lang.Object visit(PlusSign sign)
- Specified by:
visit
in interfaceExpressionVisitor
-
visit
public java.lang.Object visit(Remainder remainder)
- Specified by:
visit
in interfaceExpressionVisitor
-
visit
public java.lang.Object visit(ShiftLeft shiftLeft)
- Specified by:
visit
in interfaceExpressionVisitor
-
visit
public java.lang.Object visit(ShiftRight shiftRight)
- Specified by:
visit
in interfaceExpressionVisitor
-
visit
public java.lang.Object visit(UnsignedShiftRight shiftRight)
- Specified by:
visit
in interfaceExpressionVisitor
-
visit
public java.lang.Object visit(Equals annotationEquals)
- Specified by:
visit
in interfaceExpressionVisitor
-
visit
public java.lang.Object visit(ExclusiveOr annotationExclusiveOr)
- Specified by:
visit
in interfaceExpressionVisitor
-
visit
public java.lang.Object visit(NotEquals annotationNotEquals)
- Specified by:
visit
in interfaceExpressionVisitor
-
visit
public java.lang.Object visit(Query annotationQuery)
- Specified by:
visit
in interfaceExpressionVisitor
-
visit
public java.lang.Object visit(Cast annotationCast)
- Specified by:
visit
in interfaceExpressionVisitor
-
visit
public java.lang.Object visit(PreDecrement preDecrement)
- Specified by:
visit
in interfaceExpressionVisitor
-
visit
public java.lang.Object visit(PreIncrement preIncrement)
- Specified by:
visit
in interfaceExpressionVisitor
-
visit
public java.lang.Object visit(PostDecrement postDecrement)
- Specified by:
visit
in interfaceExpressionVisitor
-
visit
public java.lang.Object visit(PostIncrement postIncrement)
- Specified by:
visit
in interfaceExpressionVisitor
-
visit
public java.lang.Object visit(Assignment assignment)
- Specified by:
visit
in interfaceExpressionVisitor
-
visit
public java.lang.Object visit(MethodInvocation methodInvocation)
- Specified by:
visit
in interfaceExpressionVisitor
-
-