com.thoughtworks.qdox.model.annotation

Class EvaluatingVisitor

public abstract class EvaluatingVisitor extends Object implements AnnotationVisitor

Visitor that evaluates annotation expressions.

Users of this class must override getFieldReferenceValue to return values for referenced fields.

Author: Jochen Kuhnle

Method Summary
protected abstract ObjectgetFieldReferenceValue(JavaField javaField)
ListgetListValue(Annotation annotation, String property)
ObjectgetValue(Annotation annotation, String property)
protected static ClassnumericResultType(Object left, Object right)
Return the numeric result type of a binary operator

Performs binary numeric promotion as specified in the Java Language Specification,

protected static ClassresultType(Object left, Object right)
Return the result type of a binary operator

Performs binary numeric promotion as specified in the Java Language Specification,

protected static ClassunaryNumericResultType(Object value)
Return the result type of an unary operator

Performs unary numeric promotion as specified in the Java Language Specification,

protected static ClassunaryResultType(Object value)
ObjectvisitAnnotation(Annotation annotation)
ObjectvisitAnnotationAdd(AnnotationAdd op)
ObjectvisitAnnotationAnd(AnnotationAnd and)
ObjectvisitAnnotationCast(AnnotationCast annotationCast)
ObjectvisitAnnotationConstant(AnnotationConstant constant)
ObjectvisitAnnotationDivide(AnnotationDivide op)
ObjectvisitAnnotationEquals(AnnotationEquals annotationEquals)
ObjectvisitAnnotationExclusiveOr(AnnotationExclusiveOr annotationExclusiveOr)
ObjectvisitAnnotationFieldRef(AnnotationFieldRef fieldRef)
ObjectvisitAnnotationGreaterEquals(AnnotationGreaterEquals greaterEquals)
ObjectvisitAnnotationGreaterThan(AnnotationGreaterThan op)
ObjectvisitAnnotationLessEquals(AnnotationLessEquals lessEquals)
ObjectvisitAnnotationLessThan(AnnotationLessThan op)
ObjectvisitAnnotationLogicalAnd(AnnotationLogicalAnd and)
ObjectvisitAnnotationLogicalNot(AnnotationLogicalNot not)
ObjectvisitAnnotationLogicalOr(AnnotationLogicalOr or)
ObjectvisitAnnotationMinusSign(AnnotationMinusSign sign)
ObjectvisitAnnotationMultiply(AnnotationMultiply op)
ObjectvisitAnnotationNot(AnnotationNot not)
ObjectvisitAnnotationNotEquals(AnnotationNotEquals annotationNotEquals)
ObjectvisitAnnotationOr(AnnotationOr or)
ObjectvisitAnnotationParenExpression(AnnotationParenExpression parenExpression)
ObjectvisitAnnotationPlusSign(AnnotationPlusSign sign)
ObjectvisitAnnotationQuery(AnnotationQuery annotationQuery)
ObjectvisitAnnotationRemainder(AnnotationRemainder remainder)
ObjectvisitAnnotationShiftLeft(AnnotationShiftLeft shiftLeft)
ObjectvisitAnnotationShiftRight(AnnotationShiftRight shiftRight)
ObjectvisitAnnotationSubtract(AnnotationSubtract op)
ObjectvisitAnnotationTypeRef(AnnotationTypeRef typeRef)
ObjectvisitAnnotationUnsignedShiftRight(AnnotationUnsignedShiftRight shiftRight)
ObjectvisitAnnotationValueList(AnnotationValueList valueList)

Method Detail

getFieldReferenceValue

protected abstract Object getFieldReferenceValue(JavaField javaField)

getListValue

public List getListValue(Annotation annotation, String property)

getValue

public Object getValue(Annotation annotation, String property)

numericResultType

protected static Class numericResultType(Object left, Object right)
Return the numeric result type of a binary operator

Performs binary numeric promotion as specified in the Java Language Specification,

See Also: section 5.6.1

resultType

protected static Class resultType(Object left, Object right)
Return the result type of a binary operator

Performs binary numeric promotion as specified in the Java Language Specification,

See Also: section 5.6.1

unaryNumericResultType

protected static Class unaryNumericResultType(Object value)
Return the result type of an unary operator

Performs unary numeric promotion as specified in the Java Language Specification,

See Also: section 5.6.2

unaryResultType

protected static Class unaryResultType(Object value)

visitAnnotation

public Object visitAnnotation(Annotation annotation)

visitAnnotationAdd

public Object visitAnnotationAdd(AnnotationAdd op)

visitAnnotationAnd

public Object visitAnnotationAnd(AnnotationAnd and)

visitAnnotationCast

public Object visitAnnotationCast(AnnotationCast annotationCast)

visitAnnotationConstant

public Object visitAnnotationConstant(AnnotationConstant constant)

visitAnnotationDivide

public Object visitAnnotationDivide(AnnotationDivide op)

visitAnnotationEquals

public Object visitAnnotationEquals(AnnotationEquals annotationEquals)

visitAnnotationExclusiveOr

public Object visitAnnotationExclusiveOr(AnnotationExclusiveOr annotationExclusiveOr)

visitAnnotationFieldRef

public Object visitAnnotationFieldRef(AnnotationFieldRef fieldRef)

visitAnnotationGreaterEquals

public Object visitAnnotationGreaterEquals(AnnotationGreaterEquals greaterEquals)

visitAnnotationGreaterThan

public Object visitAnnotationGreaterThan(AnnotationGreaterThan op)

visitAnnotationLessEquals

public Object visitAnnotationLessEquals(AnnotationLessEquals lessEquals)

visitAnnotationLessThan

public Object visitAnnotationLessThan(AnnotationLessThan op)

visitAnnotationLogicalAnd

public Object visitAnnotationLogicalAnd(AnnotationLogicalAnd and)

visitAnnotationLogicalNot

public Object visitAnnotationLogicalNot(AnnotationLogicalNot not)

visitAnnotationLogicalOr

public Object visitAnnotationLogicalOr(AnnotationLogicalOr or)

visitAnnotationMinusSign

public Object visitAnnotationMinusSign(AnnotationMinusSign sign)

visitAnnotationMultiply

public Object visitAnnotationMultiply(AnnotationMultiply op)

visitAnnotationNot

public Object visitAnnotationNot(AnnotationNot not)

visitAnnotationNotEquals

public Object visitAnnotationNotEquals(AnnotationNotEquals annotationNotEquals)

visitAnnotationOr

public Object visitAnnotationOr(AnnotationOr or)

visitAnnotationParenExpression

public Object visitAnnotationParenExpression(AnnotationParenExpression parenExpression)

visitAnnotationPlusSign

public Object visitAnnotationPlusSign(AnnotationPlusSign sign)

visitAnnotationQuery

public Object visitAnnotationQuery(AnnotationQuery annotationQuery)

visitAnnotationRemainder

public Object visitAnnotationRemainder(AnnotationRemainder remainder)

visitAnnotationShiftLeft

public Object visitAnnotationShiftLeft(AnnotationShiftLeft shiftLeft)

visitAnnotationShiftRight

public Object visitAnnotationShiftRight(AnnotationShiftRight shiftRight)

visitAnnotationSubtract

public Object visitAnnotationSubtract(AnnotationSubtract op)

visitAnnotationTypeRef

public Object visitAnnotationTypeRef(AnnotationTypeRef typeRef)

visitAnnotationUnsignedShiftRight

public Object visitAnnotationUnsignedShiftRight(AnnotationUnsignedShiftRight shiftRight)

visitAnnotationValueList

public Object visitAnnotationValueList(AnnotationValueList valueList)