1 Clazz.declarePackage ("jssun.misc");
\r
2 Clazz.load (null, "jssun.misc.MetaIndex", ["java.io.BufferedReader", "$.File", "$.FileReader", "java.lang.IllegalArgumentException", "java.util.ArrayList", "$.HashMap"], function () {
\r
3 c$ = Clazz.decorateAsClass (function () {
\r
4 this.contents = null;
\r
5 this.isClassOnlyJar = false;
\r
6 Clazz.instantialize (this, arguments);
\r
7 }, jssun.misc, "MetaIndex");
\r
8 c$.forJar = Clazz.defineMethod (c$, "forJar",
\r
10 return jssun.misc.MetaIndex.getJarMap ().get (jar);
\r
12 c$.registerDirectory = Clazz.defineMethod (c$, "registerDirectory",
\r
14 var indexFile = new java.io.File (dir, "meta-index");
\r
15 if (indexFile.exists ()) {
\r
17 var reader = new java.io.BufferedReader ( new java.io.FileReader (indexFile));
\r
19 var curJarName = null;
\r
20 var isCurJarContainClassOnly = false;
\r
21 var contents = new java.util.ArrayList ();
\r
22 var map = jssun.misc.MetaIndex.getJarMap ();
\r
23 dir = dir.getCanonicalFile ();
\r
24 line = reader.readLine ();
\r
25 if (line == null || !line.equals ("% VERSION 2")) {
\r
28 }while ((line = reader.readLine ()) != null) {
\r
29 switch (line.charAt (0)) {
\r
34 if ((curJarName != null) && (contents.size () > 0)) {
\r
35 map.put ( new java.io.File (dir, curJarName), new jssun.misc.MetaIndex (contents, isCurJarContainClassOnly));
\r
37 }curJarName = line.substring (2);
\r
38 if (line.charAt (0) == '!') {
\r
39 isCurJarContainClassOnly = true;
\r
40 } else if (isCurJarContainClassOnly) {
\r
41 isCurJarContainClassOnly = false;
\r
47 contents.add (line);
\r
50 if ((curJarName != null) && (contents.size () > 0)) {
\r
51 map.put ( new java.io.File (dir, curJarName), new jssun.misc.MetaIndex (contents, isCurJarContainClassOnly));
\r
54 if (Clazz.exceptionOf (e, java.io.IOException)) {
\r
59 }}, "java.io.File");
\r
60 Clazz.defineMethod (c$, "mayContain",
\r
62 if (this.isClassOnlyJar && !entry.endsWith (".class")) {
\r
64 }var conts = this.contents;
\r
65 for (var i = 0; i < conts.length; i++) {
\r
66 if (entry.startsWith (conts[i])) {
\r
71 Clazz.makeConstructor (c$,
\r
72 function (entries, isClassOnlyJar) {
\r
73 if (entries == null) {
\r
74 throw new IllegalArgumentException ();
\r
75 }this.contents = entries.toArray ( new Array (0));
\r
76 this.isClassOnlyJar = isClassOnlyJar;
\r
77 }, "java.util.List,~B");
\r
78 c$.getJarMap = Clazz.defineMethod (c$, "getJarMap",
\r
80 if (jssun.misc.MetaIndex.jarMap == null) {
\r
82 if (jssun.misc.MetaIndex.jarMap == null) {
\r
83 jssun.misc.MetaIndex.jarMap = new java.util.HashMap ();
\r
84 }}}return jssun.misc.MetaIndex.jarMap;
\r
86 Clazz.defineStatics (c$,
\r