⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 elementkindvisitor6.java

📁 Mobile 应用程序使用 Java Micro Edition (Java ME) 平台
💻 JAVA
字号:
/* * @(#)ElementKindVisitor6.java	1.5 06/08/07 * * Copyright 2006 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */package javax.lang.model.util;import javax.lang.model.element.*;import static javax.lang.model.element.ElementKind.*;import javax.annotation.processing.SupportedSourceVersion;import static javax.lang.model.SourceVersion.*;import javax.lang.model.SourceVersion;/** * A visitor of program elements based on their {@linkplain * ElementKind kind} with default behavior appropriate for the {@link * SourceVersion#RELEASE_6 RELEASE_6} source version.  For {@linkplain * Element elements} <tt><i>XYZ</i></tt> that may have more than one * kind, the <tt>visit<i>XYZ</i></tt> methods in this class delegate * to the <tt>visit<i>XYZKind</i></tt> method corresponding to the * first argument's kind.  The <tt>visit<i>XYZKind</i></tt> methods * call {@link #defaultAction defaultAction}, passing their arguments * to {@code defaultAction}'s corresponding parameters. * * <p> Methods in this class may be overridden subject to their * general contract.  Note that annotating methods in concrete * subclasses with {@link java.lang.Override @Override} will help * ensure that methods are overridden as intended. *  * <p> <b>WARNING:</b> The {@code ElementVisitor} interface * implemented by this class may have methods added to it or the * {@code ElementKind} {@code enum} used in this case may have * constants added to it in the future to accommodate new, currently * unknown, language structures added to future versions of the * Java&trade; programming language.  Therefore, methods whose names * begin with {@code "visit"} may be added to this class in the * future; to avoid incompatibilities, classes which extend this class * should not declare any instance methods with names beginning with * {@code "visit"}. *  * <p>When such a new visit method is added, the default * implementation in this class will be to call the {@link * #visitUnknown visitUnknown} method.  A new abstract element kind * visitor class will also be introduced to correspond to the new * language level; this visitor will have different default behavior * for the visit method in question.  When the new visitor is * introduced, all or portions of this visitor may be deprecated. * * @param <R> the return type of this visitor's methods.  Use {@link * 	      Void} for visitors that do not need to return results. * @param <P> the type of the additional parameter to this visitor's *            methods.  Use {@code Void} for visitors that do not need an *            additional parameter. * * @author Joseph D. Darcy * @author Scott Seligman * @author Peter von der Ah&eacute; * @version 1.5 06/08/07 * @since 1.6 */@SupportedSourceVersion(RELEASE_6)public class ElementKindVisitor6<R, P>                   extends SimpleElementVisitor6<R, P> {    /**     * Constructor for concrete subclasses; uses {@code null} for the     * default value.     */    protected ElementKindVisitor6() {	super(null);    }    /**     * Constructor for concrete subclasses; uses the argument for the     * default value.     *     * @param defaultValue the value to assign to {@link #DEFAULT_VALUE}     */    protected ElementKindVisitor6(R defaultValue) {	super(defaultValue);    }    /**     * {@inheritDoc}     *     * The element argument has kind {@code PACKAGE}.     *     * @param e {@inheritDoc}     * @param p {@inheritDoc}     * @return  {@inheritDoc}     */    @Override    public R visitPackage(PackageElement e, P p) {	assert e.getKind() == PACKAGE: "Bad kind on PackageElement";	return defaultAction(e, p);    }    /**     * Visits a type element, dispatching to the visit method for the     * specific {@linkplain ElementKind kind} of type, {@code     * ANNOTATION_TYPE}, {@code CLASS}, {@code ENUM}, or {@code     * INTERFACE}.     *     * @param e {@inheritDoc}     * @param p {@inheritDoc}     * @return  the result of the kind-specific visit method     */    @Override    public R visitType(TypeElement e, P p) {	ElementKind k = e.getKind();	switch(k) {	case ANNOTATION_TYPE:	    return visitTypeAsAnnotationType(e, p);	case CLASS:	    return visitTypeAsClass(e, p);	case ENUM:	    return visitTypeAsEnum(e, p);	    	case INTERFACE:	    return visitTypeAsInterface(e, p);	    	default:	    throw new AssertionError("Bad kind " + k + " for TypeElement" + e);	}    }    /**     * Visits an {@code ANNOTATION_TYPE} type element by calling     * {@code defaultAction}.     *     * @param e the element to visit     * @param p a visitor-specified parameter     * @return  the result of {@code defaultAction}     */    public R visitTypeAsAnnotationType(TypeElement e, P p) { 	return defaultAction(e, p);    }    /**     * Visits a {@code CLASS} type element by calling {@code     * defaultAction}.     *     * @param e the element to visit     * @param p a visitor-specified parameter     * @return  the result of {@code defaultAction}     */    public R visitTypeAsClass(TypeElement e, P p) { 	return defaultAction(e, p);    }    /**     * Visits an {@code ENUM} type element by calling {@code     * defaultAction}.     *     * @param e the element to visit     * @param p a visitor-specified parameter     * @return  the result of {@code defaultAction}     */    public R visitTypeAsEnum(TypeElement e, P p) { 	return defaultAction(e, p);    }    /**     * Visits an {@code INTERFACE} type element by calling {@code     * defaultAction}.     *.     * @param e the element to visit     * @param p a visitor-specified parameter     * @return  the result of {@code defaultAction}     */    public R visitTypeAsInterface(TypeElement e, P p) { 	return defaultAction(e, p);    }    /**     * Visits a variable element, dispatching to the visit method for     * the specific {@linkplain ElementKind kind} of variable, {@code     * ENUM_CONSTANT}, {@code EXCEPTION_PARAMETER}, {@code FIELD},     * {@code LOCAL_VARIABLE}, or {@code PARAMETER}.     * @param e {@inheritDoc}     * @param p {@inheritDoc}     * @return  the result of the kind-specific visit method     */    @Override    public R visitVariable(VariableElement e, P p) {	ElementKind k = e.getKind();	switch(k) {	case ENUM_CONSTANT:	    return visitVariableAsEnumConstant(e, p);	case EXCEPTION_PARAMETER:	    return visitVariableAsExceptionParameter(e, p);	case FIELD:	    return visitVariableAsField(e, p);	case LOCAL_VARIABLE:	    return visitVariableAsLocalVariable(e, p);	case PARAMETER:	    return visitVariableAsParameter(e, p);	default:	    throw new AssertionError("Bad kind " + k + " for VariableElement" + e);	}    }    /**     * Visits an {@code ENUM_CONSTANT} variable element by calling     * {@code defaultAction}.     *     * @param e the element to visit     * @param p a visitor-specified parameter     * @return  the result of {@code defaultAction}     */    public R visitVariableAsEnumConstant(VariableElement e, P p) { 	return defaultAction(e, p);    }    /**     * Visits an {@code EXCEPTION_PARAMETER} variable element by calling     * {@code defaultAction}.     *     * @param e the element to visit     * @param p a visitor-specified parameter     * @return  the result of {@code defaultAction}     */    public R visitVariableAsExceptionParameter(VariableElement e, P p) { 	return defaultAction(e, p);    }    /**     * Visits a {@code FIELD} variable element by calling     * {@code defaultAction}.     *     * @param e the element to visit     * @param p a visitor-specified parameter     * @return  the result of {@code defaultAction}     */    public R visitVariableAsField(VariableElement e, P p) { 	return defaultAction(e, p);    }    /**     * Visits a {@code LOCAL_VARIABLE} variable element by calling     * {@code defaultAction}.     *     * @param e the element to visit     * @param p a visitor-specified parameter     * @return  the result of {@code defaultAction}     */    public R visitVariableAsLocalVariable(VariableElement e, P p) { 	return defaultAction(e, p);    }    /**     * Visits a {@code PARAMETER} variable element by calling     * {@code defaultAction}.     *     * @param e the element to visit     * @param p a visitor-specified parameter     * @return  the result of {@code defaultAction}     */    public R visitVariableAsParameter(VariableElement e, P p) { 	return defaultAction(e, p);    }    /**     * Visits an executable element, dispatching to the visit method     * for the specific {@linkplain ElementKind kind} of executable,     * {@code CONSTRUCTOR}, {@code INSTANCE_INIT}, {@code METHOD}, or     * {@code STATIC_INIT}.     *     * @param e {@inheritDoc}     * @param p {@inheritDoc}     * @return  the result of the kind-specific visit method     */    @Override    public R visitExecutable(ExecutableElement e, P p) {	ElementKind k = e.getKind();	switch(k) {	case CONSTRUCTOR:	    return visitExecutableAsConstructor(e, p);	case INSTANCE_INIT:	    return visitExecutableAsInstanceInit(e, p);	case METHOD:	    return visitExecutableAsMethod(e, p);	case STATIC_INIT:	    return visitExecutableAsStaticInit(e, p);	default:	    throw new AssertionError("Bad kind " + k + " for ExecutableElement" + e);	}    }    /**     * Visits a {@code CONSTRUCTOR} executable element by calling     * {@code defaultAction}.     *     * @param e the element to visit     * @param p a visitor-specified parameter     * @return  the result of {@code defaultAction}     */    public R visitExecutableAsConstructor(ExecutableElement e, P p) {	return defaultAction(e, p);    }    /**     * Visits an {@code INSTANCE_INIT} executable element by calling     * {@code defaultAction}.     *     * @param e the element to visit     * @param p a visitor-specified parameter     * @return  the result of {@code defaultAction}     */    public R visitExecutableAsInstanceInit(ExecutableElement e, P p) {	return defaultAction(e, p);    }    /**     * Visits a {@code METHOD} executable element by calling     * {@code defaultAction}.     *     * @param e the element to visit     * @param p a visitor-specified parameter     * @return  the result of {@code defaultAction}     */    public R visitExecutableAsMethod(ExecutableElement e, P p) {	return defaultAction(e, p);    }    /**     * Visits a {@code STATIC_INIT} executable element by calling     * {@code defaultAction}.     *     * @param e the element to visit     * @param p a visitor-specified parameter     * @return  the result of {@code defaultAction}     */    public R visitExecutableAsStaticInit(ExecutableElement e, P p) {	return defaultAction(e, p);    }    /**     * {@inheritDoc}     *     * The element argument has kind {@code TYPE_PARAMETER}.     *     * @param e {@inheritDoc}     * @param p {@inheritDoc}     * @return  {@inheritDoc}     */    @Override    public R visitTypeParameter(TypeParameterElement e, P p) {	assert e.getKind() == TYPE_PARAMETER: "Bad kind on TypeParameterElement";	return defaultAction(e, p);    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -