/** ******************************************************************************* * Copyright (C) 1996-2001, International Business Machines Corporation and * * others. All Rights Reserved. * ******************************************************************************* * * $Source: /xsrl/Nsvn/icu/unicodetools/com/ibm/text/UCD/GenerateStandardizedVariants.java,v $ * $Date: 2003/03/12 16:01:26 $ * $Revision: 1.2 $ * ******************************************************************************* */ package com.ibm.text.UCD; import com.ibm.text.utility.*; import com.ibm.icu.text.UTF16; import com.ibm.icu.text.UnicodeSet; import java.util.*; import java.io.*; public final class GenerateStandardizedVariants implements UCD_Types { static final boolean DEBUG = false; static public String showVarGlyphs(String code0, String code1, String shape, String description) { if (DEBUG) System.out.println(code0 + ", " + code1 + ", [" + shape + "]"); String abbShape = ""; if (shape.length() != 0) { abbShape = '-' + shape.substring(0,4); if (description.indexOf("feminine") >= 0) abbShape += "fem"; } return ""; } /* # Field 0: the variation sequence # Field 1: the description of the desired appearance # Field 2: where the appearance is only different in in particular shaping environments # this field lists them. The possible values are: isolated, initial, medial, final. # If more than one is present, there are spaces between them. */ static public void generate() throws IOException { Default.setUCD(); // read the data and compose the table String table = "
Rep Glyph | Character Sequence | Context | Alt Glyph | Description of variant appearance |
---|---|---|---|---|
\n"; table += " | " + splits[0] + " | \n"; String shape = splits[2].trim(); if (shape.equals("all")) shape = ""; table += "" + Utility.replace(shape, " ", " ") + " | \n";
// http://www.unicode.org/cgi-bin/varglyph?24-1820-180B-fina
// http://www.unicode.org/cgi-bin/varglyph?24-222A-FE00
table += ""; if (shape.length() == 0) { table += showVarGlyphs(codes[0], codes[1], "", ""); } else { int shapeCount = Utility.split(shape, ' ', shapes); for (int i = 0; i < shapeCount; ++i) { if (i != 0) table += " "; table += showVarGlyphs(codes[0], codes[1], shapes[i], splits[1]); } } table += " | \n"; table += "" + Default.ucd.getName(code) + " " + splits[1] + " | \n"; table += "