Package org.objectweb.asm.tree
Class ModuleNode
- java.lang.Object
-
- org.objectweb.asm.ModuleVisitor
-
- org.objectweb.asm.tree.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, amongACC_OPEN
,ACC_SYNTHETIC
andACC_MANDATED
.List<ModuleExportNode>
exports
The packages exported by this module.String
mainClass
The internal name of the main class of this module.String
name
The fully qualified name (using dots) of this module.List<ModuleOpenNode>
opens
The packages opened by this module.List<String>
packages
The internal name of the packages declared by this module.List<ModuleProvideNode>
provides
The services provided by this module.List<ModuleRequireNode>
requires
The dependencies of this module.List<String>
uses
The internal names of the services used by this module.String
version
The version of this module.-
Fields inherited from class org.objectweb.asm.ModuleVisitor
api, mv
-
-
Constructor Summary
Constructors Constructor Description 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 aModuleNode
.ModuleNode(String name, int access, String version)
Constructs aModuleNode
.
-
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(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.
-
-
-
Field Detail
-
name
public String name
The fully qualified name (using dots) of this module.
-
access
public int access
The module's access flags, amongACC_OPEN
,ACC_SYNTHETIC
andACC_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. May be null.
-
packages
public List<String> packages
The internal name of the packages declared by this module. 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.
-
provides
public List<ModuleProvideNode> provides
The services provided by this module. May be null.
-
-
Constructor Detail
-
ModuleNode
public ModuleNode(String name, int access, String version)
Constructs aModuleNode
. Subclasses must not use this constructor. Instead, they must use theModuleNode(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, amongACC_OPEN
,ACC_SYNTHETIC
andACC_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 aModuleNode
.- Parameters:
api
- the ASM API version implemented by this visitor. Must be one ofOpcodes.ASM6
orOpcodes.ASM7
.name
- the fully qualified name (using dots) of the module.access
- the module access flags, amongACC_OPEN
,ACC_SYNTHETIC
andACC_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(String mainClass)
Description copied from class:ModuleVisitor
Visit the main class of the current module.- Overrides:
visitMainClass
in classModuleVisitor
- Parameters:
mainClass
- the internal name of the main class of the current module.
-
visitPackage
public void visitPackage(String packaze)
Description copied from class:ModuleVisitor
Visit a package of the current module.- Overrides:
visitPackage
in classModuleVisitor
- Parameters:
packaze
- the internal name of a package.
-
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 classModuleVisitor
- Parameters:
module
- the fully qualified name (using dots) of the dependence.access
- the access flag of the dependence amongACC_TRANSITIVE
,ACC_STATIC_PHASE
,ACC_SYNTHETIC
andACC_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 classModuleVisitor
- Parameters:
packaze
- the internal name of the exported package.access
- the access flag of the exported package, valid values are amongACC_SYNTHETIC
andACC_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 classModuleVisitor
- Parameters:
packaze
- the internal name of the opened package.access
- the access flag of the opened package, valid values are amongACC_SYNTHETIC
andACC_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 classModuleVisitor
- Parameters:
service
- the internal name of the service.
-
visitProvide
public void visitProvide(String service, String... providers)
Description copied from class:ModuleVisitor
Visit an implementation of a service.- Overrides:
visitProvide
in classModuleVisitor
- 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 classModuleVisitor
-
accept
public void accept(ClassVisitor classVisitor)
Makes the given class visitor visit this module.- Parameters:
classVisitor
- a class visitor.
-
-