Class ModuleNode


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

      Fields 
      Modifier and Type Field Description
      int access
      The module's access flags, among ACC_OPEN, ACC_SYNTHETIC and ACC_MANDATED.
      java.util.List<ModuleExportNode> exports
      The packages exported by this module.
      java.lang.String mainClass
      The internal name of the main class of this module.
      java.lang.String name
      The fully qualified name (using dots) of this module.
      java.util.List<ModuleOpenNode> opens
      The packages opened by this module.
      java.util.List<java.lang.String> packages
      The internal name of the packages declared by this module.
      java.util.List<ModuleProvideNode> provides
      The services provided by this module.
      java.util.List<ModuleRequireNode> requires
      The dependencies of this module.
      java.util.List<java.lang.String> uses
      The internal names of the services used by this module.
      java.lang.String version
      The version of this module.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void accept​(ClassVisitor classVisitor)
      Makes the given class visitor visit this module.
      void visitEnd()
      Visits the end of the module.
      void visitExport​(java.lang.String packaze, int access, java.lang.String... modules)
      Visit an exported package of the current module.
      void visitMainClass​(java.lang.String mainClass)
      Visit the main class of the current module.
      void visitOpen​(java.lang.String packaze, int access, java.lang.String... modules)
      Visit an open package of the current module.
      void visitPackage​(java.lang.String packaze)
      Visit a package of the current module.
      void visitProvide​(java.lang.String service, java.lang.String... providers)
      Visit an implementation of a service.
      void visitRequire​(java.lang.String module, int access, java.lang.String version)
      Visits a dependence of the current module.
      void visitUse​(java.lang.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

      • name

        public java.lang.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 java.lang.String version
        The version of this module. May be null.
      • mainClass

        public java.lang.String mainClass
        The internal name of the main class of this module. May be null.
      • packages

        public java.util.List<java.lang.String> packages
        The internal name of the packages declared by this module. May be null.
      • requires

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

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

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

        public java.util.List<java.lang.String> uses
        The internal names of the services used by this module. May be null.
      • provides

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

      • ModuleNode

        public ModuleNode​(java.lang.String name,
                          int access,
                          java.lang.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:
        java.lang.IllegalStateException - If a subclass calls this constructor.
      • ModuleNode

        public ModuleNode​(int api,
                          java.lang.String name,
                          int access,
                          java.lang.String version,
                          java.util.List<ModuleRequireNode> requires,
                          java.util.List<ModuleExportNode> exports,
                          java.util.List<ModuleOpenNode> opens,
                          java.util.List<java.lang.String> uses,
                          java.util.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. May be null.
        provides - The services provided by this module. May be null.
    • Method Detail

      • visitMainClass

        public void visitMainClass​(java.lang.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.
      • visitPackage

        public void visitPackage​(java.lang.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.
      • visitRequire

        public void visitRequire​(java.lang.String module,
                                 int access,
                                 java.lang.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​(java.lang.String packaze,
                                int access,
                                java.lang.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.
        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​(java.lang.String packaze,
                              int access,
                              java.lang.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.
        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​(java.lang.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.
      • visitProvide

        public void visitProvide​(java.lang.String service,
                                 java.lang.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.
        providers - the internal names 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.