Module java.compiler
Package javax.lang.model.util

# 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 javax.lang.model.util.SimpleElementVisitor6

  `DEFAULT_VALUE`

- ## 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 javax.lang.model.util.SimpleElementVisitor6

  `defaultAction`

  ### Methods declared in class javax.lang.model.util.AbstractElementVisitor6

  `visit, visit, visitModule, visitRecordComponent, visitUnknown`

  ### Methods declared in class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## 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