Home | History | Annotate | Download | only in tool
      1 package org.unicode.cldr.tool;
      2 
      3 import java.io.IOException;
      4 import java.io.PrintWriter;
      5 import java.util.Set;
      6 import java.util.TreeSet;
      7 
      8 import org.unicode.cldr.draft.FileUtilities;
      9 import org.unicode.cldr.draft.ScriptMetadata;
     10 import org.unicode.cldr.draft.ScriptMetadata.Info;
     11 import org.unicode.cldr.util.CLDRPaths;
     12 import org.unicode.cldr.util.FileCopier;
     13 
     14 import com.ibm.icu.dev.util.CollectionUtilities;
     15 import com.ibm.icu.impl.Row;
     16 import com.ibm.icu.impl.Row.R3;
     17 import com.ibm.icu.impl.Utility;
     18 import com.ibm.icu.lang.UCharacter;
     19 import com.ibm.icu.util.VersionInfo;
     20 
     21 public class GenerateScriptMetadata {
     22     public static void main(String[] args) throws IOException {
     23         PrintWriter out = FileUtilities.openUTF8Writer(CLDRPaths.COMMON_DIRECTORY + "/properties", "scriptMetadata.txt");
     24         // PrintWriter out = new PrintWriter(System.out);
     25 //        FileUtilities.appendFile(GenerateScriptMetadata.class, "GenerateScriptMetadata.txt", out);
     26         FileCopier.copy(GenerateScriptMetadata.class, "GenerateScriptMetadata.txt", out);
     27 
     28         Set<R3<Integer, String, Info>> sorted = new TreeSet<R3<Integer, String, Info>>();
     29         for (String script : ScriptMetadata.getScripts()) {
     30             Info i = ScriptMetadata.getInfo(script);
     31             R3<Integer, String, Info> r = Row.of(i.rank, script, i);
     32             sorted.add(r);
     33         }
     34         if (ScriptMetadata.errors.size() > 0) {
     35             System.err.println(CollectionUtilities.join(ScriptMetadata.errors, "\n\t"));
     36             //throw new IllegalArgumentException();
     37         }
     38         VersionInfo currentUnicodeVersion = UCharacter.getUnicodeVersion();
     39         for (R3<Integer, String, Info> s : sorted) {
     40             String script = s.get1();
     41             Info i = s.get2();
     42             String comment = i.age.compareTo(currentUnicodeVersion) > 0 ? "  # provisional data for future Unicode " + i.age.getVersionString(2, 2) + " script"
     43                 : "";
     44             out.println(script
     45                 + "; " + i.rank
     46                 + "; " + Utility.hex(i.sampleChar)
     47                 + "; " + i.originCountry
     48                 + "; " + i.density
     49                 // + "; " + i.likelyLanguage
     50                 + "; " + i.idUsage
     51                 + "; " + i.rtl
     52                 + "; " + i.lbLetters
     53                 + "; " + i.shapingReq
     54                 + "; " + i.ime
     55                 + "; " + i.hasCase
     56                 + comment);
     57             // RTL? LB letters? Shaping Req? IME? Has Case?
     58         }
     59         out.println();
     60         out.println("# EOF");
     61         out.close();
     62     }
     63 }
     64