52 LinkedHashMap<String, Charset> charsets = getCharsets( |
53 LinkedHashMap<String, Charset> charsets = getCharsets( |
53 new File(args[SRC_DIR], args[CHARSETS])); |
54 new File(args[SRC_DIR], args[CHARSETS])); |
54 String[] osStdcs = getOSStdCSList(new File(args[SRC_DIR], args[OS])); |
55 String[] osStdcs = getOSStdCSList(new File(args[SRC_DIR], args[OS])); |
55 boolean hasBig5_HKSCS = false; |
56 boolean hasBig5_HKSCS = false; |
56 boolean hasMS950_HKSCS_XP = false; |
57 boolean hasMS950_HKSCS_XP = false; |
|
58 boolean hasEUC_TW = false; |
57 for (String name : osStdcs) { |
59 for (String name : osStdcs) { |
58 Charset cs = charsets.get(name); |
60 Charset cs = charsets.get(name); |
59 if (cs != null) { |
61 if (cs != null) { |
60 cs.pkgName = "sun.nio.cs"; |
62 cs.pkgName = "sun.nio.cs"; |
61 } |
63 } |
62 if (name.equals("Big5_HKSCS")) { |
64 if (name.equals("Big5_HKSCS")) { |
63 hasBig5_HKSCS = true; |
65 hasBig5_HKSCS = true; |
64 } else if (name.equals("MS950_HKSCS_XP")) { |
66 } else if (name.equals("MS950_HKSCS_XP")) { |
65 hasMS950_HKSCS_XP = true; |
67 hasMS950_HKSCS_XP = true; |
|
68 } else if (name.equals("EUC_TW")) { |
|
69 hasEUC_TW = true; |
66 } |
70 } |
67 } |
71 } |
68 for (Charset cs : charsets.values()) { |
72 for (Charset cs : charsets.values()) { |
69 if (isStandard && cs.pkgName.equals("sun.nio.cs.ext") || |
73 if (isStandard && cs.pkgName.equals("sun.nio.cs.ext") || |
70 isExtended && cs.pkgName.equals("sun.nio.cs")) { |
74 isExtended && cs.pkgName.equals("sun.nio.cs")) { |
87 cs, args[SRC_DIR], args[DST_DIR], |
91 cs, args[SRC_DIR], args[DST_DIR], |
88 "DoubleByte-X.java.template"); |
92 "DoubleByte-X.java.template"); |
89 } |
93 } |
90 } |
94 } |
91 // provider StandardCharsets.java / ExtendedCharsets.java |
95 // provider StandardCharsets.java / ExtendedCharsets.java |
92 SPI.genClass(args[TYPE], charsets, args[SRC_DIR], args[DST_DIR], args[TEMPLATE]); |
96 SPI.genClass(args[TYPE], charsets, |
|
97 args[SRC_DIR], args[DST_DIR], |
|
98 args[TEMPLATE], |
|
99 args[OS].endsWith("windows") ? "windows" : "unix"); |
93 |
100 |
94 // HKSCSMapping2008/XP.java goes together with Big5/MS950XP_HKSCS |
101 // HKSCSMapping2008/XP.java goes together with Big5/MS950XP_HKSCS |
95 if (isStandard && hasBig5_HKSCS || isExtended && !hasBig5_HKSCS) { |
102 if (isStandard && hasBig5_HKSCS || isExtended && !hasBig5_HKSCS) { |
96 HKSCS.genClass2008(args[SRC_DIR], args[DST_DIR], |
103 HKSCS.genClass2008(args[SRC_DIR], args[DST_DIR], |
97 isStandard ? "sun.nio.cs" : "sun.nio.cs.ext"); |
104 isStandard ? "sun.nio.cs" : "sun.nio.cs.ext", |
|
105 new File(args[COPYRIGHT_SRC], "HKSCS.java")); |
98 } |
106 } |
99 if (isStandard && hasMS950_HKSCS_XP || isExtended && !hasMS950_HKSCS_XP) { |
107 if (isStandard && hasMS950_HKSCS_XP || isExtended && !hasMS950_HKSCS_XP) { |
100 HKSCS.genClassXP(args[SRC_DIR], args[DST_DIR], |
108 HKSCS.genClassXP(args[SRC_DIR], args[DST_DIR], |
101 isStandard ? "sun.nio.cs" : "sun.nio.cs.ext"); |
109 isStandard ? "sun.nio.cs" : "sun.nio.cs.ext", |
102 } |
110 new File(args[COPYRIGHT_SRC], "HKSCS.java")); |
103 } else if ("euctw".equals(args[TYPE])) { |
111 } |
104 EUC_TW.genClass(args); |
112 if (isStandard && hasEUC_TW) { |
|
113 EUC_TW.genClass("sun.nio.cs", args); |
|
114 } |
|
115 if (!isStandard && !hasEUC_TW) { |
|
116 EUC_TW.genClass("sun.nio.cs.ext", args); |
|
117 } |
105 } else if ("sjis0213".equals(args[TYPE])) { |
118 } else if ("sjis0213".equals(args[TYPE])) { |
106 JIS0213.genClass(args); |
119 JIS0213.genClass(args); |
107 } else if ("hkscs".equals(args[TYPE])) { |
120 } else if ("hkscs".equals(args[TYPE])) { |
108 HKSCS.genClass2001(args); |
121 HKSCS.genClass2001(args); |
109 } |
122 } |