Class ModuleNode


  • public class ModuleNode
    extends ModuleVisitor
    A node that represents a module declaration.
    • 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 (see Type.getInternalName()). May be null.
      • packages

        public java.util.List<java.lang.String> packages
        The internal name of the packages declared by this module (see Type.getInternalName()). 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 (see Type.getInternalName()). 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 (see Type.getInternalName()). 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 (see Type.getInternalName()).
      • 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 (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​(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 (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​(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 (see Type.getInternalName()).
      • 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 (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.