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