Package 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
Description
`protected final 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
Description
`protected`
`ModuleVisitor(int api)`
Constructs a new `ModuleVisitor`.
`protected`
`ModuleVisitor(int api, ModuleVisitor moduleVisitor)`
Constructs a new `ModuleVisitor`.

## Method Summary

Modifier and Type
Method
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 Details

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

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

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