Package org.apache.bcel.classfile
Class Module
- java.lang.Object
-
- org.apache.bcel.classfile.Attribute
-
- org.apache.bcel.classfile.Module
-
- All Implemented Interfaces:
java.lang.Cloneable,Node
public final class Module extends Attribute
This class is derived from Attribute and represents the list of modules required, exported, opened or provided by a module. There may be at most one Module attribute in a ClassFile structure.- Since:
- 6.4.0
- See Also:
Attribute
-
-
Field Summary
Fields Modifier and Type Field Description private ModuleExports[]exportsTablestatic java.lang.StringEXTENSIONThe module file name extension.private intmoduleFlagsprivate intmoduleNameIndexprivate intmoduleVersionIndexprivate ModuleOpens[]opensTableprivate ModuleProvides[]providesTableprivate ModuleRequires[]requiresTableprivate intusesCountprivate int[]usesIndex-
Fields inherited from class org.apache.bcel.classfile.Attribute
constant_pool, EMPTY_ARRAY, length, name_index, tag
-
-
Constructor Summary
Constructors Constructor Description Module(int nameIndex, int length, java.io.DataInput dataInput, ConstantPool constantPool)Constructs object from input stream.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaccept(Visitor v)Called by objects that are traversing the nodes of the tree implicitly defined by the contents of a Java class.Attributecopy(ConstantPool constantPool)Creates a deep copy of this attribute.voiddump(java.io.DataOutputStream file)Dumps Module attribute to file stream in binary format.private static java.lang.StringgetClassNameAtIndex(ConstantPool cp, int index, boolean compactClassName)ModuleExports[]getExportsTable()intgetModuleFlags()Gets flags for this module.java.lang.StringgetModuleName(ConstantPool cp)Gets module name.ModuleOpens[]getOpensTable()ModuleProvides[]getProvidesTable()ModuleRequires[]getRequiresTable()java.lang.String[]getUsedClassNames(ConstantPool constantPool, boolean compactClassName)Gets the array of class names for this module's uses.java.lang.StringgetVersion(ConstantPool cp)Gets version for this module.java.lang.StringtoString()-
Methods inherited from class org.apache.bcel.classfile.Attribute
addAttributeReader, addAttributeReader, clone, getConstantPool, getLength, getName, getNameIndex, getTag, println, readAttribute, readAttribute, removeAttributeReader, setConstantPool, setLength, setNameIndex
-
-
-
-
Field Detail
-
EXTENSION
public static final java.lang.String EXTENSION
The module file name extension.- Since:
- 6.7.0
- See Also:
- Constant Field Values
-
moduleNameIndex
private final int moduleNameIndex
-
moduleFlags
private final int moduleFlags
-
moduleVersionIndex
private final int moduleVersionIndex
-
requiresTable
private ModuleRequires[] requiresTable
-
exportsTable
private ModuleExports[] exportsTable
-
opensTable
private ModuleOpens[] opensTable
-
usesCount
private final int usesCount
-
usesIndex
private final int[] usesIndex
-
providesTable
private ModuleProvides[] providesTable
-
-
Constructor Detail
-
Module
Module(int nameIndex, int length, java.io.DataInput dataInput, ConstantPool constantPool) throws java.io.IOExceptionConstructs object from input stream.- Parameters:
nameIndex- Index in constant pool.length- Content length in bytes.dataInput- Input stream.constantPool- Array of constants.- Throws:
java.io.IOException- if an I/O error occurs.
-
-
Method Detail
-
getClassNameAtIndex
private static java.lang.String getClassNameAtIndex(ConstantPool cp, int index, boolean compactClassName)
-
accept
public void accept(Visitor v)
Called by objects that are traversing the nodes of the tree implicitly defined by the contents of a Java class. I.e., the hierarchy of methods, fields, attributes, etc. spawns a tree of objects.
-
copy
public Attribute copy(ConstantPool constantPool)
Description copied from class:AttributeCreates a deep copy of this attribute.
-
dump
public void dump(java.io.DataOutputStream file) throws java.io.IOExceptionDumps Module attribute to file stream in binary format.
-
getExportsTable
public ModuleExports[] getExportsTable()
- Returns:
- table of exported interfaces.
- See Also:
ModuleExports
-
getModuleFlags
public int getModuleFlags()
Gets flags for this module.- Returns:
- module flags.
- Since:
- 6.10.0
-
getModuleName
public java.lang.String getModuleName(ConstantPool cp)
Gets module name.- Parameters:
cp- Array of constants.- Returns:
- module name.
- Since:
- 6.10.0
-
getOpensTable
public ModuleOpens[] getOpensTable()
- Returns:
- table of provided interfaces.
- See Also:
ModuleOpens
-
getProvidesTable
public ModuleProvides[] getProvidesTable()
- Returns:
- table of provided interfaces.
- See Also:
ModuleProvides
-
getRequiresTable
public ModuleRequires[] getRequiresTable()
- Returns:
- table of required modules.
- See Also:
ModuleRequires
-
getUsedClassNames
public java.lang.String[] getUsedClassNames(ConstantPool constantPool, boolean compactClassName)
Gets the array of class names for this module's uses.- Parameters:
constantPool- Array of constants usually obtained from the ClassFile object.compactClassName- false for original constant pool value, true to replace '/' with '.'.- Returns:
- array of used class names.
- Since:
- 6.10.0
-
getVersion
public java.lang.String getVersion(ConstantPool cp)
Gets version for this module.- Parameters:
cp- Array of constants.- Returns:
- version from constant pool, "0" if version index is 0.
- Since:
- 6.10.0
-
-