javax.lang.model.type

Interface TypeVisitor<R,P>

public interface TypeVisitor<R,P>

A visitor for types. This is used when the specific type is not known at compile time. A visitor instance is passed to the TypeMirror.accept(TypeVisitor,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(TypeMirror type)
A convenience method for use when there is no additional parameter to pass.
R
visit(TypeMirror type, P param)
Visits a type.
R
visitArray(ArrayType type, P param)
Visits an array type.
R
visitDeclared(DeclaredType type, P param)
Visits a declared type.
R
visitError(ErrorType type, P param)
Visits an error type.
R
visitExecutable(ExecutableType type, P param)
Visits an executable type.
R
visitNoType(NoType type, P param)
Visits a NoType instance.
R
visitNull(NullType type, P param)
Visits the null type.
R
visitPrimitive(PrimitiveType type, P param)
Visits a primitive type.
R
visitTypeVariable(TypeVariable type, P param)
Visits a type variable.
R
visitUnknown(TypeMirror type, P param)
Visits an unknown type.
R
visitWildcard(WildcardType type, P param)
Visits a wildcard type.

Method Details

visit

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

visit

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

visitArray

public R visitArray(ArrayType type,
                    P param)
Visits an array type.
Parameters:
type - the array type 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.

visitDeclared

public R visitDeclared(DeclaredType type,
                       P param)
Visits a declared type.
Parameters:
type - the type 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.

visitError

public R visitError(ErrorType type,
                    P param)
Visits an error type.
Parameters:
type - the error type 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.

visitExecutable

public R visitExecutable(ExecutableType type,
                         P param)
Visits an executable type.
Parameters:
type - the executable type 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.

visitNoType

public R visitNoType(NoType type,
                     P param)
Visits a NoType instance.
Parameters:
type - the instance 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.

visitNull

public R visitNull(NullType type,
                   P param)
Visits the null type.
Parameters:
type - the type 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.

visitPrimitive

public R visitPrimitive(PrimitiveType type,
                        P param)
Visits a primitive type.
Parameters:
type - the primitive type 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.

visitTypeVariable

public R visitTypeVariable(TypeVariable type,
                           P param)
Visits a type variable.
Parameters:
type - the type variable 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.

visitUnknown

public R visitUnknown(TypeMirror type,
                      P param)
Visits an unknown type. This method is called if a new type is added to the hierarchy which isn't yet handled by the visitor.
Parameters:
type - the type 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:
UnknownTypeException - if the implementation chooses to.

visitWildcard

public R visitWildcard(WildcardType type,
                       P param)
Visits a wildcard type.
Parameters:
type - the wildcard type 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.

TypeVisitor.java -- A visitor of types. 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.