/** ******************************************************************************* * Copyright (C) 1996-2001, International Business Machines Corporation and * * others. All Rights Reserved. * ******************************************************************************* * * $Source: /xsrl/Nsvn/icu/unicodetools/com/ibm/text/UCA/WriteCharts.java,v $ * $Date: 2001/09/19 23:31:50 $ * $Revision: 1.1 $ * ******************************************************************************* */ package com.ibm.text.UCA; import java.util.*; import java.io.*; import com.ibm.text.UCD.*; import com.ibm.text.utility.*; import com.ibm.text.UTF16; public class WriteCharts implements UCD_Types { static UCD ucd; static public void test(UCA uca) throws IOException { uca.setAlternate(UCA.NON_IGNORABLE); ucd = UCD.make(); Normalizer nfd = new Normalizer(Normalizer.NFD); UCA.UCAContents cc = uca.getContents(UCA.FIXED_CE, null); // nfd instead of null if skipping decomps Set set = new TreeSet(); while (true) { String x = cc.next(); if (x == null) break; set.add(new Pair(uca.getSortKey(x), x)); } PrintWriter output = null; Iterator it = set.iterator(); int oldScript = -999; int[] scriptCount = new int[LIMIT_SCRIPT]; int counter = 0; int lastPrimary = -1; String lastSortKey = null; int high = uca.getSortKey("a").charAt(0); int variable = UCA.getPrimary(uca.getVariableHigh()); int columnCount = 0; indexFile = Utility.openPrintWriter("CollationCharts\\index_list.html"); indexFile.println("
"); indexFile.println("Help"); while (it.hasNext()) { Utility.dot(counter); Pair p = (Pair) it.next(); String sortKey = (String) p.first; String s = (String) p.second; int cp = UTF16.charAt(s,0); byte script = ucd.getScript(cp); if (script == KATAKANA_SCRIPT) script = HIRAGANA_SCRIPT; else if (script == INHERITED_SCRIPT) script = COMMON_SCRIPT; // get first non-zero primary int primary = sortKey.charAt(0); if (sortKey.length() < 4) script = -3; else if (primary == 0) script = -2; else if (primary < variable) script = -1; else if (primary < high) script = COMMON_SCRIPT; if (script != oldScript && (oldScript < COMMON_SCRIPT || script != COMMON_SCRIPT && script != INHERITED_SCRIPT)) { closeFile(output); output = null; } if (output == null) { ++scriptCount[script+3]; if (scriptCount[script+3] > 1) { System.out.println("\t\tFAIL: " + scriptCount[script+3] + ", " + ucd.getScriptID_fromIndex(script) + ", " + ucd.getCodeAndName(s)); } output = openFile(scriptCount[script+3], script); oldScript = script; } int strength = 6; if (lastSortKey != null && sortKey.charAt(0) == lastSortKey.charAt(0)) { strength = uca.strengthDifference(sortKey, lastSortKey); if (strength < 0) strength = -strength; } lastSortKey = sortKey; String breaker = ""; if (columnCount > 10 || strength > 5) { if (strength <= 5) breaker = "