com.thoughtworks.qdox.model.annotation
Class EvaluatingVisitor

java.lang.Object
  extended by com.thoughtworks.qdox.model.annotation.EvaluatingVisitor
All Implemented Interfaces:
AnnotationVisitor

public abstract class EvaluatingVisitor
extends java.lang.Object
implements AnnotationVisitor

Visitor that evaluates annotation expressions.

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

Author:
Jochen Kuhnle

Constructor Summary
EvaluatingVisitor()
           
 
Method Summary
protected abstract  java.lang.Object getFieldReferenceValue(JavaField javaField)
           
 java.util.List getListValue(Annotation annotation, java.lang.String property)
           
 java.lang.Object getValue(Annotation 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 operator
protected static java.lang.Class resultType(java.lang.Object left, java.lang.Object right)
          Return the result type of a binary operator
protected static java.lang.Class unaryNumericResultType(java.lang.Object value)
          Return the result type of an unary operator
protected static java.lang.Class unaryResultType(java.lang.Object value)
           
 java.lang.Object visitAnnotation(Annotation annotation)
           
 java.lang.Object visitAnnotationAdd(AnnotationAdd op)
           
 java.lang.Object visitAnnotationAnd(AnnotationAnd and)
           
 java.lang.Object visitAnnotationCast(AnnotationCast annotationCast)
           
 java.lang.Object visitAnnotationConstant(AnnotationConstant constant)
           
 java.lang.Object visitAnnotationDivide(AnnotationDivide op)
           
 java.lang.Object visitAnnotationEquals(AnnotationEquals annotationEquals)
           
 java.lang.Object visitAnnotationExclusiveOr(AnnotationExclusiveOr annotationExclusiveOr)
           
 java.lang.Object visitAnnotationFieldRef(AnnotationFieldRef fieldRef)
           
 java.lang.Object visitAnnotationGreaterEquals(AnnotationGreaterEquals greaterEquals)
           
 java.lang.Object visitAnnotationGreaterThan(AnnotationGreaterThan op)
           
 java.lang.Object visitAnnotationLessEquals(AnnotationLessEquals lessEquals)
           
 java.lang.Object visitAnnotationLessThan(AnnotationLessThan op)
           
 java.lang.Object visitAnnotationLogicalAnd(AnnotationLogicalAnd and)
           
 java.lang.Object visitAnnotationLogicalNot(AnnotationLogicalNot not)
           
 java.lang.Object visitAnnotationLogicalOr(AnnotationLogicalOr or)
           
 java.lang.Object visitAnnotationMinusSign(AnnotationMinusSign sign)
           
 java.lang.Object visitAnnotationMultiply(AnnotationMultiply op)
           
 java.lang.Object visitAnnotationNot(AnnotationNot not)
           
 java.lang.Object visitAnnotationNotEquals(AnnotationNotEquals annotationNotEquals)
           
 java.lang.Object visitAnnotationOr(AnnotationOr or)
           
 java.lang.Object visitAnnotationParenExpression(AnnotationParenExpression parenExpression)
           
 java.lang.Object visitAnnotationPlusSign(AnnotationPlusSign sign)
           
 java.lang.Object visitAnnotationQuery(AnnotationQuery annotationQuery)
           
 java.lang.Object visitAnnotationRemainder(AnnotationRemainder remainder)
           
 java.lang.Object visitAnnotationShiftLeft(AnnotationShiftLeft shiftLeft)
           
 java.lang.Object visitAnnotationShiftRight(AnnotationShiftRight shiftRight)
           
 java.lang.Object visitAnnotationSubtract(AnnotationSubtract op)
           
 java.lang.Object visitAnnotationTypeRef(AnnotationTypeRef typeRef)
           
 java.lang.Object visitAnnotationUnsignedShiftRight(AnnotationUnsignedShiftRight shiftRight)
           
 java.lang.Object visitAnnotationValueList(AnnotationValueList valueList)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

EvaluatingVisitor

public EvaluatingVisitor()
Method Detail

getValue

public java.lang.Object getValue(Annotation annotation,
                                 java.lang.String property)

getListValue

public java.util.List getListValue(Annotation 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 operator

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

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 operator

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

See Also:
section 5.6.1

unaryNumericResultType

protected static java.lang.Class unaryNumericResultType(java.lang.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 java.lang.Class unaryResultType(java.lang.Object value)

visitAnnotation

public java.lang.Object visitAnnotation(Annotation annotation)
Specified by:
visitAnnotation in interface AnnotationVisitor

visitAnnotationAdd

public java.lang.Object visitAnnotationAdd(AnnotationAdd op)
Specified by:
visitAnnotationAdd in interface AnnotationVisitor

visitAnnotationConstant

public java.lang.Object visitAnnotationConstant(AnnotationConstant constant)
Specified by:
visitAnnotationConstant in interface AnnotationVisitor

visitAnnotationDivide

public java.lang.Object visitAnnotationDivide(AnnotationDivide op)
Specified by:
visitAnnotationDivide in interface AnnotationVisitor

visitAnnotationFieldRef

public java.lang.Object visitAnnotationFieldRef(AnnotationFieldRef fieldRef)
Specified by:
visitAnnotationFieldRef in interface AnnotationVisitor

getFieldReferenceValue

protected abstract java.lang.Object getFieldReferenceValue(JavaField javaField)

visitAnnotationGreaterThan

public java.lang.Object visitAnnotationGreaterThan(AnnotationGreaterThan op)
Specified by:
visitAnnotationGreaterThan in interface AnnotationVisitor

visitAnnotationLessThan

public java.lang.Object visitAnnotationLessThan(AnnotationLessThan op)
Specified by:
visitAnnotationLessThan in interface AnnotationVisitor

visitAnnotationMultiply

public java.lang.Object visitAnnotationMultiply(AnnotationMultiply op)
Specified by:
visitAnnotationMultiply in interface AnnotationVisitor

visitAnnotationParenExpression

public java.lang.Object visitAnnotationParenExpression(AnnotationParenExpression parenExpression)
Specified by:
visitAnnotationParenExpression in interface AnnotationVisitor

visitAnnotationSubtract

public java.lang.Object visitAnnotationSubtract(AnnotationSubtract op)
Specified by:
visitAnnotationSubtract in interface AnnotationVisitor

visitAnnotationTypeRef

public java.lang.Object visitAnnotationTypeRef(AnnotationTypeRef typeRef)
Specified by:
visitAnnotationTypeRef in interface AnnotationVisitor

visitAnnotationValueList

public java.lang.Object visitAnnotationValueList(AnnotationValueList valueList)
Specified by:
visitAnnotationValueList in interface AnnotationVisitor

visitAnnotationAnd

public java.lang.Object visitAnnotationAnd(AnnotationAnd and)
Specified by:
visitAnnotationAnd in interface AnnotationVisitor

visitAnnotationGreaterEquals

public java.lang.Object visitAnnotationGreaterEquals(AnnotationGreaterEquals greaterEquals)
Specified by:
visitAnnotationGreaterEquals in interface AnnotationVisitor

visitAnnotationLessEquals

public java.lang.Object visitAnnotationLessEquals(AnnotationLessEquals lessEquals)
Specified by:
visitAnnotationLessEquals in interface AnnotationVisitor

visitAnnotationLogicalAnd

public java.lang.Object visitAnnotationLogicalAnd(AnnotationLogicalAnd and)
Specified by:
visitAnnotationLogicalAnd in interface AnnotationVisitor

visitAnnotationLogicalNot

public java.lang.Object visitAnnotationLogicalNot(AnnotationLogicalNot not)
Specified by:
visitAnnotationLogicalNot in interface AnnotationVisitor

visitAnnotationLogicalOr

public java.lang.Object visitAnnotationLogicalOr(AnnotationLogicalOr or)
Specified by:
visitAnnotationLogicalOr in interface AnnotationVisitor

visitAnnotationMinusSign

public java.lang.Object visitAnnotationMinusSign(AnnotationMinusSign sign)
Specified by:
visitAnnotationMinusSign in interface AnnotationVisitor

visitAnnotationNot

public java.lang.Object visitAnnotationNot(AnnotationNot not)
Specified by:
visitAnnotationNot in interface AnnotationVisitor

visitAnnotationOr

public java.lang.Object visitAnnotationOr(AnnotationOr or)
Specified by:
visitAnnotationOr in interface AnnotationVisitor

visitAnnotationPlusSign

public java.lang.Object visitAnnotationPlusSign(AnnotationPlusSign sign)
Specified by:
visitAnnotationPlusSign in interface AnnotationVisitor

visitAnnotationRemainder

public java.lang.Object visitAnnotationRemainder(AnnotationRemainder remainder)
Specified by:
visitAnnotationRemainder in interface AnnotationVisitor

visitAnnotationShiftLeft

public java.lang.Object visitAnnotationShiftLeft(AnnotationShiftLeft shiftLeft)
Specified by:
visitAnnotationShiftLeft in interface AnnotationVisitor

visitAnnotationShiftRight

public java.lang.Object visitAnnotationShiftRight(AnnotationShiftRight shiftRight)
Specified by:
visitAnnotationShiftRight in interface AnnotationVisitor

visitAnnotationUnsignedShiftRight

public java.lang.Object visitAnnotationUnsignedShiftRight(AnnotationUnsignedShiftRight shiftRight)
Specified by:
visitAnnotationUnsignedShiftRight in interface AnnotationVisitor

visitAnnotationEquals

public java.lang.Object visitAnnotationEquals(AnnotationEquals annotationEquals)
Specified by:
visitAnnotationEquals in interface AnnotationVisitor

visitAnnotationExclusiveOr

public java.lang.Object visitAnnotationExclusiveOr(AnnotationExclusiveOr annotationExclusiveOr)
Specified by:
visitAnnotationExclusiveOr in interface AnnotationVisitor

visitAnnotationNotEquals

public java.lang.Object visitAnnotationNotEquals(AnnotationNotEquals annotationNotEquals)
Specified by:
visitAnnotationNotEquals in interface AnnotationVisitor

visitAnnotationQuery

public java.lang.Object visitAnnotationQuery(AnnotationQuery annotationQuery)
Specified by:
visitAnnotationQuery in interface AnnotationVisitor

visitAnnotationCast

public java.lang.Object visitAnnotationCast(AnnotationCast annotationCast)
Specified by:
visitAnnotationCast in interface AnnotationVisitor


Copyright © 2002-2009. All Rights Reserved.