Class ModuleVisitor

java.lang.Object
org.objectweb.asm.ModuleVisitor
Direct Known Subclasses:
CheckModuleAdapter, ModuleNode, ModuleRemapper, TraceModuleVisitor

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

    • getDelegate

      public ModuleVisitor getDelegate()
      The module visitor to which this visitor must delegate method calls. May be null.
      Returns:
      the module visitor to which this visitor must delegate method calls, or null.
    • 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 (see Type.getInternalName()).
    • visitPackage

      public void visitPackage(String packaze)
      Visit a package of the current module.
      Parameters:
      packaze - the internal name of a package (see Type.getInternalName()).
    • 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 (see Type.getInternalName()).
      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 (see Type.getInternalName()).
      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 (see Type.getInternalName()).
    • visitProvide

      public void visitProvide(String service, String... providers)
      Visit an implementation of a service.
      Parameters:
      service - the internal name of the service (see Type.getInternalName()).
      providers - the internal names (see Type.getInternalName()) 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.