Class 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 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
      • usesCount

        private final int usesCount
      • usesIndex

        private final int[] usesIndex
    • Constructor Detail

      • Module

        Module​(int nameIndex,
               int length,
               java.io.DataInput dataInput,
               ConstantPool constantPool)
        throws java.io.IOException
        Constructs 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.
        Specified by:
        accept in interface Node
        Specified by:
        accept in class Attribute
        Parameters:
        v - Visitor object.
      • copy

        public Attribute copy​(ConstantPool constantPool)
        Description copied from class: Attribute
        Creates a deep copy of this attribute.
        Specified by:
        copy in class Attribute
        Parameters:
        constantPool - constant pool to save.
        Returns:
        deep copy of this attribute.
      • dump

        public void dump​(java.io.DataOutputStream file)
                  throws java.io.IOException
        Dumps Module attribute to file stream in binary format.
        Overrides:
        dump in class Attribute
        Parameters:
        file - Output file stream.
        Throws:
        java.io.IOException - if an I/O error occurs.
      • 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
      • 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
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class Attribute
        Returns:
        String representation, that is, a list of packages.