Package com.sun.ts.lib.util.sec.misc
Class JarIndex
java.lang.Object
com.sun.ts.lib.util.sec.misc.JarIndex
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 Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionJarIndex()
Constructs a new, empty jar index.JarIndex
(InputStream is) Constructs a new index from the specified input stream.Constructs a new index for the specified list of jar files. -
Method Summary
Modifier and TypeMethodDescriptionvoid
Add the mapping from the specified file to the specified jar file.Returns the list of jar files that are mapped to the file.String[]
Returns the jar files that are defined in this index.static JarIndex
getJarIndex
(JarFile jar, MetaIndex metaIndex) Returns the jar index, ornull
if none.void
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
-
Field Details
-
INDEX_NAME
The index file name.- See Also:
-
-
Constructor Details
-
JarIndex
public JarIndex()Constructs a new, empty jar index. -
JarIndex
Constructs a new index from the specified input stream.- Parameters:
is
- the input stream containing the index data- Throws:
IOException
-
JarIndex
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
Returns the jar index, ornull
if none.- Parameters:
jar
- the JAR file to get the index from.- Throws:
IOException
- if an I/O error has occurred.
-
getJarFiles
Returns the jar files that are defined in this index. -
get
Returns the list of jar files that are mapped to the file.- Parameters:
fileName
- the key of the mapping
-
add
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 namejarName
- the jar file that the file is mapped to
-
write
Writes the index to the specified OutputStream- Parameters:
out
- the output stream- Throws:
IOException
- if an I/O error has occurred
-
read
Reads the index from the specified InputStream.- Parameters:
is
- the input stream- Throws:
IOException
- if an I/O error has occurred
-
merge
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.
-