# Class DescendingVisitor

java.lang.Object
org.apache.bcel.classfile.DescendingVisitor

All Implemented Interfaces:
  `Visitor`

public class DescendingVisitor extends Object implements Visitor
Traverses a JavaClass with another Visitor object 'piggy-backed' that is applied to all components of a JavaClass object. I.e. this class supplies the traversal strategy, other classes can make use of it.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `DescendingVisitor(JavaClass clazz, Visitor visitor)`
  Constructs a DescendingVisitor.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Object`
  `current()`
  Gets the current object.
  `Object`
  `predecessor()`
  Gets the container of current entity, that is, predecessor during traversal.
  `Object`
  `predecessor(int level)`
  Gets the container of current entity, that is, predecessor during traversal.
  `void`
  `visit()`
  Start traversal.
  `void`
  `visitAnnotation(Annotations annotation)`
  Visits an Annotations attribute.
  `void`
  `visitAnnotationDefault(AnnotationDefault obj)`
  Visits an AnnotationDefault attribute.
  `void`
  `visitAnnotationEntry(AnnotationEntry annotationEntry)`
  Visits an AnnotationEntry.
  `void`
  `visitBootstrapMethods(BootstrapMethods bm)`
  Visits a BootstrapMethods attribute.
  `void`
  `visitCode(Code code)`
  Visits a Code attribute.
  `void`
  `visitCodeException(CodeException ce)`
  Visits a CodeException.
  `void`
  `visitConstantClass(ConstantClass constant)`
  Visits a ConstantClass.
  `void`
  `visitConstantDouble(ConstantDouble constant)`
  Visits a ConstantDouble.
  `void`
  `visitConstantDynamic(ConstantDynamic obj)`
  Visits a ConstantDynamic.
  `void`
  `visitConstantFieldref(ConstantFieldref constant)`
  Visits a ConstantFieldref.
  `void`
  `visitConstantFloat(ConstantFloat constant)`
  Visits a ConstantFloat.
  `void`
  `visitConstantInteger(ConstantInteger constant)`
  Visits a ConstantInteger.
  `void`
  `visitConstantInterfaceMethodref(ConstantInterfaceMethodref constant)`
  Visits a ConstantInterfaceMethodref.
  `void`
  `visitConstantInvokeDynamic(ConstantInvokeDynamic constant)`
  Visits a ConstantInvokeDynamic.
  `void`
  `visitConstantLong(ConstantLong constant)`
  Visits a ConstantLong.
  `void`
  `visitConstantMethodHandle(ConstantMethodHandle obj)`
  Visits a ConstantMethodHandle.
  `void`
  `visitConstantMethodref(ConstantMethodref constant)`
  Visits a ConstantMethodref.
  `void`
  `visitConstantMethodType(ConstantMethodType obj)`
  Visits a ConstantMethodType.
  `void`
  `visitConstantModule(ConstantModule obj)`
  Visits a ConstantModule.
  `void`
  `visitConstantNameAndType(ConstantNameAndType constant)`
  Visits a ConstantNameAndType.
  `void`
  `visitConstantPackage(ConstantPackage obj)`
  Visits a ConstantPackage.
  `void`
  `visitConstantPool(ConstantPool cp)`
  Visits a ConstantPool.
  `void`
  `visitConstantString(ConstantString constant)`
  Visits a ConstantString.
  `void`
  `visitConstantUtf8(ConstantUtf8 constant)`
  Visits a ConstantUtf8.
  `void`
  `visitConstantValue(ConstantValue cv)`
  Visits a ConstantValue attribute.
  `void`
  `visitDeprecated(Deprecated attribute)`
  Visits a Deprecated attribute.
  `void`
  `visitEnclosingMethod(EnclosingMethod obj)`
  Visits an EnclosingMethod attribute.
  `void`
  `visitExceptionTable(ExceptionTable table)`
  Visits an ExceptionTable attribute.
  `void`
  `visitField(Field field)`
  Visits a Field.
  `void`
  `visitInnerClass(InnerClass inner)`
  Visits an InnerClass.
  `void`
  `visitInnerClasses(InnerClasses ic)`
  Visits an InnerClasses attribute.
  `void`
  `visitJavaClass(JavaClass clazz)`
  Visits a JavaClass.
  `void`
  `visitLineNumber(LineNumber number)`
  Visits a LineNumber.
  `void`
  `visitLineNumberTable(LineNumberTable table)`
  Visits a LineNumberTable attribute.
  `void`
  `visitLocalVariable(LocalVariable var)`
  Visits a LocalVariable.
  `void`
  `visitLocalVariableTable(LocalVariableTable table)`
  Visits a LocalVariableTable attribute.
  `void`
  `visitLocalVariableTypeTable(LocalVariableTypeTable obj)`
  Visits a LocalVariableTypeTable attribute.
  `void`
  `visitMethod(Method method)`
  Visits a Method.
  `void`
  `visitMethodParameter(MethodParameter obj)`
  Visits a MethodParameter.
  `void`
  `visitMethodParameters(MethodParameters obj)`
  Visits a MethodParameters attribute.
  `void`
  `visitModule(Module obj)`
  Visits a Module attribute.
  `void`
  `visitModuleExports(ModuleExports obj)`
  Visits a ModuleExports entry.
  `void`
  `visitModuleMainClass(ModuleMainClass obj)`
  Visits a ModuleMainClass attribute.
  `void`
  `visitModuleOpens(ModuleOpens obj)`
  Visits a ModuleOpens entry.
  `void`
  `visitModulePackages(ModulePackages obj)`
  Visits a ModulePackages attribute.
  `void`
  `visitModuleProvides(ModuleProvides obj)`
  Visits a ModuleProvides entry.
  `void`
  `visitModuleRequires(ModuleRequires obj)`
  Visits a ModuleRequires entry.
  `void`
  `visitNestHost(NestHost obj)`
  Visits a NestHost attribute.
  `void`
  `visitNestMembers(NestMembers obj)`
  Visits a NestMembers attribute.
  `void`
  `visitParameterAnnotation(ParameterAnnotations obj)`
  Visits a ParameterAnnotations attribute.
  `void`
  `visitParameterAnnotationEntry(ParameterAnnotationEntry obj)`
  Visits a ParameterAnnotationEntry.
  `void`
  `visitRecord(Record record)`
  Visits a `Record` object.
  `void`
  `visitRecordComponent(RecordComponentInfo recordComponentInfo)`
  Visits a `RecordComponentInfo` object.
  `void`
  `visitSignature(Signature attribute)`
  Visits a Signature attribute.
  `void`
  `visitSourceFile(SourceFile attribute)`
  Visits a SourceFile attribute.
  `void`
  `visitStackMap(StackMap table)`
  Visits a StackMap attribute.
  `void`
  `visitStackMapEntry(StackMapEntry var)`
  Visits a StackMapEntry.
  `void`
  `visitStackMapType(StackMapType var)`
  Visits a `StackMapType` object.
  `void`
  `visitSynthetic(Synthetic attribute)`
  Visits a Synthetic attribute.
  `void`
  `visitUnknown(Unknown attribute)`
  Visits an Unknown attribute.

  ### Methods inherited from class Object

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

- ## Constructor Details

  - ### DescendingVisitor

    public DescendingVisitor(JavaClass clazz, Visitor visitor)
    Constructs a DescendingVisitor.
    Parameters:
      `clazz` - Class to traverse.
      `visitor` - visitor object to apply to all components.

- ## Method Details

  - ### current

    public Object current()
    Gets the current object.
    Returns:
      current object.

  - ### predecessor

    public Object predecessor()
    Gets the container of current entity, that is, predecessor during traversal.
    Returns:
      container of current entity, that is, predecessor during traversal.

  - ### predecessor

    public Object predecessor(int level)
    Gets the container of current entity, that is, predecessor during traversal.
    Parameters:
      `level` - nesting level, that is, 0 returns the direct predecessor.
    Returns:
      container of current entity, that is, predecessor during traversal.

  - ### visit

    public void visit()
    Start traversal.

  - ### visitAnnotation

    public void visitAnnotation(Annotations annotation)
    Description copied from interface: `Visitor`
    Visits an Annotations attribute.
    Specified by:
      `visitAnnotation` in interface `Visitor`
    Parameters:
      `annotation` - the attribute.
    Since:
      6.0

  - ### visitAnnotationDefault

    public void visitAnnotationDefault(AnnotationDefault obj)
    Description copied from interface: `Visitor`
    Visits an AnnotationDefault attribute.
    Specified by:
      `visitAnnotationDefault` in interface `Visitor`
    Parameters:
      `obj` - the attribute.
    Since:
      6.0

  - ### visitAnnotationEntry

    public void visitAnnotationEntry(AnnotationEntry annotationEntry)
    Description copied from interface: `Visitor`
    Visits an AnnotationEntry.
    Specified by:
      `visitAnnotationEntry` in interface `Visitor`
    Parameters:
      `annotationEntry` - the annotation entry.
    Since:
      6.0

  - ### visitBootstrapMethods

    public void visitBootstrapMethods(BootstrapMethods bm)
    Description copied from interface: `Visitor`
    Visits a BootstrapMethods attribute.
    Specified by:
      `visitBootstrapMethods` in interface `Visitor`
    Parameters:
      `bm` - the attribute.
    Since:
      6.0

  - ### visitCode

    public void visitCode(Code code)
    Description copied from interface: `Visitor`
    Visits a Code attribute.
    Specified by:
      `visitCode` in interface `Visitor`
    Parameters:
      `code` - the attribute.

  - ### visitCodeException

    public void visitCodeException(CodeException ce)
    Description copied from interface: `Visitor`
    Visits a CodeException.
    Specified by:
      `visitCodeException` in interface `Visitor`
    Parameters:
      `ce` - the exception.

  - ### visitConstantClass

    public void visitConstantClass(ConstantClass constant)
    Description copied from interface: `Visitor`
    Visits a ConstantClass.
    Specified by:
      `visitConstantClass` in interface `Visitor`
    Parameters:
      `constant` - the constant.

  - ### visitConstantDouble

    public void visitConstantDouble(ConstantDouble constant)
    Description copied from interface: `Visitor`
    Visits a ConstantDouble.
    Specified by:
      `visitConstantDouble` in interface `Visitor`
    Parameters:
      `constant` - the constant.

  - ### visitConstantDynamic

    public void visitConstantDynamic(ConstantDynamic obj)
    Description copied from interface: `Visitor`
    Visits a ConstantDynamic.
    Specified by:
      `visitConstantDynamic` in interface `Visitor`
    Parameters:
      `obj` - the constant.
    Since:
      6.3

  - ### visitConstantFieldref

    public void visitConstantFieldref(ConstantFieldref constant)
    Description copied from interface: `Visitor`
    Visits a ConstantFieldref.
    Specified by:
      `visitConstantFieldref` in interface `Visitor`
    Parameters:
      `constant` - the constant.

  - ### visitConstantFloat

    public void visitConstantFloat(ConstantFloat constant)
    Description copied from interface: `Visitor`
    Visits a ConstantFloat.
    Specified by:
      `visitConstantFloat` in interface `Visitor`
    Parameters:
      `constant` - the constant.

  - ### visitConstantInteger

    public void visitConstantInteger(ConstantInteger constant)
    Description copied from interface: `Visitor`
    Visits a ConstantInteger.
    Specified by:
      `visitConstantInteger` in interface `Visitor`
    Parameters:
      `constant` - the constant.

  - ### visitConstantInterfaceMethodref

    public void visitConstantInterfaceMethodref(ConstantInterfaceMethodref constant)
    Description copied from interface: `Visitor`
    Visits a ConstantInterfaceMethodref.
    Specified by:
      `visitConstantInterfaceMethodref` in interface `Visitor`
    Parameters:
      `constant` - the constant.

  - ### visitConstantInvokeDynamic

    public void visitConstantInvokeDynamic(ConstantInvokeDynamic constant)
    Description copied from interface: `Visitor`
    Visits a ConstantInvokeDynamic.
    Specified by:
      `visitConstantInvokeDynamic` in interface `Visitor`
    Parameters:
      `constant` - the constant.
    Since:
      6.0

  - ### visitConstantLong

    public void visitConstantLong(ConstantLong constant)
    Description copied from interface: `Visitor`
    Visits a ConstantLong.
    Specified by:
      `visitConstantLong` in interface `Visitor`
    Parameters:
      `constant` - the constant.

  - ### visitConstantMethodHandle

    public void visitConstantMethodHandle(ConstantMethodHandle obj)
    Description copied from interface: `Visitor`
    Visits a ConstantMethodHandle.
    Specified by:
      `visitConstantMethodHandle` in interface `Visitor`
    Parameters:
      `obj` - the constant.
    Since:
      6.0

  - ### visitConstantMethodref

    public void visitConstantMethodref(ConstantMethodref constant)
    Description copied from interface: `Visitor`
    Visits a ConstantMethodref.
    Specified by:
      `visitConstantMethodref` in interface `Visitor`
    Parameters:
      `constant` - the constant.

  - ### visitConstantMethodType

    public void visitConstantMethodType(ConstantMethodType obj)
    Description copied from interface: `Visitor`
    Visits a ConstantMethodType.
    Specified by:
      `visitConstantMethodType` in interface `Visitor`
    Parameters:
      `obj` - the constant.
    Since:
      6.0

  - ### visitConstantModule

    public void visitConstantModule(ConstantModule obj)
    Description copied from interface: `Visitor`
    Visits a ConstantModule.
    Specified by:
      `visitConstantModule` in interface `Visitor`
    Parameters:
      `obj` - the constant.
    Since:
      6.1

  - ### visitConstantNameAndType

    public void visitConstantNameAndType(ConstantNameAndType constant)
    Description copied from interface: `Visitor`
    Visits a ConstantNameAndType.
    Specified by:
      `visitConstantNameAndType` in interface `Visitor`
    Parameters:
      `constant` - the constant.

  - ### visitConstantPackage

    public void visitConstantPackage(ConstantPackage obj)
    Description copied from interface: `Visitor`
    Visits a ConstantPackage.
    Specified by:
      `visitConstantPackage` in interface `Visitor`
    Parameters:
      `obj` - the constant.
    Since:
      6.1

  - ### visitConstantPool

    public void visitConstantPool(ConstantPool cp)
    Description copied from interface: `Visitor`
    Visits a ConstantPool.
    Specified by:
      `visitConstantPool` in interface `Visitor`
    Parameters:
      `cp` - the constant pool.

  - ### visitConstantString

    public void visitConstantString(ConstantString constant)
    Description copied from interface: `Visitor`
    Visits a ConstantString.
    Specified by:
      `visitConstantString` in interface `Visitor`
    Parameters:
      `constant` - the constant.

  - ### visitConstantUtf8

    public void visitConstantUtf8(ConstantUtf8 constant)
    Description copied from interface: `Visitor`
    Visits a ConstantUtf8.
    Specified by:
      `visitConstantUtf8` in interface `Visitor`
    Parameters:
      `constant` - the constant.

  - ### visitConstantValue

    public void visitConstantValue(ConstantValue cv)
    Description copied from interface: `Visitor`
    Visits a ConstantValue attribute.
    Specified by:
      `visitConstantValue` in interface `Visitor`
    Parameters:
      `cv` - the attribute.

  - ### visitDeprecated

    public void visitDeprecated(Deprecated attribute)
    Description copied from interface: `Visitor`
    Visits a Deprecated attribute.
    Specified by:
      `visitDeprecated` in interface `Visitor`
    Parameters:
      `attribute` - the attribute.

  - ### visitEnclosingMethod

    public void visitEnclosingMethod(EnclosingMethod obj)
    Description copied from interface: `Visitor`
    Visits an EnclosingMethod attribute.
    Specified by:
      `visitEnclosingMethod` in interface `Visitor`
    Parameters:
      `obj` - the attribute.
    Since:
      6.0

  - ### visitExceptionTable

    public void visitExceptionTable(ExceptionTable table)
    Description copied from interface: `Visitor`
    Visits an ExceptionTable attribute.
    Specified by:
      `visitExceptionTable` in interface `Visitor`
    Parameters:
      `table` - the attribute.

  - ### visitField

    public void visitField(Field field)
    Description copied from interface: `Visitor`
    Visits a Field.
    Specified by:
      `visitField` in interface `Visitor`
    Parameters:
      `field` - the field.

  - ### visitInnerClass

    public void visitInnerClass(InnerClass inner)
    Description copied from interface: `Visitor`
    Visits an InnerClass.
    Specified by:
      `visitInnerClass` in interface `Visitor`
    Parameters:
      `inner` - the inner class.

  - ### visitInnerClasses

    public void visitInnerClasses(InnerClasses ic)
    Description copied from interface: `Visitor`
    Visits an InnerClasses attribute.
    Specified by:
      `visitInnerClasses` in interface `Visitor`
    Parameters:
      `ic` - the attribute.

  - ### visitJavaClass

    public void visitJavaClass(JavaClass clazz)
    Description copied from interface: `Visitor`
    Visits a JavaClass.
    Specified by:
      `visitJavaClass` in interface `Visitor`
    Parameters:
      `clazz` - the class.

  - ### visitLineNumber

    public void visitLineNumber(LineNumber number)
    Description copied from interface: `Visitor`
    Visits a LineNumber.
    Specified by:
      `visitLineNumber` in interface `Visitor`
    Parameters:
      `number` - the line number.

  - ### visitLineNumberTable

    public void visitLineNumberTable(LineNumberTable table)
    Description copied from interface: `Visitor`
    Visits a LineNumberTable attribute.
    Specified by:
      `visitLineNumberTable` in interface `Visitor`
    Parameters:
      `table` - the attribute.

  - ### visitLocalVariable

    public void visitLocalVariable(LocalVariable var)
    Description copied from interface: `Visitor`
    Visits a LocalVariable.
    Specified by:
      `visitLocalVariable` in interface `Visitor`
    Parameters:
      `var` - the local variable.

  - ### visitLocalVariableTable

    public void visitLocalVariableTable(LocalVariableTable table)
    Description copied from interface: `Visitor`
    Visits a LocalVariableTable attribute.
    Specified by:
      `visitLocalVariableTable` in interface `Visitor`
    Parameters:
      `table` - the attribute.

  - ### visitLocalVariableTypeTable

    public void visitLocalVariableTypeTable(LocalVariableTypeTable obj)
    Description copied from interface: `Visitor`
    Visits a LocalVariableTypeTable attribute.
    Specified by:
      `visitLocalVariableTypeTable` in interface `Visitor`
    Parameters:
      `obj` - the attribute.
    Since:
      6.0

  - ### visitMethod

    public void visitMethod(Method method)
    Description copied from interface: `Visitor`
    Visits a Method.
    Specified by:
      `visitMethod` in interface `Visitor`
    Parameters:
      `method` - the method.

  - ### visitMethodParameter

    public void visitMethodParameter(MethodParameter obj)
    Description copied from interface: `Visitor`
    Visits a MethodParameter.
    Specified by:
      `visitMethodParameter` in interface `Visitor`
    Parameters:
      `obj` - the method parameter.
    Since:
      6.4.0

  - ### visitMethodParameters

    public void visitMethodParameters(MethodParameters obj)
    Description copied from interface: `Visitor`
    Visits a MethodParameters attribute.
    Specified by:
      `visitMethodParameters` in interface `Visitor`
    Parameters:
      `obj` - the attribute.
    Since:
      6.0

  - ### visitModule

    public void visitModule(Module obj)
    Description copied from interface: `Visitor`
    Visits a Module attribute.
    Specified by:
      `visitModule` in interface `Visitor`
    Parameters:
      `obj` - the module.
    Since:
      6.4.0

  - ### visitModuleExports

    public void visitModuleExports(ModuleExports obj)
    Description copied from interface: `Visitor`
    Visits a ModuleExports entry.
    Specified by:
      `visitModuleExports` in interface `Visitor`
    Parameters:
      `obj` - the module exports.
    Since:
      6.4.0

  - ### visitModuleMainClass

    public void visitModuleMainClass(ModuleMainClass obj)
    Description copied from interface: `Visitor`
    Visits a ModuleMainClass attribute.
    Specified by:
      `visitModuleMainClass` in interface `Visitor`
    Parameters:
      `obj` - the attribute.
    Since:
      6.4.0

  - ### visitModuleOpens

    public void visitModuleOpens(ModuleOpens obj)
    Description copied from interface: `Visitor`
    Visits a ModuleOpens entry.
    Specified by:
      `visitModuleOpens` in interface `Visitor`
    Parameters:
      `obj` - the module opens.
    Since:
      6.4.0

  - ### visitModulePackages

    public void visitModulePackages(ModulePackages obj)
    Description copied from interface: `Visitor`
    Visits a ModulePackages attribute.
    Specified by:
      `visitModulePackages` in interface `Visitor`
    Parameters:
      `obj` - the module packages.
    Since:
      6.4.0

  - ### visitModuleProvides

    public void visitModuleProvides(ModuleProvides obj)
    Description copied from interface: `Visitor`
    Visits a ModuleProvides entry.
    Specified by:
      `visitModuleProvides` in interface `Visitor`
    Parameters:
      `obj` - the module provides.
    Since:
      6.4.0

  - ### visitModuleRequires

    public void visitModuleRequires(ModuleRequires obj)
    Description copied from interface: `Visitor`
    Visits a ModuleRequires entry.
    Specified by:
      `visitModuleRequires` in interface `Visitor`
    Parameters:
      `obj` - the module requires.
    Since:
      6.4.0

  - ### visitNestHost

    public void visitNestHost(NestHost obj)
    Description copied from interface: `Visitor`
    Visits a NestHost attribute.
    Specified by:
      `visitNestHost` in interface `Visitor`
    Parameters:
      `obj` - the attribute.
    Since:
      6.4.0

  - ### visitNestMembers

    public void visitNestMembers(NestMembers obj)
    Description copied from interface: `Visitor`
    Visits a NestMembers attribute.
    Specified by:
      `visitNestMembers` in interface `Visitor`
    Parameters:
      `obj` - the attribute.
    Since:
      6.4.0

  - ### visitParameterAnnotation

    public void visitParameterAnnotation(ParameterAnnotations obj)
    Description copied from interface: `Visitor`
    Visits a ParameterAnnotations attribute.
    Specified by:
      `visitParameterAnnotation` in interface `Visitor`
    Parameters:
      `obj` - the attribute.
    Since:
      6.0

  - ### visitParameterAnnotationEntry

    public void visitParameterAnnotationEntry(ParameterAnnotationEntry obj)
    Description copied from interface: `Visitor`
    Visits a ParameterAnnotationEntry.
    Specified by:
      `visitParameterAnnotationEntry` in interface `Visitor`
    Parameters:
      `obj` - the annotation entry.
    Since:
      6.0

  - ### visitRecord

    public void visitRecord(Record record)
    Description copied from interface: `Visitor`
    Visits a `Record` object.
    Specified by:
      `visitRecord` in interface `Visitor`
    Parameters:
      `record` - Record to visit.

  - ### visitRecordComponent

    public void visitRecordComponent(RecordComponentInfo recordComponentInfo)
    Description copied from interface: `Visitor`
    Visits a `RecordComponentInfo` object.
    Specified by:
      `visitRecordComponent` in interface `Visitor`
    Parameters:
      `recordComponentInfo` - component to visit.

  - ### visitSignature

    public void visitSignature(Signature attribute)
    Description copied from interface: `Visitor`
    Visits a Signature attribute.
    Specified by:
      `visitSignature` in interface `Visitor`
    Parameters:
      `attribute` - the attribute.

  - ### visitSourceFile

    public void visitSourceFile(SourceFile attribute)
    Description copied from interface: `Visitor`
    Visits a SourceFile attribute.
    Specified by:
      `visitSourceFile` in interface `Visitor`
    Parameters:
      `attribute` - the attribute.

  - ### visitStackMap

    public void visitStackMap(StackMap table)
    Description copied from interface: `Visitor`
    Visits a StackMap attribute.
    Specified by:
      `visitStackMap` in interface `Visitor`
    Parameters:
      `table` - the attribute.

  - ### visitStackMapEntry

    public void visitStackMapEntry(StackMapEntry var)
    Description copied from interface: `Visitor`
    Visits a StackMapEntry.
    Specified by:
      `visitStackMapEntry` in interface `Visitor`
    Parameters:
      `var` - the entry.

  - ### visitStackMapType

    public void visitStackMapType(StackMapType var)
    Visits a `StackMapType` object.
    Specified by:
      `visitStackMapType` in interface `Visitor`
    Parameters:
      `var` - object to visit.
    Since:
      6.8.0

  - ### visitSynthetic

    public void visitSynthetic(Synthetic attribute)
    Description copied from interface: `Visitor`
    Visits a Synthetic attribute.
    Specified by:
      `visitSynthetic` in interface `Visitor`
    Parameters:
      `attribute` - the attribute.

  - ### visitUnknown

    public void visitUnknown(Unknown attribute)
    Description copied from interface: `Visitor`
    Visits an Unknown attribute.
    Specified by:
      `visitUnknown` in interface `Visitor`
    Parameters:
      `attribute` - the attribute.