# Interface Visitor

All Known Implementing Classes:
  `BCELifier, DescendingVisitor, EmptyVisitor, StringRepresentation`

public interface Visitor
Interface to make use of the Visitor pattern programming style. I.e. a class that implements this interface can traverse the contents of a Java class just by calling the 'accept' method which all classes have.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `visitAnnotation(Annotations obj)`
  `void`
  `visitAnnotationDefault(AnnotationDefault obj)`
  `void`
  `visitAnnotationEntry(AnnotationEntry obj)`
  `void`
  `visitBootstrapMethods(BootstrapMethods obj)`
  `void`
  `visitCode(Code obj)`
  `void`
  `visitCodeException(CodeException obj)`
  `void`
  `visitConstantClass(ConstantClass obj)`
  `void`
  `visitConstantDouble(ConstantDouble obj)`
  `default void`
  `visitConstantDynamic(ConstantDynamic constantDynamic)`
  `void`
  `visitConstantFieldref(ConstantFieldref obj)`
  `void`
  `visitConstantFloat(ConstantFloat obj)`
  `void`
  `visitConstantInteger(ConstantInteger obj)`
  `void`
  `visitConstantInterfaceMethodref(ConstantInterfaceMethodref obj)`
  `void`
  `visitConstantInvokeDynamic(ConstantInvokeDynamic obj)`
  `void`
  `visitConstantLong(ConstantLong obj)`
  `void`
  `visitConstantMethodHandle(ConstantMethodHandle obj)`
  `void`
  `visitConstantMethodref(ConstantMethodref obj)`
  `void`
  `visitConstantMethodType(ConstantMethodType obj)`
  `void`
  `visitConstantModule(ConstantModule constantModule)`
  `void`
  `visitConstantNameAndType(ConstantNameAndType obj)`
  `void`
  `visitConstantPackage(ConstantPackage constantPackage)`
  `void`
  `visitConstantPool(ConstantPool obj)`
  `void`
  `visitConstantString(ConstantString obj)`
  `void`
  `visitConstantUtf8(ConstantUtf8 obj)`
  `void`
  `visitConstantValue(ConstantValue obj)`
  `void`
  `visitDeprecated(Deprecated obj)`
  `void`
  `visitEnclosingMethod(EnclosingMethod obj)`
  `void`
  `visitExceptionTable(ExceptionTable obj)`
  `void`
  `visitField(Field obj)`
  `void`
  `visitInnerClass(InnerClass obj)`
  `void`
  `visitInnerClasses(InnerClasses obj)`
  `void`
  `visitJavaClass(JavaClass obj)`
  `void`
  `visitLineNumber(LineNumber obj)`
  `void`
  `visitLineNumberTable(LineNumberTable obj)`
  `void`
  `visitLocalVariable(LocalVariable obj)`
  `void`
  `visitLocalVariableTable(LocalVariableTable obj)`
  `void`
  `visitLocalVariableTypeTable(LocalVariableTypeTable obj)`
  `void`
  `visitMethod(Method obj)`
  `default void`
  `visitMethodParameter(MethodParameter obj)`
  `void`
  `visitMethodParameters(MethodParameters obj)`
  `default void`
  `visitModule(Module constantModule)`
  `default void`
  `visitModuleExports(ModuleExports constantModule)`
  `default void`
  `visitModuleMainClass(ModuleMainClass obj)`
  `default void`
  `visitModuleOpens(ModuleOpens constantModule)`
  `default void`
  `visitModulePackages(ModulePackages constantModule)`
  `default void`
  `visitModuleProvides(ModuleProvides constantModule)`
  `default void`
  `visitModuleRequires(ModuleRequires constantModule)`
  `default void`
  `visitNestHost(NestHost obj)`
  `default void`
  `visitNestMembers(NestMembers obj)`
  `void`
  `visitParameterAnnotation(ParameterAnnotations obj)`
  `void`
  `visitParameterAnnotationEntry(ParameterAnnotationEntry obj)`
  `default void`
  `visitRecord(Record obj)`
  Visits a `Record` object.
  `default void`
  `visitRecordComponent(RecordComponentInfo record)`
  Visits a `RecordComponentInfo` object.
  `void`
  `visitSignature(Signature obj)`
  `void`
  `visitSourceFile(SourceFile obj)`
  `void`
  `visitStackMap(StackMap obj)`
  `void`
  `visitStackMapEntry(StackMapEntry obj)`
  `default void`
  `visitStackMapType(StackMapType obj)`
  Visits a `StackMapType` object.
  `void`
  `visitSynthetic(Synthetic obj)`
  `void`
  `visitUnknown(Unknown obj)`

- ## Method Details

  - ### visitAnnotation

    void visitAnnotation(Annotations obj)
    Since:
      6.0

  - ### visitAnnotationDefault

    void visitAnnotationDefault(AnnotationDefault obj)
    Since:
      6.0

  - ### visitAnnotationEntry

    void visitAnnotationEntry(AnnotationEntry obj)
    Since:
      6.0

  - ### visitBootstrapMethods

    void visitBootstrapMethods(BootstrapMethods obj)
    Since:
      6.0

  - ### visitCode

    void visitCode(Code obj)

  - ### visitCodeException

    void visitCodeException(CodeException obj)

  - ### visitConstantClass

    void visitConstantClass(ConstantClass obj)

  - ### visitConstantDouble

    void visitConstantDouble(ConstantDouble obj)

  - ### visitConstantDynamic

    default void visitConstantDynamic(ConstantDynamic constantDynamic)
    Since:
      6.3

  - ### visitConstantFieldref

    void visitConstantFieldref(ConstantFieldref obj)

  - ### visitConstantFloat

    void visitConstantFloat(ConstantFloat obj)

  - ### visitConstantInteger

    void visitConstantInteger(ConstantInteger obj)

  - ### visitConstantInterfaceMethodref

    void visitConstantInterfaceMethodref(ConstantInterfaceMethodref obj)

  - ### visitConstantInvokeDynamic

    void visitConstantInvokeDynamic(ConstantInvokeDynamic obj)

  - ### visitConstantLong

    void visitConstantLong(ConstantLong obj)

  - ### visitConstantMethodHandle

    void visitConstantMethodHandle(ConstantMethodHandle obj)
    Since:
      6.0

  - ### visitConstantMethodref

    void visitConstantMethodref(ConstantMethodref obj)

  - ### visitConstantMethodType

    void visitConstantMethodType(ConstantMethodType obj)
    Since:
      6.0

  - ### visitConstantModule

    void visitConstantModule(ConstantModule constantModule)
    Since:
      6.1

  - ### visitConstantNameAndType

    void visitConstantNameAndType(ConstantNameAndType obj)

  - ### visitConstantPackage

    void visitConstantPackage(ConstantPackage constantPackage)
    Since:
      6.1

  - ### visitConstantPool

    void visitConstantPool(ConstantPool obj)

  - ### visitConstantString

    void visitConstantString(ConstantString obj)

  - ### visitConstantUtf8

    void visitConstantUtf8(ConstantUtf8 obj)

  - ### visitConstantValue

    void visitConstantValue(ConstantValue obj)

  - ### visitDeprecated

    void visitDeprecated(Deprecated obj)

  - ### visitEnclosingMethod

    void visitEnclosingMethod(EnclosingMethod obj)
    Since:
      6.0

  - ### visitExceptionTable

    void visitExceptionTable(ExceptionTable obj)

  - ### visitField

    void visitField(Field obj)

  - ### visitInnerClass

    void visitInnerClass(InnerClass obj)

  - ### visitInnerClasses

    void visitInnerClasses(InnerClasses obj)

  - ### visitJavaClass

    void visitJavaClass(JavaClass obj)

  - ### visitLineNumber

    void visitLineNumber(LineNumber obj)

  - ### visitLineNumberTable

    void visitLineNumberTable(LineNumberTable obj)

  - ### visitLocalVariable

    void visitLocalVariable(LocalVariable obj)

  - ### visitLocalVariableTable

    void visitLocalVariableTable(LocalVariableTable obj)

  - ### visitLocalVariableTypeTable

    void visitLocalVariableTypeTable(LocalVariableTypeTable obj)
    Since:
      6.0

  - ### visitMethod

    void visitMethod(Method obj)

  - ### visitMethodParameter

    default void visitMethodParameter(MethodParameter obj)
    Since:
      6.4.0

  - ### visitMethodParameters

    void visitMethodParameters(MethodParameters obj)
    Since:
      6.0

  - ### visitModule

    default void visitModule(Module constantModule)
    Since:
      6.4.0

  - ### visitModuleExports

    default void visitModuleExports(ModuleExports constantModule)
    Since:
      6.4.0

  - ### visitModuleMainClass

    default void visitModuleMainClass(ModuleMainClass obj)
    Since:
      6.4.0

  - ### visitModuleOpens

    default void visitModuleOpens(ModuleOpens constantModule)
    Since:
      6.4.0

  - ### visitModulePackages

    default void visitModulePackages(ModulePackages constantModule)
    Since:
      6.4.0

  - ### visitModuleProvides

    default void visitModuleProvides(ModuleProvides constantModule)
    Since:
      6.4.0

  - ### visitModuleRequires

    default void visitModuleRequires(ModuleRequires constantModule)
    Since:
      6.4.0

  - ### visitNestHost

    default void visitNestHost(NestHost obj)
    Since:
      6.4.0

  - ### visitNestMembers

    default void visitNestMembers(NestMembers obj)
    Since:
      6.4.0

  - ### visitParameterAnnotation

    void visitParameterAnnotation(ParameterAnnotations obj)
    Since:
      6.0

  - ### visitParameterAnnotationEntry

    void visitParameterAnnotationEntry(ParameterAnnotationEntry obj)
    Since:
      6.0

  - ### visitRecord

    default void visitRecord(Record obj)
    Visits a `Record` object.
    Parameters:
      `obj` - Record to visit
    Since:
      6.9.0

  - ### visitRecordComponent

    default void visitRecordComponent(RecordComponentInfo record)
    Visits a `RecordComponentInfo` object.
    Parameters:
      `record` - component to visit
    Since:
      6.9.0

  - ### visitSignature

    void visitSignature(Signature obj)

  - ### visitSourceFile

    void visitSourceFile(SourceFile obj)

  - ### visitStackMap

    void visitStackMap(StackMap obj)

  - ### visitStackMapEntry

    void visitStackMapEntry(StackMapEntry obj)

  - ### visitStackMapType

    default void visitStackMapType(StackMapType obj)
    Visits a `StackMapType` object.
    Parameters:
      `obj` - object to visit
    Since:
      6.8.0

  - ### visitSynthetic

    void visitSynthetic(Synthetic obj)

  - ### visitUnknown

    void visitUnknown(Unknown obj)