4225d7a744f7326217a4ed3e2fbf63066f860e61
[jalviewjs.git] / site / swingjs / j2s / jssun / misc / MetaIndex.js
1 Clazz.declarePackage ("jssun.misc");
2 Clazz.load (null, "jssun.misc.MetaIndex", ["java.io.BufferedReader", "$.File", "$.FileReader", "java.lang.IllegalArgumentException", "java.util.ArrayList", "$.HashMap"], function () {
3 c$ = Clazz.decorateAsClass (function () {
4 this.contents = null;
5 this.isClassOnlyJar = false;
6 Clazz.instantialize (this, arguments);
7 }, jssun.misc, "MetaIndex");
8 c$.forJar = Clazz.defineMethod (c$, "forJar", 
9 function (jar) {
10 return jssun.misc.MetaIndex.getJarMap ().get (jar);
11 }, "java.io.File");
12 c$.registerDirectory = Clazz.defineMethod (c$, "registerDirectory", 
13 function (dir) {
14 var indexFile =  new java.io.File (dir, "meta-index");
15 if (indexFile.exists ()) {
16 try {
17 var reader =  new java.io.BufferedReader ( new java.io.FileReader (indexFile));
18 var line = null;
19 var curJarName = null;
20 var isCurJarContainClassOnly = false;
21 var contents =  new java.util.ArrayList ();
22 var map = jssun.misc.MetaIndex.getJarMap ();
23 dir = dir.getCanonicalFile ();
24 line = reader.readLine ();
25 if (line == null || !line.equals ("% VERSION 2")) {
26 reader.close ();
27 return;
28 }while ((line = reader.readLine ()) != null) {
29 switch (line.charAt (0)) {
30 case '!':
31 case '#':
32 case '@':
33 {
34 if ((curJarName != null) && (contents.size () > 0)) {
35 map.put ( new java.io.File (dir, curJarName),  new jssun.misc.MetaIndex (contents, isCurJarContainClassOnly));
36 contents.clear ();
37 }curJarName = line.substring (2);
38 if (line.charAt (0) == '!') {
39 isCurJarContainClassOnly = true;
40 } else if (isCurJarContainClassOnly) {
41 isCurJarContainClassOnly = false;
42 }break;
43 }case '%':
44 break;
45 default:
46 {
47 contents.add (line);
48 }}
49 }
50 if ((curJarName != null) && (contents.size () > 0)) {
51 map.put ( new java.io.File (dir, curJarName),  new jssun.misc.MetaIndex (contents, isCurJarContainClassOnly));
52 }reader.close ();
53 } catch (e) {
54 if (Clazz.exceptionOf (e, java.io.IOException)) {
55 } else {
56 throw e;
57 }
58 }
59 }}, "java.io.File");
60 Clazz.defineMethod (c$, "mayContain", 
61 function (entry) {
62 if (this.isClassOnlyJar && !entry.endsWith (".class")) {
63 return false;
64 }var conts = this.contents;
65 for (var i = 0; i < conts.length; i++) {
66 if (entry.startsWith (conts[i])) {
67 return true;
68 }}
69 return false;
70 }, "~S");
71 Clazz.makeConstructor (c$, 
72  function (entries, isClassOnlyJar) {
73 if (entries == null) {
74 throw  new IllegalArgumentException ();
75 }this.contents = entries.toArray ( new Array (0));
76 this.isClassOnlyJar = isClassOnlyJar;
77 }, "java.util.List,~B");
78 c$.getJarMap = Clazz.defineMethod (c$, "getJarMap", 
79  function () {
80 if (jssun.misc.MetaIndex.jarMap == null) {
81 {
82 if (jssun.misc.MetaIndex.jarMap == null) {
83 jssun.misc.MetaIndex.jarMap =  new java.util.HashMap ();
84 }}}return jssun.misc.MetaIndex.jarMap;
85 });
86 Clazz.defineStatics (c$,
87 "jarMap", null);
88 });