java.lang.Object
org.eclipse.persistence.internal.libraries.asm.ModuleVisitor
org.eclipse.persistence.internal.libraries.asm.tree.ModuleNode

public class ModuleNode extends ModuleVisitor
A node that represents a module declaration.
  • Field Details

    • name

      public String name
      The fully qualified name (using dots) of this module.
    • access

      public int access
      The module's access flags, among ACC_OPEN, ACC_SYNTHETIC and ACC_MANDATED.
    • version

      public String version
      The version of this module. May be null.
    • mainClass

      public String mainClass
      The internal name of the main class of this module (see Type.getInternalName()). May be null.
    • packages

      public List<String> packages
      The internal name of the packages declared by this module (see Type.getInternalName()). May be null.
    • requires

      public List<ModuleRequireNode> requires
      The dependencies of this module. May be null.
    • exports

      public List<ModuleExportNode> exports
      The packages exported by this module. May be null.
    • opens

      public List<ModuleOpenNode> opens
      The packages opened by this module. May be null.
    • uses

      public List<String> uses
      The internal names of the services used by this module (see Type.getInternalName()). May be null.
    • provides

      public List<ModuleProvideNode> provides
      The services provided by this module. May be null.
  • Constructor Details

    • ModuleNode

      public ModuleNode(String name, int access, String version)
      Constructs a ModuleNode. Subclasses must not use this constructor. Instead, they must use the ModuleNode(int,String,int,String,List,List,List,List,List) version.
      Parameters:
      name - the fully qualified name (using dots) of the module.
      access - the module access flags, among ACC_OPEN, ACC_SYNTHETIC and ACC_MANDATED.
      version - the module version, or null.
      Throws:
      IllegalStateException - If a subclass calls this constructor.
    • ModuleNode

      public ModuleNode(int api, String name, int access, String version, List<ModuleRequireNode> requires, List<ModuleExportNode> exports, List<ModuleOpenNode> opens, List<String> uses, List<ModuleProvideNode> provides)
      Constructs a ModuleNode.
      Parameters:
      api - the ASM API version implemented by this visitor. Must be one of Opcodes.ASM6, Opcodes.ASM7, Opcodes.ASM8 or Opcodes.ASM9.
      name - the fully qualified name (using dots) of the module.
      access - the module access flags, among ACC_OPEN, ACC_SYNTHETIC and ACC_MANDATED.
      version - the module version, or null.
      requires - The dependencies of this module. May be null.
      exports - The packages exported by this module. May be null.
      opens - The packages opened by this module. May be null.
      uses - The internal names of the services used by this module (see Type.getInternalName()). May be null.
      provides - The services provided by this module. May be null.
  • Method Details

    • visitMainClass

      public void visitMainClass(String mainClass)
      Description copied from class: ModuleVisitor
      Visit the main class of the current module.
      Overrides:
      visitMainClass in class ModuleVisitor
      Parameters:
      mainClass - the internal name of the main class of the current module (see Type.getInternalName()).
    • visitPackage

      public void visitPackage(String packaze)
      Description copied from class: ModuleVisitor
      Visit a package of the current module.
      Overrides:
      visitPackage in class ModuleVisitor
      Parameters:
      packaze - the internal name of a package (see Type.getInternalName()).
    • visitRequire

      public void visitRequire(String module, int access, String version)
      Description copied from class: ModuleVisitor
      Visits a dependence of the current module.
      Overrides:
      visitRequire in class ModuleVisitor
      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)
      Description copied from class: ModuleVisitor
      Visit an exported package of the current module.
      Overrides:
      visitExport in class ModuleVisitor
      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)
      Description copied from class: ModuleVisitor
      Visit an open package of the current module.
      Overrides:
      visitOpen in class ModuleVisitor
      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)
      Description copied from class: ModuleVisitor
      Visit a service used by the current module. The name must be the internal name of an interface or a class.
      Overrides:
      visitUse in class ModuleVisitor
      Parameters:
      service - the internal name of the service (see Type.getInternalName()).
    • visitProvide

      public void visitProvide(String service, String... providers)
      Description copied from class: ModuleVisitor
      Visit an implementation of a service.
      Overrides:
      visitProvide in class ModuleVisitor
      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()
      Description copied from class: ModuleVisitor
      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.
      Overrides:
      visitEnd in class ModuleVisitor
    • accept

      public void accept(ClassVisitor classVisitor)
      Makes the given class visitor visit this module.
      Parameters:
      classVisitor - a class visitor.