org.springframework.asm

## Class ModuleVisitor

- java.lang.Object
- - org.springframework.asm.ModuleVisitor

-     public abstract class ModuleVisitor
      extends Object

  A visitor to visit a Java module. The methods of this class must be called in the following order: ( `visitMainClass` | ( `visitPackage` | `visitRequire` | `visitExport` | `visitOpen` | `visitUse` | `visitProvide` )* ) `visitEnd`.
  Author:
    Remi Forax, Eric Bruneton

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected int` | `api` The ASM API version implemented by this visitor.
    `protected ModuleVisitor` | `mv` The module visitor to which this visitor must delegate method calls.

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `ModuleVisitor(int api)` Constructs a new `ModuleVisitor`.
    `protected` | `ModuleVisitor(int api, ModuleVisitor moduleVisitor)` Constructs a new `ModuleVisitor`.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `visitEnd()` Visits the end of the module.
    `void` | `visitExport(String packaze, int access, String... modules)` Visit an exported package of the current module.
    `void` | `visitMainClass(String mainClass)` Visit the main class of the current module.
    `void` | `visitOpen(String packaze, int access, String... modules)` Visit an open package of the current module.
    `void` | `visitPackage(String packaze)` Visit a package of the current module.
    `void` | `visitProvide(String service, String... providers)` Visit an implementation of a service.
    `void` | `visitRequire(String module, int access, String version)` Visits a dependence of the current module.
    `void` | `visitUse(String service)` Visit a service used by the current module.

    - ### Methods inherited from class java.lang.Object

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

- - ### Field Detail

    - #### api

          protected final int api

      The ASM API version implemented by this visitor. The value of this field must be one of `Opcodes.ASM6` or `Opcodes.ASM7`.

    - #### mv

          protected ModuleVisitor mv

      The module visitor to which this visitor must delegate method calls. May be null.

  - ### Constructor Detail

    - #### ModuleVisitor

          protected ModuleVisitor(int api)

      Constructs a new `ModuleVisitor`.
      Parameters:
        `api` - the ASM API version implemented by this visitor. Must be one of `Opcodes.ASM6` or `Opcodes.ASM7`.

    - #### ModuleVisitor

          protected ModuleVisitor(int api,
                                  ModuleVisitor moduleVisitor)

      Constructs a new `ModuleVisitor`.
      Parameters:
        `api` - the ASM API version implemented by this visitor. Must be one of `Opcodes.ASM6` or `Opcodes.ASM7`.
        `moduleVisitor` - the module visitor to which this visitor must delegate method calls. May be null.

  - ### Method Detail

    - #### visitMainClass

          public void visitMainClass(String mainClass)

      Visit the main class of the current module.
      Parameters:
        `mainClass` - the internal name of the main class of the current module.

    - #### visitPackage

          public void visitPackage(String packaze)

      Visit a package of the current module.
      Parameters:
        `packaze` - the internal name of a package.

    - #### visitRequire

          public void visitRequire(String module,
                                   int access,
                                   String version)

      Visits a dependence of the current module.
      Parameters:
        `module` - the fully qualified name (using dots) of the dependence.
        `access` - the access flag of the dependence among `ACC_TRANSITIVE`, `ACC_STATIC_PHASE`, `ACC_SYNTHETIC` and `ACC_MANDATED`.
        `version` - the module version at compile time, or null.

    - #### visitExport

          public void visitExport(String packaze,
                                  int access,
                                  String... modules)

      Visit an exported package of the current module.
      Parameters:
        `packaze` - the internal name of the exported package.
        `access` - the access flag of the exported package, valid values are among `ACC_SYNTHETIC` and `ACC_MANDATED`.
        `modules` - the fully qualified names (using dots) of the modules that can access the public classes of the exported package, or null.

    - #### visitOpen

          public void visitOpen(String packaze,
                                int access,
                                String... modules)

      Visit an open package of the current module.
      Parameters:
        `packaze` - the internal name of the opened package.
        `access` - the access flag of the opened package, valid values are among `ACC_SYNTHETIC` and `ACC_MANDATED`.
        `modules` - the fully qualified names (using dots) of the modules that can use deep reflection to the classes of the open package, or null.

    - #### visitUse

          public void visitUse(String service)

      Visit a service used by the current module. The name must be the internal name of an interface or a class.
      Parameters:
        `service` - the internal name of the service.

    - #### visitProvide

          public void visitProvide(String service,
                                   String... providers)

      Visit an implementation of a service.
      Parameters:
        `service` - the internal name of the service.
        `providers` - the internal names of the implementations of the service (there is at least one provider).

    - #### visitEnd

          public void visitEnd()

      Visits the end of the module. This method, which is the last one to be called, is used to inform the visitor that everything have been visited.