7930ab9e5c02b89fb3758ccc9a7b57bee427d482
[jalviewjs.git] / site / swingjs / j2s / jssun / misc / MetaIndex.js
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
9 function (jar) {\r
10 return jssun.misc.MetaIndex.getJarMap ().get (jar);\r
11 }, "java.io.File");\r
12 c$.registerDirectory = Clazz.defineMethod (c$, "registerDirectory", \r
13 function (dir) {\r
14 var indexFile =  new java.io.File (dir, "meta-index");\r
15 if (indexFile.exists ()) {\r
16 try {\r
17 var reader =  new java.io.BufferedReader ( new java.io.FileReader (indexFile));\r
18 var line = null;\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
26 reader.close ();\r
27 return;\r
28 }while ((line = reader.readLine ()) != null) {\r
29 switch (line.charAt (0)) {\r
30 case '!':\r
31 case '#':\r
32 case '@':\r
33 {\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
36 contents.clear ();\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
42 }break;\r
43 }case '%':\r
44 break;\r
45 default:\r
46 {\r
47 contents.add (line);\r
48 }}\r
49 }\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
52 }reader.close ();\r
53 } catch (e) {\r
54 if (Clazz.exceptionOf (e, java.io.IOException)) {\r
55 } else {\r
56 throw e;\r
57 }\r
58 }\r
59 }}, "java.io.File");\r
60 Clazz.defineMethod (c$, "mayContain", \r
61 function (entry) {\r
62 if (this.isClassOnlyJar && !entry.endsWith (".class")) {\r
63 return false;\r
64 }var conts = this.contents;\r
65 for (var i = 0; i < conts.length; i++) {\r
66 if (entry.startsWith (conts[i])) {\r
67 return true;\r
68 }}\r
69 return false;\r
70 }, "~S");\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
79  function () {\r
80 if (jssun.misc.MetaIndex.jarMap == null) {\r
81 {\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
85 });\r
86 Clazz.defineStatics (c$,\r
87 "jarMap", null);\r
88 });\r