public class

JarIndex

extends Object
java.lang.Object
   ↳ sun.misc.JarIndex

Class Overview

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.

Summary

Constants
String INDEX_NAME The index file name.
Public Constructors
JarIndex()
Constructs a new, empty jar index.
JarIndex(InputStream is)
Constructs a new index from the specified input stream.
JarIndex(String[] files)
Constructs a new index for the specified list of jar files.
Public Methods
void add(String fileName, String jarName)
Add the mapping from the specified file to the specified jar file.
LinkedList get(String fileName)
Returns the list of jar files that are mapped to the file.
String[] getJarFiles()
Returns the jar files that are defined in this index.
static JarIndex getJarIndex(JarFile jar, MetaIndex metaIndex)
Returns the jar index, or null if none.
void merge(JarIndex toIndex, String path)
Merges the current index into another index, taking into account the relative path of the current index.
void read(InputStream is)
Reads the index from the specified InputStream.
void write(OutputStream out)
Writes the index to the specified OutputStream
[Expand]
Inherited Methods
From class java.lang.Object

Constants

public static final String INDEX_NAME

The index file name.

Constant Value: "META-INF/INDEX.LIST"

Public Constructors

public JarIndex ()

Constructs a new, empty jar index.

public JarIndex (InputStream is)

Constructs a new index from the specified input stream.

Parameters
is the input stream containing the index data
Throws
IOException

public JarIndex (String[] files)

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

Public Methods

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

public LinkedList get (String fileName)

Returns the list of jar files that are mapped to the file.

Parameters
fileName the key of the mapping

public String[] getJarFiles ()

Returns the jar files that are defined in this index.

public static JarIndex getJarIndex (JarFile jar, MetaIndex metaIndex)

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.

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.

public void read (InputStream is)

Reads the index from the specified InputStream.

Parameters
is the input stream
Throws
IOException if an I/O error has occurred

public void write (OutputStream out)

Writes the index to the specified OutputStream

Parameters
out the output stream
Throws
IOException if an I/O error has occurred