]> gitweb.fperrin.net Git - Dictionary.git/blob - jars/icu4j-4_4_2-src/tools/misc/src/com/ibm/icu/dev/tool/translit/genIndexFilters.java
go
[Dictionary.git] / jars / icu4j-4_4_2-src / tools / misc / src / com / ibm / icu / dev / tool / translit / genIndexFilters.java
1 /*\r
2 **********************************************************************\r
3 *   Copyright (c) 2001-2010, International Business Machines\r
4 *   Corporation and others.  All Rights Reserved.\r
5 **********************************************************************\r
6 *   Date        Name        Description\r
7 *   11/29/2001  aliu        Creation.\r
8 **********************************************************************\r
9 */\r
10 package com.ibm.icu.dev.tool.translit;\r
11 import com.ibm.icu.text.Normalizer;\r
12 import com.ibm.icu.text.Transliterator;\r
13 import com.ibm.icu.text.UnicodeSet;\r
14 \r
15 /**\r
16  * Adjunct class to getIndexFilters.bat.  Just generates source sets\r
17  * and their closures.\r
18  *\r
19  * Usage: ID [ NFD|NFKD [lower] ]\r
20  *\r
21  *   java -classpath classes com.ibm.icu.dev.tool.translit.genIndexFilters\r
22  *                              Latin-Greek NFD lower\r
23  *\r
24  * The 'NFD'|'NFKD' and 'lower' args are optional, but 'lower' can\r
25  * only be specified if 'NFD' or 'NFKD' is.\r
26  *\r
27  * DO NOT CHANGE OUTPUT FORMAT.  This tool's output is read by a Perl\r
28  * script.\r
29  */\r
30 public class genIndexFilters {\r
31 \r
32     public static void main(String[] args) {\r
33         Normalizer.Mode m = Normalizer.NONE;\r
34         boolean lowerFirst = false;\r
35         if (args.length >= 2) {\r
36             if (args[1].equalsIgnoreCase("NFD")) {\r
37                 m = Normalizer.NFD;\r
38             } else if (args[1].equalsIgnoreCase("NFKD")) {\r
39                 m = Normalizer.NFKD;\r
40             } else {\r
41                 usage();\r
42             }\r
43         }\r
44         if (args.length >= 3) {\r
45             if (args[2].equalsIgnoreCase("lower")) {\r
46                 lowerFirst = true;\r
47             } else {\r
48                 usage();\r
49             }\r
50         }\r
51         if (args.length > 3) {\r
52             usage();\r
53         }\r
54         showSourceSet(args[0], m, lowerFirst);\r
55     }\r
56 \r
57     static void showSourceSet(String ID, Normalizer.Mode m, boolean lowerFirst) {\r
58         Transliterator t = Transliterator.getInstance(ID);\r
59         UnicodeSet sourceSet = t.getSourceSet();\r
60         if (m != Normalizer.NONE || lowerFirst) {\r
61             UnicodeSetClosure.close(sourceSet, m, lowerFirst);\r
62         }\r
63         System.out.println(sourceSet.toPattern(true));\r
64     }\r
65 \r
66     static void usage() {\r
67         System.err.println("Usage: ID [ NFD|NFKD [lower] ]");\r
68         System.exit(1);\r
69     }\r
70 }\r