blob: 578adfe85973f80055a8fbd3a8b8ee88e2cb31a6 [file] [log] [blame]
/*
**********************************************************************
* Copyright (c) 2001-2010, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
* Date Name Description
* 11/29/2001 aliu Creation.
**********************************************************************
*/
package com.ibm.icu.dev.tool.translit;
import com.ibm.icu.text.Normalizer;
import com.ibm.icu.text.Transliterator;
import com.ibm.icu.text.UnicodeSet;
/**
* Adjunct class to getIndexFilters.bat. Just generates source sets
* and their closures.
*
* Usage: ID [ NFD|NFKD [lower] ]
*
* java -classpath classes com.ibm.icu.dev.tool.translit.genIndexFilters
* Latin-Greek NFD lower
*
* The 'NFD'|'NFKD' and 'lower' args are optional, but 'lower' can
* only be specified if 'NFD' or 'NFKD' is.
*
* DO NOT CHANGE OUTPUT FORMAT. This tool's output is read by a Perl
* script.
*/
public class genIndexFilters {
public static void main(String[] args) {
Normalizer.Mode m = Normalizer.NONE;
boolean lowerFirst = false;
if (args.length >= 2) {
if (args[1].equalsIgnoreCase("NFD")) {
m = Normalizer.NFD;
} else if (args[1].equalsIgnoreCase("NFKD")) {
m = Normalizer.NFKD;
} else {
usage();
}
}
if (args.length >= 3) {
if (args[2].equalsIgnoreCase("lower")) {
lowerFirst = true;
} else {
usage();
}
}
if (args.length > 3) {
usage();
}
showSourceSet(args[0], m, lowerFirst);
}
static void showSourceSet(String ID, Normalizer.Mode m, boolean lowerFirst) {
Transliterator t = Transliterator.getInstance(ID);
UnicodeSet sourceSet = t.getSourceSet();
if (m != Normalizer.NONE || lowerFirst) {
UnicodeSetClosure.close(sourceSet, m, lowerFirst);
}
System.out.println(sourceSet.toPattern(true));
}
static void usage() {
System.err.println("Usage: ID [ NFD|NFKD [lower] ]");
System.exit(1);
}
}