javax.lang.model.element

Interface AnnotationValueVisitor<R,P>

public interface AnnotationValueVisitor<R,P>

A visitor for annotation values. Unlike other visitors, such as ElementVisitor and TypeVisitor, which work on a concrete type hierarchy, this visitor dispatches based on the type of data stored in the annotation, some of which don't have distinct subclasses for storing them (e.g. primitives like boolean and int.

The visitor is used when the specific type is not known at compile time. A visitor instance is passed to the AnnotationValue.accept(AnnotationValueVisitor,P) method of the type, which then calls the specific visitN method appropriate to that specific type.

The additional parameter supplied to visitor methods may or may not be optional, and so the class is free to throw a NullPointerException if null is passed as the additional parameter.

As this interface may be extended to accomodate future language versions, implementators are encouraged to extend one of the appropriate abstract classes rather than implementating this interface. However, this interface should be used as the type for parameters and return values.

Since:
1.6

Method Summary

R
visit(AnnotationValue value)
A convenience method for use when there is no additional parameter to pass.
R
visit(AnnotationValue value, P param)
Visits a value.
R
visitAnnotation(AnnotationMirror value, P param)
Visits an annotation value.
R
visitArray(AnnotationValue> value, P param)
Visits an array value.
R
visitBoolean(boolean value, P param)
Visits a boolean value.
R
visitByte(byte value, P param)
Visits a byte value.
R
visitChar(char value, P param)
Visits a character value.
R
visitDouble(double value, P param)
Visits a double value.
R
visitEnumConstant(VariableElement value, P param)
Visits an enum value.
R
visitFloat(float value, P param)
Visits a float value.
R
visitInt(int value, P param)
Visits an int value.
R
visitLong(long value, P param)
Visits a long value.
R
visitShort(short value, P param)
Visits a short value.
R
visitString(String value, P param)
Visits a String value.
R
visitType(TypeMirror value, P param)
Visits a type value.
R
visitUnknown(AnnotationValue value, P param)
Visits an unknown type of value.

Method Details

visit

public R visit(AnnotationValue value)
A convenience method for use when there is no additional parameter to pass. This is equivalent to #visit(value, null).
Parameters:
value - the value to visit.
Returns:
the return value specific to the visitor.

visit

public R visit(AnnotationValue value,
               P param)
Visits a value.
Parameters:
value - the value to visit.
param - the additional parameter, specific to the visitor. May be null if permitted by the visitor.

visitAnnotation

public R visitAnnotation(AnnotationMirror value,
                         P param)
Visits an annotation value.
Parameters:
value - the value to visit.
param - the additional parameter, specific to the visitor. May be null if permitted by the visitor.

visitArray

public R visitArray(AnnotationValue> value,
                    P param)
Visits an array value.
Parameters:
value - the value to visit.
param - the additional parameter, specific to the visitor. May be null if permitted by the visitor.

visitBoolean

public R visitBoolean(boolean value,
                      P param)
Visits a boolean value.
Parameters:
value - the value to visit.
param - the additional parameter, specific to the visitor. May be null if permitted by the visitor.

visitByte

public R visitByte(byte value,
                   P param)
Visits a byte value.
Parameters:
value - the value to visit.
param - the additional parameter, specific to the visitor. May be null if permitted by the visitor.

visitChar

public R visitChar(char value,
                   P param)
Visits a character value.
Parameters:
value - the value to visit.
param - the additional parameter, specific to the visitor. May be null if permitted by the visitor.

visitDouble

public R visitDouble(double value,
                     P param)
Visits a double value.
Parameters:
value - the value to visit.
param - the additional parameter, specific to the visitor. May be null if permitted by the visitor.

visitEnumConstant

public R visitEnumConstant(VariableElement value,
                           P param)
Visits an enum value.
Parameters:
value - the value to visit.
param - the additional parameter, specific to the visitor. May be null if permitted by the visitor.

visitFloat

public R visitFloat(float value,
                    P param)
Visits a float value.
Parameters:
value - the value to visit.
param - the additional parameter, specific to the visitor. May be null if permitted by the visitor.

visitInt

public R visitInt(int value,
                  P param)
Visits an int value.
Parameters:
value - the value to visit.
param - the additional parameter, specific to the visitor. May be null if permitted by the visitor.

visitLong

public R visitLong(long value,
                   P param)
Visits a long value.
Parameters:
value - the value to visit.
param - the additional parameter, specific to the visitor. May be null if permitted by the visitor.

visitShort

public R visitShort(short value,
                    P param)
Visits a short value.
Parameters:
value - the value to visit.
param - the additional parameter, specific to the visitor. May be null if permitted by the visitor.

visitString

public R visitString(String value,
                     P param)
Visits a String value.
Parameters:
value - the value to visit.
param - the additional parameter, specific to the visitor. May be null if permitted by the visitor.

visitType

public R visitType(TypeMirror value,
                   P param)
Visits a type value.
Parameters:
value - the value to visit.
param - the additional parameter, specific to the visitor. May be null if permitted by the visitor.

visitUnknown

public R visitUnknown(AnnotationValue value,
                      P param)
Visits an unknown type of value. This method is called if a new type is added to the hierarchy which isn't yet handled by the visitor.
Parameters:
value - the value to visit.
param - the additional parameter, specific to the visitor. May be null if permitted by the visitor.
Returns:
the return value specific to the visitor.
Throws:
UnknownAnnotationValueException - if the implementation chooses to.

AnnotationValueVisitor.java -- A visitor of annotation values. Copyright (C) 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GNU Classpath is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Classpath; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination. As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.