Class JarIndex

java.lang.Object
com.sun.ts.lib.util.sec.misc.JarIndex

public class JarIndex extends Object
This class is used to maintain mappings from packages, classes and resources to their enclosing JAR files. Mappings are kept at the package level except for class or resource files that are located at the root directory. URLClassLoader uses the mapping information to determine where to fetch an extension class or resource from.
Since:
1.3
Author:
Zhenghua Li
  • Field Details

  • Constructor Details

    • JarIndex

      public JarIndex()
      Constructs a new, empty jar index.
    • JarIndex

      public JarIndex(InputStream is) throws IOException
      Constructs a new index from the specified input stream.
      Parameters:
      is - the input stream containing the index data
      Throws:
      IOException
    • JarIndex

      public JarIndex(String[] files) throws IOException
      Constructs a new index for the specified list of jar files.
      Parameters:
      files - the list of jar files to construct the index from.
      Throws:
      IOException
  • Method Details

    • getJarIndex

      public static JarIndex getJarIndex(JarFile jar, MetaIndex metaIndex) throws IOException
      Returns the jar index, or null if none.
      Parameters:
      jar - the JAR file to get the index from.
      Throws:
      IOException - if an I/O error has occurred.
    • getJarFiles

      public String[] getJarFiles()
      Returns the jar files that are defined in this index.
    • get

      public LinkedList get(String fileName)
      Returns the list of jar files that are mapped to the file.
      Parameters:
      fileName - the key of the mapping
    • add

      public void add(String fileName, String jarName)
      Add the mapping from the specified file to the specified jar file. If there were no mapping for the package of the specified file before, a new linked list will be created, the jar file is added to the list and a new mapping from the package to the jar file list is added to the hashmap. Otherwise, the jar file will be added to the end of the existing list.
      Parameters:
      fileName - the file name
      jarName - the jar file that the file is mapped to
    • write

      public void write(OutputStream out) throws IOException
      Writes the index to the specified OutputStream
      Parameters:
      out - the output stream
      Throws:
      IOException - if an I/O error has occurred
    • read

      public void read(InputStream is) throws IOException
      Reads the index from the specified InputStream.
      Parameters:
      is - the input stream
      Throws:
      IOException - if an I/O error has occurred
    • merge

      public void merge(JarIndex toIndex, String path)
      Merges the current index into another index, taking into account the relative path of the current index.
      Parameters:
      toIndex - The destination index which the current index will merge into.
      path - The relative path of the this index to the destination index.