# Class ElementKindVisitor6<R,P>

java.lang.Object
javax.lang.model.util.AbstractElementVisitor6<R,P>
javax.lang.model.util.SimpleElementVisitor6<R,P>
javax.lang.model.util.ElementKindVisitor6<R,P>

Type Parameters:
  `R` - the return type of this visitor's methods. Use `Void` for visitors that do not need to return results.
  `P` - the type of the additional parameter to this visitor's methods. Use `Void` for visitors that do not need an additional parameter.

All Implemented Interfaces:
  `ElementVisitor<R,P>`

Direct Known Subclasses:
  `ElementKindVisitor7`

@SupportedSourceVersion(RELEASE_6) public class ElementKindVisitor6<R,P> extends SimpleElementVisitor6<R,P>
A visitor of program elements based on their kind with default behavior appropriate for the `RELEASE_6` source version. For elements `Xyz` that may have more than one kind, the `visitXyz` methods in this class delegate to the `visitXyzAsKind` method corresponding to the first argument's kind. The `visitXyzAsKind` methods call `defaultAction`, passing their arguments to `defaultAction`'s corresponding parameters.

API Note:
  Methods in this class may be overridden subject to their general contract.

  WARNING: The `ElementVisitor` interface implemented by this class may have methods added to it or the `ElementKind enum` used in this class may have constants added to it in the future to accommodate new, currently unknown, language structures added to future versions of the Java programming language. Therefore, methods whose names begin with `"visit"` may be added to this class in the future; to avoid incompatibilities, classes and subclasses which extend this class should not declare any instance methods with names beginning with `"visit"`.

  When such a new visit method is added, the default implementation in this class will be to directly or indirectly call the `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 a new visitor is introduced, portions of this visitor class may be deprecated, including its constructors.

Since:
  1.6
See Also:
  - `ElementKindVisitor7`
  - `ElementKindVisitor8`
  - `ElementKindVisitor9`
  - `ElementKindVisitor14`

- ## Field Summary

  ### Fields declared in class SimpleElementVisitor6

  `DEFAULT_VALUE`
  Modifier and Type
  Field
  Description
  `protected final R`
  `DEFAULT_VALUE`
  Default value to be returned; `defaultAction` returns this value unless the method is overridden.

- ## Constructor Summary

  Constructors
  Modifier
  Constructor
  Description
  `protected`
  `ElementKindVisitor6()`
  Deprecated.
  Release 6 is obsolete; update to a visitor for a newer release level.
  `protected`
  `ElementKindVisitor6(R defaultValue)`
  Deprecated.
  Release 6 is obsolete; update to a visitor for a newer release level.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `R`
  `visitExecutable(ExecutableElement e, P p)`
  Visits an executable element.
  `R`
  `visitExecutableAsConstructor(ExecutableElement e, P p)`
  Visits a `CONSTRUCTOR` executable element.
  `R`
  `visitExecutableAsInstanceInit(ExecutableElement e, P p)`
  Visits an `INSTANCE_INIT` executable element.
  `R`
  `visitExecutableAsMethod(ExecutableElement e, P p)`
  Visits a `METHOD` executable element.
  `R`
  `visitExecutableAsStaticInit(ExecutableElement e, P p)`
  Visits a `STATIC_INIT` executable element.
  `R`
  `visitPackage(PackageElement e, P p)`
  Visits a package element.
  `R`
  `visitType(TypeElement e, P p)`
  Visits a type element.
  `R`
  `visitTypeAsAnnotationType(TypeElement e, P p)`
  Visits an `ANNOTATION_TYPE` type element.
  `R`
  `visitTypeAsClass(TypeElement e, P p)`
  Visits a `CLASS` type element.
  `R`
  `visitTypeAsEnum(TypeElement e, P p)`
  Visits an `ENUM` type element.
  `R`
  `visitTypeAsInterface(TypeElement e, P p)`
  Visits an `INTERFACE` type element.
  `R`
  `visitTypeAsRecord(TypeElement e, P p)`
  Visits a `RECORD` type element.
  `R`
  `visitTypeParameter(TypeParameterElement e, P p)`
  Visits a type parameter element.
  `R`
  `visitVariable(VariableElement e, P p)`
  Visits a variable element.
  `R`
  `visitVariableAsBindingVariable(VariableElement e, P p)`
  Visits a `BINDING_VARIABLE` variable element.
  `R`
  `visitVariableAsEnumConstant(VariableElement e, P p)`
  Visits an `ENUM_CONSTANT` variable element.
  `R`
  `visitVariableAsExceptionParameter(VariableElement e, P p)`
  Visits an `EXCEPTION_PARAMETER` variable element.
  `R`
  `visitVariableAsField(VariableElement e, P p)`
  Visits a `FIELD` variable element.
  `R`
  `visitVariableAsLocalVariable(VariableElement e, P p)`
  Visits a `LOCAL_VARIABLE` variable element.
  `R`
  `visitVariableAsParameter(VariableElement e, P p)`
  Visits a `PARAMETER` variable element.
  `R`
  `visitVariableAsResourceVariable(VariableElement e, P p)`
  Visits a `RESOURCE_VARIABLE` variable element.

  ### Methods declared in class SimpleElementVisitor6

  `defaultAction`
  Modifier and Type
  Method
  Description
  `protected R`
  `defaultAction(Element e, P p)`
  The default action for visit methods.

  ### Methods declared in class AbstractElementVisitor6

  `visit, visit, visitModule, visitRecordComponent, visitUnknown`
  Modifier and Type
  Method
  Description
  `final R`
  `visit(Element e)`
  Visits any program element as if by passing itself to that element's `accept` method and passing `null` for the additional parameter.
  `final R`
  `visit(Element e, P p)`
  Visits any program element as if by passing itself to that element's `accept` method.
  `R`
  `visitModule(ModuleElement e, P p)`
  Visits a module element.
  `R`
  `visitRecordComponent(RecordComponentElement e, P p)`
  Visits a record component element.
  `R`
  `visitUnknown(Element e, P p)`
  Visits an unknown kind of element.

  ### Methods declared in class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
  Modifier and Type
  Method
  Description
  `protected Object`
  `clone()`
  Creates and returns a copy of this object.
  `boolean`
  `equals(Object obj)`
  Indicates whether some other object is "equal to" this one.
  `protected void`
  `finalize()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Finalization is deprecated and subject to removal in a future release.
  `final Class<?>`
  `getClass()`
  Returns the runtime class of this `Object`.
  `int`
  `hashCode()`
  Returns a hash code value for this object.
  `final void`
  `notify()`
  Wakes up a single thread that is waiting on this object's monitor.
  `final void`
  `notifyAll()`
  Wakes up all threads that are waiting on this object's monitor.
  `String`
  `toString()`
  Returns a string representation of the object.
  `final void`
  `wait()`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
  `final void`
  `wait(long timeoutMillis)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
  `final void`
  `wait(long timeoutMillis, int nanos)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

- ## Constructor Details

  - ### ElementKindVisitor6

    @Deprecated(since="9") protected ElementKindVisitor6()
    Deprecated.
    Release 6 is obsolete; update to a visitor for a newer release level.
    Constructor for concrete subclasses; uses `null` for the default value.

  - ### ElementKindVisitor6

    @Deprecated(since="9") protected ElementKindVisitor6(R defaultValue)
    Deprecated.
    Release 6 is obsolete; update to a visitor for a newer release level.
    Constructor for concrete subclasses; uses the argument for the default value.
    Parameters:
      `defaultValue` - the value to assign to `SimpleElementVisitor6.DEFAULT_VALUE`

- ## Method Details

  - ### visitPackage

    public R visitPackage(PackageElement e, P p)
    Visits a package element. The element argument has kind `PACKAGE`.
    Specified by:
      `visitPackage` in interface `ElementVisitor<R,P>`
    Overrides:
      `visitPackage` in class `SimpleElementVisitor6<R,P>`
    Implementation Requirements:
      This implementation calls `defaultAction`.
    Parameters:
      `e` - the element to visit
      `p` - a visitor-specified parameter
    Returns:
      a visitor-specified result

  - ### visitType

    public R visitType(TypeElement e, P p)
    Visits a type element.
    Specified by:
      `visitType` in interface `ElementVisitor<R,P>`
    Overrides:
      `visitType` in class `SimpleElementVisitor6<R,P>`
    Implementation Requirements:
      This implementation dispatches to the visit method for the specific kind of type, `ANNOTATION_TYPE`, `CLASS`, `ENUM`, or `INTERFACE`.
    Parameters:
      `e` - the element to visit
      `p` - a visitor-specified parameter
    Returns:
      the result of the kind-specific visit method

  - ### visitTypeAsAnnotationType

    public R visitTypeAsAnnotationType(TypeElement e, P p)
    Visits an `ANNOTATION_TYPE` type element.
    Implementation Requirements:
      This implementation calls `defaultAction`.
    Parameters:
      `e` - the element to visit
      `p` - a visitor-specified parameter
    Returns:
      the result of `defaultAction`

  - ### visitTypeAsClass

    public R visitTypeAsClass(TypeElement e, P p)
    Visits a `CLASS` type element.
    Implementation Requirements:
      This implementation calls `defaultAction`.
    Parameters:
      `e` - the element to visit
      `p` - a visitor-specified parameter
    Returns:
      the result of `defaultAction`

  - ### visitTypeAsEnum

    public R visitTypeAsEnum(TypeElement e, P p)
    Visits an `ENUM` type element.
    Implementation Requirements:
      This implementation calls `defaultAction`.
    Parameters:
      `e` - the element to visit
      `p` - a visitor-specified parameter
    Returns:
      the result of `defaultAction`

  - ### visitTypeAsInterface

    public R visitTypeAsInterface(TypeElement e, P p)
    Visits an `INTERFACE` type element.
    Implementation Requirements:
      This implementation calls `defaultAction`. .
    Parameters:
      `e` - the element to visit
      `p` - a visitor-specified parameter
    Returns:
      the result of `defaultAction`

  - ### visitTypeAsRecord

    public R visitTypeAsRecord(TypeElement e, P p)
    Visits a `RECORD` type element.
    Implementation Requirements:
      This implementation calls `visitUnknown`. .
    Parameters:
      `e` - the element to visit
      `p` - a visitor-specified parameter
    Returns:
      the result of `visitUnknown`
    Since:
      16

  - ### visitVariable

    public R visitVariable(VariableElement e, P p)
    Visits a variable element.
    Specified by:
      `visitVariable` in interface `ElementVisitor<R,P>`
    Overrides:
      `visitVariable` in class `SimpleElementVisitor6<R,P>`
    Implementation Requirements:
      This implementation dispatches to the visit method for the specific kind of variable, `ENUM_CONSTANT`, `EXCEPTION_PARAMETER`, `FIELD`, `LOCAL_VARIABLE`, `PARAMETER`, or `RESOURCE_VARIABLE`.
    Parameters:
      `e` - the element to visit
      `p` - a visitor-specified parameter
    Returns:
      the result of the kind-specific visit method

  - ### visitVariableAsEnumConstant

    public R visitVariableAsEnumConstant(VariableElement e, P p)
    Visits an `ENUM_CONSTANT` variable element.
    Implementation Requirements:
      This implementation calls `defaultAction`. .
    Parameters:
      `e` - the element to visit
      `p` - a visitor-specified parameter
    Returns:
      the result of `defaultAction`

  - ### visitVariableAsExceptionParameter

    public R visitVariableAsExceptionParameter(VariableElement e, P p)
    Visits an `EXCEPTION_PARAMETER` variable element.
    Implementation Requirements:
      This implementation calls `defaultAction`. .
    Parameters:
      `e` - the element to visit
      `p` - a visitor-specified parameter
    Returns:
      the result of `defaultAction`

  - ### visitVariableAsField

    public R visitVariableAsField(VariableElement e, P p)
    Visits a `FIELD` variable element.
    Implementation Requirements:
      This implementation calls `defaultAction`. .
    Parameters:
      `e` - the element to visit
      `p` - a visitor-specified parameter
    Returns:
      the result of `defaultAction`

  - ### visitVariableAsLocalVariable

    public R visitVariableAsLocalVariable(VariableElement e, P p)
    Visits a `LOCAL_VARIABLE` variable element.
    Implementation Requirements:
      This implementation calls `defaultAction`.
    Parameters:
      `e` - the element to visit
      `p` - a visitor-specified parameter
    Returns:
      the result of `defaultAction`

  - ### visitVariableAsParameter

    public R visitVariableAsParameter(VariableElement e, P p)
    Visits a `PARAMETER` variable element.
    Implementation Requirements:
      This implementation calls `defaultAction`.
    Parameters:
      `e` - the element to visit
      `p` - a visitor-specified parameter
    Returns:
      the result of `defaultAction`

  - ### visitVariableAsResourceVariable

    public R visitVariableAsResourceVariable(VariableElement e, P p)
    Visits a `RESOURCE_VARIABLE` variable element.
    Implementation Requirements:
      This implementation calls `visitUnknown`.
    Parameters:
      `e` - the element to visit
      `p` - a visitor-specified parameter
    Returns:
      the result of `visitUnknown`
    Since:
      1.7

  - ### visitVariableAsBindingVariable

    public R visitVariableAsBindingVariable(VariableElement e, P p)
    Visits a `BINDING_VARIABLE` variable element.
    Implementation Requirements:
      This implementation calls `visitUnknown`.
    Parameters:
      `e` - the element to visit
      `p` - a visitor-specified parameter
    Returns:
      the result of `visitUnknown`
    Since:
      14

  - ### visitExecutable

    public R visitExecutable(ExecutableElement e, P p)
    Visits an executable element.
    Specified by:
      `visitExecutable` in interface `ElementVisitor<R,P>`
    Overrides:
      `visitExecutable` in class `SimpleElementVisitor6<R,P>`
    Implementation Requirements:
      This implementation dispatches to the visit method for the specific kind of executable, `CONSTRUCTOR`, `INSTANCE_INIT`, `METHOD`, or `STATIC_INIT`.
    Parameters:
      `e` - the element to visit
      `p` - a visitor-specified parameter
    Returns:
      the result of the kind-specific visit method

  - ### visitExecutableAsConstructor

    public R visitExecutableAsConstructor(ExecutableElement e, P p)
    Visits a `CONSTRUCTOR` executable element.
    Implementation Requirements:
      This implementation calls `defaultAction`.
    Parameters:
      `e` - the element to visit
      `p` - a visitor-specified parameter
    Returns:
      the result of `defaultAction`

  - ### visitExecutableAsInstanceInit

    public R visitExecutableAsInstanceInit(ExecutableElement e, P p)
    Visits an `INSTANCE_INIT` executable element.
    Implementation Requirements:
      This implementation calls `defaultAction`.
    Parameters:
      `e` - the element to visit
      `p` - a visitor-specified parameter
    Returns:
      the result of `defaultAction`

  - ### visitExecutableAsMethod

    public R visitExecutableAsMethod(ExecutableElement e, P p)
    Visits a `METHOD` executable element.
    Implementation Requirements:
      This implementation calls `defaultAction`.
    Parameters:
      `e` - the element to visit
      `p` - a visitor-specified parameter
    Returns:
      the result of `defaultAction`

  - ### visitExecutableAsStaticInit

    public R visitExecutableAsStaticInit(ExecutableElement e, P p)
    Visits a `STATIC_INIT` executable element.
    Implementation Requirements:
      This implementation calls `defaultAction`.
    Parameters:
      `e` - the element to visit
      `p` - a visitor-specified parameter
    Returns:
      the result of `defaultAction`

  - ### visitTypeParameter

    public R visitTypeParameter(TypeParameterElement e, P p)
    Visits a type parameter element. The element argument has kind `TYPE_PARAMETER`.
    Specified by:
      `visitTypeParameter` in interface `ElementVisitor<R,P>`
    Overrides:
      `visitTypeParameter` in class `SimpleElementVisitor6<R,P>`
    Implementation Requirements:
      This implementation calls `defaultAction`.
    Parameters:
      `e` - the element to visit
      `p` - a visitor-specified parameter
    Returns:
      a visitor-specified result