From 7764f6c3dff01f3eac0a17e57506244b1c97bb5a Mon Sep 17 00:00:00 2001 From: John Wilcock Date: Fri, 7 Jun 2024 08:42:43 -0700 Subject: [PATCH] Rebase --- .../org/unicode/xml/AttributeResolver.java | 184 +- .../java/org/unicode/xml/UCDDataResolver.java | 122 +- .../java/org/unicode/xml/UCDXMLWriter.java | 57 +- .../org/unicode/xml/UcdPropertyDetail.java | 3043 ++++++++++++----- .../org/unicode/xml/UcdSectionDetail.java | 206 +- .../src/main/java/org/unicode/xml/UcdXML.java | 505 ++- 6 files changed, 2884 insertions(+), 1233 deletions(-) diff --git a/unicodetools/src/main/java/org/unicode/xml/AttributeResolver.java b/unicodetools/src/main/java/org/unicode/xml/AttributeResolver.java index cb173b00c..87d88dbde 100644 --- a/unicodetools/src/main/java/org/unicode/xml/AttributeResolver.java +++ b/unicodetools/src/main/java/org/unicode/xml/AttributeResolver.java @@ -1,32 +1,38 @@ package org.unicode.xml; import com.ibm.icu.dev.util.UnicodeMap; +import java.util.*; import org.unicode.cldr.draft.FileUtilities; import org.unicode.props.*; -import java.util.*; - public class AttributeResolver { private final IndexUnicodeProperties indexUnicodeProperties; private final UnicodeMap map_age; private final UnicodeMap map_bidi_class; - private final UnicodeMap map_bidi_paired_bracket_type; + private final UnicodeMap + map_bidi_paired_bracket_type; private final UnicodeMap map_block; - private final UnicodeMap map_canonical_combining_class; + private final UnicodeMap + map_canonical_combining_class; private final UnicodeMap map_decomposition_type; private final UnicodeMap map_do_not_emit_type; private final UnicodeMap map_east_asian_width; private final UnicodeMap map_general_category; - private final UnicodeMap map_grapheme_cluster_break; - private final UnicodeMap map_hangul_syllable_type; + private final UnicodeMap + map_grapheme_cluster_break; + private final UnicodeMap + map_hangul_syllable_type; private final UnicodeMap map_identifier_status; private final UnicodeMap map_identifier_type; private final UnicodeMap map_idn_2008; private final UnicodeMap map_idn_status; - private final UnicodeMap map_indic_conjunct_break; - private final UnicodeMap map_indic_positional_category; - private final UnicodeMap map_indic_syllabic_category; + private final UnicodeMap + map_indic_conjunct_break; + private final UnicodeMap + map_indic_positional_category; + private final UnicodeMap + map_indic_syllabic_category; private final UnicodeMap map_jamo_short_name; private final UnicodeMap map_joining_group; private final UnicodeMap map_joining_type; @@ -40,41 +46,50 @@ public class AttributeResolver { private final UnicodeMap map_script; private final UnicodeMap map_script_extensions; private final UnicodeMap map_sentence_break; - private final UnicodeMap map_vertical_orientation; + private final UnicodeMap + map_vertical_orientation; private final UnicodeMap map_word_break; private final HashMap> map_NameAlias; - //If there is a change in any of these properties between two adjacent characters, it will result in a new range. + // If there is a change in any of these properties between two adjacent characters, it will + // result in a new range. private final UcdProperty[] rangeDefiningProperties = { - UcdProperty.Age, - UcdProperty.Bidi_Class, - UcdProperty.Block, - UcdProperty.Decomposition_Mapping, - UcdProperty.Numeric_Type, - UcdProperty.Numeric_Value, - UcdProperty.Vertical_Orientation + UcdProperty.Age, + UcdProperty.Bidi_Class, + UcdProperty.Block, + UcdProperty.Decomposition_Mapping, + UcdProperty.Numeric_Type, + UcdProperty.Numeric_Value, + UcdProperty.Vertical_Orientation }; public AttributeResolver(IndexUnicodeProperties iup) { indexUnicodeProperties = iup; map_age = indexUnicodeProperties.loadEnum(UcdProperty.Age); map_bidi_class = indexUnicodeProperties.loadEnum(UcdProperty.Bidi_Class); - map_bidi_paired_bracket_type = indexUnicodeProperties.loadEnum(UcdProperty.Bidi_Paired_Bracket_Type); + map_bidi_paired_bracket_type = + indexUnicodeProperties.loadEnum(UcdProperty.Bidi_Paired_Bracket_Type); map_block = indexUnicodeProperties.loadEnum(UcdProperty.Block); - map_canonical_combining_class = indexUnicodeProperties.loadEnum(UcdProperty.Canonical_Combining_Class); + map_canonical_combining_class = + indexUnicodeProperties.loadEnum(UcdProperty.Canonical_Combining_Class); map_decomposition_type = indexUnicodeProperties.loadEnum(UcdProperty.Decomposition_Type); map_do_not_emit_type = indexUnicodeProperties.loadEnum(UcdProperty.Do_Not_Emit_Type); map_east_asian_width = indexUnicodeProperties.loadEnum(UcdProperty.East_Asian_Width); map_general_category = indexUnicodeProperties.loadEnum(UcdProperty.General_Category); - map_grapheme_cluster_break = indexUnicodeProperties.loadEnum(UcdProperty.Grapheme_Cluster_Break); - map_hangul_syllable_type = indexUnicodeProperties.loadEnum(UcdProperty.Hangul_Syllable_Type); + map_grapheme_cluster_break = + indexUnicodeProperties.loadEnum(UcdProperty.Grapheme_Cluster_Break); + map_hangul_syllable_type = + indexUnicodeProperties.loadEnum(UcdProperty.Hangul_Syllable_Type); map_identifier_status = indexUnicodeProperties.loadEnum(UcdProperty.Identifier_Status); map_identifier_type = indexUnicodeProperties.loadEnum(UcdProperty.Identifier_Type); map_idn_2008 = indexUnicodeProperties.loadEnum(UcdProperty.Idn_2008); map_idn_status = indexUnicodeProperties.loadEnum(UcdProperty.Idn_Status); - map_indic_conjunct_break = indexUnicodeProperties.loadEnum(UcdProperty.Indic_Conjunct_Break); - map_indic_positional_category = indexUnicodeProperties.loadEnum(UcdProperty.Indic_Positional_Category); - map_indic_syllabic_category = indexUnicodeProperties.loadEnum(UcdProperty.Indic_Syllabic_Category); + map_indic_conjunct_break = + indexUnicodeProperties.loadEnum(UcdProperty.Indic_Conjunct_Break); + map_indic_positional_category = + indexUnicodeProperties.loadEnum(UcdProperty.Indic_Positional_Category); + map_indic_syllabic_category = + indexUnicodeProperties.loadEnum(UcdProperty.Indic_Syllabic_Category); map_jamo_short_name = indexUnicodeProperties.loadEnum(UcdProperty.Jamo_Short_Name); map_joining_group = indexUnicodeProperties.loadEnum(UcdProperty.Joining_Group); map_joining_type = indexUnicodeProperties.loadEnum(UcdProperty.Joining_Type); @@ -86,14 +101,17 @@ public AttributeResolver(IndexUnicodeProperties iup) { map_numeric_type = indexUnicodeProperties.loadEnum(UcdProperty.Numeric_Type); map_other_joining_type = indexUnicodeProperties.loadEnum(UcdProperty.Other_Joining_Type); map_script = indexUnicodeProperties.loadEnum(UcdProperty.Script); - map_script_extensions = indexUnicodeProperties.getProperty(UcdProperty.Script_Extensions).getUnicodeMap(); + map_script_extensions = + indexUnicodeProperties.getProperty(UcdProperty.Script_Extensions).getUnicodeMap(); map_sentence_break = indexUnicodeProperties.loadEnum(UcdProperty.Sentence_Break); - map_vertical_orientation = indexUnicodeProperties.loadEnum(UcdProperty.Vertical_Orientation); + map_vertical_orientation = + indexUnicodeProperties.loadEnum(UcdProperty.Vertical_Orientation); map_word_break = indexUnicodeProperties.loadEnum(UcdProperty.Word_Break); - //UCD code is only set up to read a single Alias value from NameAliases.txt - //Instead, we'll load the Alias and the Type data as part of the constructor. We'll keep in memory as it - //NameAliases isn't too large. + // UCD code is only set up to read a single Alias value from NameAliases.txt + // Instead, we'll load the Alias and the Type data as part of the constructor. We'll keep in + // memory as it + // NameAliases isn't too large. map_NameAlias = loadNameAliases(); } @@ -132,7 +150,6 @@ public String getAlias() { public AliasType getType() { return type; } - } private static class NameAliasComparator implements java.util.Comparator { @@ -145,7 +162,8 @@ public int compare(NameAlias o1, NameAlias o2) { private HashMap> loadNameAliases() { HashMap> nameAliasesByCodepoint = new HashMap<>(); - final PropertyParsingInfo fileInfo = PropertyParsingInfo.getPropertyInfo(UcdProperty.Name_Alias); + final PropertyParsingInfo fileInfo = + PropertyParsingInfo.getPropertyInfo(UcdProperty.Name_Alias); String fullFilename = fileInfo.getFullFileName(indexUnicodeProperties.getUcdVersion()); UcdLineParser parser = new UcdLineParser(FileUtilities.in("", fullFilename)); NameAliasComparator nameAliasComparator = new NameAliasComparator(); @@ -153,11 +171,12 @@ private HashMap> loadNameAliases() { for (UcdLineParser.UcdLine line : parser) { String[] parts = line.getParts(); int codepoint = Integer.parseInt(parts[0], 16); - NameAlias nameAlias = new NameAlias( - parts[1], AliasType.valueOf(parts[2].toUpperCase(Locale.ROOT))); + NameAlias nameAlias = + new NameAlias(parts[1], AliasType.valueOf(parts[2].toUpperCase(Locale.ROOT))); if (nameAliasesByCodepoint.containsKey(codepoint)) { - LinkedList nameAliases = new LinkedList<>(nameAliasesByCodepoint.get(codepoint)); + LinkedList nameAliases = + new LinkedList<>(nameAliasesByCodepoint.get(codepoint)); nameAliases.add(nameAlias); nameAliases.sort(nameAliasComparator); nameAliasesByCodepoint.replace(codepoint, nameAliases); @@ -186,15 +205,21 @@ public String getAttributeValue(UcdProperty prop, int codepoint) { String EqUIdeo = getMappingValue(codepoint, resolvedValue, false, ""); return (EqUIdeo.equals("#")) ? null : EqUIdeo; case kCompatibilityVariant: - String kCompatibilityVariant = getMappingValue(codepoint, resolvedValue, false, "U+"); + String kCompatibilityVariant = + getMappingValue(codepoint, resolvedValue, false, "U+"); return (kCompatibilityVariant.equals("#")) ? "" : kCompatibilityVariant; case kSimplifiedVariant: case kTraditionalVariant: - String kVariant = getMappingValue(codepoint, resolvedValue, isUnihanAttributeRange(codepoint) - , "U+"); + String kVariant = + getMappingValue( + codepoint, + resolvedValue, + isUnihanAttributeRange(codepoint), + "U+"); return (kVariant.equals("#")) ? "" : kVariant; case Bidi_Mirroring_Glyph: - //Returning empty string for bmg to maintain compatibility with older generated files. + // Returning empty string for bmg to maintain compatibility with older + // generated files. String bmg = getMappingValue(codepoint, resolvedValue, false, ""); return (bmg.equals("#")) ? "" : bmg; default: @@ -203,25 +228,30 @@ public String getAttributeValue(UcdProperty prop, int codepoint) { case Miscellaneous: switch (prop) { case Jamo_Short_Name: - //return map_jamo_short_name.get(codepoint).getShortName(); + // return map_jamo_short_name.get(codepoint).getShortName(); return Optional.ofNullable(resolvedValue).orElse(""); case Name: - if (resolvedValue != null && resolvedValue.startsWith("CJK UNIFIED IDEOGRAPH-")) { + if (resolvedValue != null + && resolvedValue.startsWith("CJK UNIFIED IDEOGRAPH-")) { return "CJK UNIFIED IDEOGRAPH-#"; } - if (resolvedValue != null && resolvedValue.startsWith("CJK COMPATIBILITY IDEOGRAPH-")) { + if (resolvedValue != null + && resolvedValue.startsWith("CJK COMPATIBILITY IDEOGRAPH-")) { return "CJK COMPATIBILITY IDEOGRAPH-#"; } - if (resolvedValue != null && resolvedValue.startsWith("TANGUT IDEOGRAPH-")) { + if (resolvedValue != null + && resolvedValue.startsWith("TANGUT IDEOGRAPH-")) { return "TANGUT IDEOGRAPH-#"; } - if (resolvedValue != null && resolvedValue.startsWith("KHITAN SMALL SCRIPT CHARACTER-")) { + if (resolvedValue != null + && resolvedValue.startsWith("KHITAN SMALL SCRIPT CHARACTER-")) { return "KHITAN SMALL SCRIPT CHARACTER-#"; } if (resolvedValue != null && resolvedValue.startsWith("NUSHU CHARACTER-")) { return "NUSHU CHARACTER-#"; } - if (resolvedValue != null && resolvedValue.startsWith("EGYPTIAN HIEROGLYPH-")) { + if (resolvedValue != null + && resolvedValue.startsWith("EGYPTIAN HIEROGLYPH-")) { return "EGYPTIAN HIEROGLYPH-#"; } return Optional.ofNullable(resolvedValue).orElse(""); @@ -246,7 +276,9 @@ public String getAttributeValue(UcdProperty prop, int codepoint) { StringBuilder extensionBuilder = new StringBuilder(); String[] extensions = map_script_extensions.get(codepoint).split("\\|", 0); for (String extension : extensions) { - extensionBuilder.append(UcdPropertyValues.Script_Values.valueOf(extension).getShortName()); + extensionBuilder.append( + UcdPropertyValues.Script_Values.valueOf(extension) + .getShortName()); extensionBuilder.append(" "); } return extensionBuilder.toString().trim(); @@ -262,8 +294,12 @@ public String getAttributeValue(UcdProperty prop, int codepoint) { case Canonical_Combining_Class: return map_canonical_combining_class.get(codepoint).getShortName(); case Decomposition_Type: - //Returning lower case to maintain compatibility with older generated files. - return map_decomposition_type.get(codepoint).getShortName().toLowerCase(Locale.ROOT); + // Returning lower case to maintain compatibility with older generated + // files. + return map_decomposition_type + .get(codepoint) + .getShortName() + .toLowerCase(Locale.ROOT); case Do_Not_Emit_Type: return map_do_not_emit_type.get(codepoint).getShortName(); case East_Asian_Width: @@ -315,26 +351,27 @@ public String getAttributeValue(UcdProperty prop, int codepoint) { default: throw new RuntimeException("Missing Enumerated case"); } - case Binary: { - switch (resolvedValue) { - // Seems overkill to get this from UcdPropertyValues.Binary - case "No": - return "N"; - case "Yes": - return "Y"; - default: - throw new RuntimeException("Unexpected Binary value"); + case Binary: + { + switch (resolvedValue) { + // Seems overkill to get this from UcdPropertyValues.Binary + case "No": + return "N"; + case "Yes": + return "Y"; + default: + throw new RuntimeException("Unexpected Binary value"); + } } - } default: throw new RuntimeException("Missing PropertyType case"); } } public boolean isUnassignedCodepoint(int codepoint) { - return UcdPropertyValues.General_Category_Values.Unassigned.equals(getgc(codepoint)) || - UcdPropertyValues.General_Category_Values.Private_Use.equals(getgc(codepoint)) || - UcdPropertyValues.General_Category_Values.Surrogate.equals(getgc(codepoint)); + return UcdPropertyValues.General_Category_Values.Unassigned.equals(getgc(codepoint)) + || UcdPropertyValues.General_Category_Values.Private_Use.equals(getgc(codepoint)) + || UcdPropertyValues.General_Category_Values.Surrogate.equals(getgc(codepoint)); } public UcdPropertyValues.General_Category_Values getgc(int codepoint) { @@ -357,12 +394,15 @@ public HashMap getNameAliases(int codepoint) { return null; } - private String getMappingValue(int codepoint, String resolvedValue, boolean ignoreUnihanRange, String prefix) { + private String getMappingValue( + int codepoint, String resolvedValue, boolean ignoreUnihanRange, String prefix) { if (null == resolvedValue) { return "#"; } int[] resolvedValueInts = resolvedValue.codePoints().toArray(); - if (resolvedValueInts.length == 1 && resolvedValueInts[0] == codepoint && !ignoreUnihanRange) { + if (resolvedValueInts.length == 1 + && resolvedValueInts[0] == codepoint + && !ignoreUnihanRange) { return "#"; } StringBuilder sb = new StringBuilder(); @@ -375,14 +415,18 @@ private String getMappingValue(int codepoint, String resolvedValue, boolean igno public boolean isDifferentRange(int codepointA, int codepointB) { boolean isDifference = false; for (UcdProperty property : rangeDefiningProperties) { - isDifference = isDifference || - !getAttributeValue(property, codepointA).equals(getAttributeValue(property, codepointB)); + isDifference = + isDifference + || !getAttributeValue(property, codepointA) + .equals(getAttributeValue(property, codepointB)); } return isDifference; } private static String getCPString(int codepoint) { - return String.format("%4s", Integer.toHexString(codepoint)).replace(" ", "0").toUpperCase(Locale.ROOT); + return String.format("%4s", Integer.toHexString(codepoint)) + .replace(" ", "0") + .toUpperCase(Locale.ROOT); } public String getHexString(int codepoint) { @@ -390,12 +434,12 @@ public String getHexString(int codepoint) { } public boolean isUnihanAttributeRange(int codepoint) { - return getAttributeValue(UcdProperty.Unified_Ideograph, codepoint).equals("Y") || - !getAttributeValue(UcdProperty.kCompatibilityVariant, codepoint).isEmpty(); + return getAttributeValue(UcdProperty.Unified_Ideograph, codepoint).equals("Y") + || !getAttributeValue(UcdProperty.kCompatibilityVariant, codepoint).isEmpty(); } public boolean isUnifiedIdeograph(int codepoint) { - return getAttributeValue(UcdProperty.Unified_Ideograph, codepoint).equals("Y") && - getAttributeValue(UcdProperty.Name, codepoint).equals("CJK UNIFIED IDEOGRAPH-#"); + return getAttributeValue(UcdProperty.Unified_Ideograph, codepoint).equals("Y") + && getAttributeValue(UcdProperty.Name, codepoint).equals("CJK UNIFIED IDEOGRAPH-#"); } } diff --git a/unicodetools/src/main/java/org/unicode/xml/UCDDataResolver.java b/unicodetools/src/main/java/org/unicode/xml/UCDDataResolver.java index 1baa4131b..f4b407106 100644 --- a/unicodetools/src/main/java/org/unicode/xml/UCDDataResolver.java +++ b/unicodetools/src/main/java/org/unicode/xml/UCDDataResolver.java @@ -1,16 +1,14 @@ package org.unicode.xml; import com.ibm.icu.util.VersionInfo; +import java.util.*; import org.unicode.cldr.draft.FileUtilities; import org.unicode.props.IndexUnicodeProperties; import org.unicode.props.PropertyParsingInfo; import org.unicode.props.UcdLineParser; -import org.unicode.props.UcdProperty; import org.xml.sax.SAXException; import org.xml.sax.helpers.AttributesImpl; -import java.util.*; - public class UCDDataResolver { private final IndexUnicodeProperties indexUnicodeProperties; @@ -30,24 +28,31 @@ public void buildSection(UcdSectionDetail.UcdSection ucdSection) throws SAXExcep String childTag = ucdSection.getChildTag(); boolean parserWithRange = ucdSection.getParserWithRange(); boolean parserWithMissing = ucdSection.getParserWithMissing(); - UcdSectionComponent[] ucdSectionComponents = ucdSection.getUcdSectionDetail().getUcdSectionComponents(); + UcdSectionComponent[] ucdSectionComponents = + ucdSection.getUcdSectionDetail().getUcdSectionComponents(); if (isCompatibleVersion(minVersion, maxVersion)) { writer.startElement(tag); { for (UcdSectionComponent ucdSectionComponent : ucdSectionComponents) { - if (isCompatibleVersion(ucdSectionComponent.getMinVersion(), ucdSectionComponent.getMaxVersion())) { + if (isCompatibleVersion( + ucdSectionComponent.getMinVersion(), + ucdSectionComponent.getMaxVersion())) { final PropertyParsingInfo fileInfoEVS = - PropertyParsingInfo.getPropertyInfo(ucdSectionComponent.getUcdProperty()); - String fullFilename = fileInfoEVS.getFullFileName(indexUnicodeProperties.getUcdVersion()); - UcdLineParser parser = new UcdLineParser(FileUtilities.in("", fullFilename)); + PropertyParsingInfo.getPropertyInfo( + ucdSectionComponent.getUcdProperty()); + String fullFilename = + fileInfoEVS.getFullFileName(indexUnicodeProperties.getUcdVersion()); + UcdLineParser parser = + new UcdLineParser(FileUtilities.in("", fullFilename)); parser.withRange(parserWithRange); parser.withMissing(parserWithMissing); switch (ucdSection) { case BLOCKS: for (UcdLineParser.UcdLine line : parser) { if (!line.getOriginalLine().startsWith("#")) { - AttributesImpl attributes = getBlockAttributes(namespace, line); + AttributesImpl attributes = + getBlockAttributes(namespace, line); writer.startElement(childTag, attributes); { writer.endElement(childTag); @@ -64,8 +69,9 @@ public void buildSection(UcdSectionDetail.UcdSection ucdSection) throws SAXExcep List names = new ArrayList<>(namedSequences.keySet()); Collections.sort(names); for (String name : names) { - AttributesImpl attributes = getNamedSequenceAttributes(namespace, name, - namedSequences); + AttributesImpl attributes = + getNamedSequenceAttributes( + namespace, name, namedSequences); writer.startElement(childTag, attributes); { writer.endElement(childTag); @@ -74,7 +80,8 @@ public void buildSection(UcdSectionDetail.UcdSection ucdSection) throws SAXExcep break; default: for (UcdLineParser.UcdLine line : parser) { - AttributesImpl attributes = getAttributes(ucdSection, namespace, line); + AttributesImpl attributes = + getAttributes(ucdSection, namespace, line); writer.startElement(childTag, attributes); { writer.endElement(childTag); @@ -88,8 +95,8 @@ public void buildSection(UcdSectionDetail.UcdSection ucdSection) throws SAXExcep } } - private AttributesImpl getAttributes(UcdSectionDetail.UcdSection ucdSection, String namespace, - UcdLineParser.UcdLine line) { + private AttributesImpl getAttributes( + UcdSectionDetail.UcdSection ucdSection, String namespace, UcdLineParser.UcdLine line) { switch (ucdSection) { case CJKRADICALS: return getCJKRadicalAttributes(namespace, line); @@ -102,7 +109,8 @@ private AttributesImpl getAttributes(UcdSectionDetail.UcdSection ucdSection, Str case STANDARDIZEDVARIANTS: return getSVAttributes(namespace, line); default: - throw new IllegalArgumentException("getAttributes failed on an unexpected UcdSection"); + throw new IllegalArgumentException( + "getAttributes failed on an unexpected UcdSection"); } } @@ -110,92 +118,74 @@ private static AttributesImpl getBlockAttributes(String namespace, UcdLineParser String[] parts = line.getParts(); String[] range = parts[0].split("\\.\\."); AttributesImpl attributes = new AttributesImpl(); - attributes.addAttribute( - namespace, "first-cp", "first-cp", "CDATA", range[0]); - attributes.addAttribute( - namespace, "last-cp", "last-cp", "CDATA", range[1]); - attributes.addAttribute( - namespace, "name", "name", "CDATA", parts[1]); + attributes.addAttribute(namespace, "first-cp", "first-cp", "CDATA", range[0]); + attributes.addAttribute(namespace, "last-cp", "last-cp", "CDATA", range[1]); + attributes.addAttribute(namespace, "name", "name", "CDATA", parts[1]); return attributes; } - private static AttributesImpl getCJKRadicalAttributes(String namespace, UcdLineParser.UcdLine line) { + private static AttributesImpl getCJKRadicalAttributes( + String namespace, UcdLineParser.UcdLine line) { String[] parts = line.getParts(); AttributesImpl attributes = new AttributesImpl(); - attributes.addAttribute( - namespace, "number", "number", "CDATA", parts[0]); - attributes.addAttribute( - namespace, "radical", "radical", "CDATA", parts[1]); - attributes.addAttribute( - namespace, "ideograph", "ideograph", "CDATA", parts[2]); + attributes.addAttribute(namespace, "number", "number", "CDATA", parts[0]); + attributes.addAttribute(namespace, "radical", "radical", "CDATA", parts[1]); + attributes.addAttribute(namespace, "ideograph", "ideograph", "CDATA", parts[2]); return attributes; } - private static AttributesImpl getDoNotEmitAttributes(String namespace, UcdLineParser.UcdLine line) { + private static AttributesImpl getDoNotEmitAttributes( + String namespace, UcdLineParser.UcdLine line) { String[] parts = line.getParts(); AttributesImpl attributes = new AttributesImpl(); - attributes.addAttribute( - namespace, "of", "of", "CDATA", parts[0]); - attributes.addAttribute( - namespace, "use", "use", "CDATA", parts[1]); - attributes.addAttribute( - namespace, "because", "because", "CDATA", parts[2]); + attributes.addAttribute(namespace, "of", "of", "CDATA", parts[0]); + attributes.addAttribute(namespace, "use", "use", "CDATA", parts[1]); + attributes.addAttribute(namespace, "because", "because", "CDATA", parts[2]); return attributes; } - private static AttributesImpl getEmojiSourceAttributes(String namespace, UcdLineParser.UcdLine line) { + private static AttributesImpl getEmojiSourceAttributes( + String namespace, UcdLineParser.UcdLine line) { String[] parts = line.getParts(); AttributesImpl attributes = new AttributesImpl(); - attributes.addAttribute( - namespace, "unicode", "unicode", "CDATA", parts[0]); - attributes.addAttribute( - namespace, "docomo", "docomo", "CDATA", parts[1]); - attributes.addAttribute( - namespace, "kddi", "kddi", "CDATA", parts[2]); - attributes.addAttribute( - namespace, "softbank", "softbank", "CDATA", parts[3]); + attributes.addAttribute(namespace, "unicode", "unicode", "CDATA", parts[0]); + attributes.addAttribute(namespace, "docomo", "docomo", "CDATA", parts[1]); + attributes.addAttribute(namespace, "kddi", "kddi", "CDATA", parts[2]); + attributes.addAttribute(namespace, "softbank", "softbank", "CDATA", parts[3]); return attributes; } - private static AttributesImpl getNamedSequenceAttributes(String namespace, String name, - HashMap namedSequences) { + private static AttributesImpl getNamedSequenceAttributes( + String namespace, String name, HashMap namedSequences) { AttributesImpl attributes = new AttributesImpl(); - attributes.addAttribute( - namespace, "name", "name", "CDATA", name); - attributes.addAttribute( - namespace, "cps", "cps", "CDATA", namedSequences.get(name)); + attributes.addAttribute(namespace, "name", "name", "CDATA", name); + attributes.addAttribute(namespace, "cps", "cps", "CDATA", namedSequences.get(name)); return attributes; } private static AttributesImpl getNCAttributes(String namespace, UcdLineParser.UcdLine line) { String[] parts = line.getParts(); AttributesImpl attributes = new AttributesImpl(); - attributes.addAttribute( - namespace, "cp", "cp", "CDATA", parts[0]); - attributes.addAttribute( - namespace, "old", "old", "CDATA", parts[1]); - attributes.addAttribute( - namespace, "new", "new", "CDATA", parts[2]); - attributes.addAttribute( - namespace, "version", "version", "CDATA", parts[3]); + attributes.addAttribute(namespace, "cp", "cp", "CDATA", parts[0]); + attributes.addAttribute(namespace, "old", "old", "CDATA", parts[1]); + attributes.addAttribute(namespace, "new", "new", "CDATA", parts[2]); + attributes.addAttribute(namespace, "version", "version", "CDATA", parts[3]); return attributes; } private static AttributesImpl getSVAttributes(String namespace, UcdLineParser.UcdLine line) { String[] parts = line.getParts(); AttributesImpl attributes = new AttributesImpl(); + attributes.addAttribute(namespace, "cps", "cps", "CDATA", parts[0]); + attributes.addAttribute(namespace, "desc", "desc", "CDATA", parts[1]); attributes.addAttribute( - namespace, "cps", "cps", "CDATA", parts[0]); - attributes.addAttribute( - namespace, "desc", "desc", "CDATA", parts[1]); - attributes.addAttribute( - namespace, "when", "when", "CDATA", - parts[2] != null ? parts[2] : ""); + namespace, "when", "when", "CDATA", parts[2] != null ? parts[2] : ""); return attributes; } private boolean isCompatibleVersion(VersionInfo minVersion, VersionInfo maxVersion) { - return (indexUnicodeProperties.getUcdVersion().compareTo(minVersion) >= 0 && ( - maxVersion == null || indexUnicodeProperties.getUcdVersion().compareTo(maxVersion) <= 0)); + return (indexUnicodeProperties.getUcdVersion().compareTo(minVersion) >= 0 + && (maxVersion == null + || indexUnicodeProperties.getUcdVersion().compareTo(maxVersion) <= 0)); } } diff --git a/unicodetools/src/main/java/org/unicode/xml/UCDXMLWriter.java b/unicodetools/src/main/java/org/unicode/xml/UCDXMLWriter.java index 27d88a766..ff31e69c6 100644 --- a/unicodetools/src/main/java/org/unicode/xml/UCDXMLWriter.java +++ b/unicodetools/src/main/java/org/unicode/xml/UCDXMLWriter.java @@ -1,9 +1,6 @@ package org.unicode.xml; -import org.xml.sax.Attributes; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.AttributesImpl; - +import java.io.FileOutputStream; import javax.xml.transform.OutputKeys; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerConfigurationException; @@ -11,12 +8,12 @@ import javax.xml.transform.sax.SAXTransformerFactory; import javax.xml.transform.sax.TransformerHandler; import javax.xml.transform.stream.StreamResult; -import java.io.FileOutputStream; +import org.xml.sax.SAXException; +import org.xml.sax.helpers.AttributesImpl; public class UCDXMLWriter { - public static final String NAMESPACE - = "http://www.unicode.org/ns/2003/ucd/1.0"; + public static final String NAMESPACE = "http://www.unicode.org/ns/2003/ucd/1.0"; private final TransformerHandler transformerHandler; @@ -27,53 +24,51 @@ public TransformerHandler getTransformerHandler() { public UCDXMLWriter(FileOutputStream f) throws TransformerConfigurationException { TransformerFactory tfactory = TransformerFactory.newInstance(); SAXTransformerFactory sfactory = (SAXTransformerFactory) tfactory; - transformerHandler = sfactory.newTransformerHandler (); - Transformer transformer = transformerHandler.getTransformer (); + transformerHandler = sfactory.newTransformerHandler(); + Transformer transformer = transformerHandler.getTransformer(); transformer.setOutputProperty(OutputKeys.ENCODING, "utf-8"); transformer.setOutputProperty(OutputKeys.METHOD, "xml"); transformer.setOutputProperty(OutputKeys.INDENT, "yes"); transformer.setOutputProperty(OutputKeys.STANDALONE, "yes"); transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "3"); transformer.setOutputProperty("{http://xml.apache.org/xalan}indent-amount", "3"); - transformerHandler.setResult (new StreamResult(f)); + transformerHandler.setResult(new StreamResult(f)); } public void startFile() throws SAXException { - transformerHandler.startDocument (); - char[] c = "\n".toCharArray (); - transformerHandler.characters (c, 0, c.length); - //TODO: JRW change hardcoded 2023 to current year. - c = " \u00A9 2023 Unicode\u00AE, Inc. ".toCharArray (); - transformerHandler.comment (c, 0, c.length); - c = "\n".toCharArray (); - transformerHandler.characters (c, 0, c.length); - c = " For terms of use, see http://www.unicode.org/terms_of_use.html ".toCharArray (); - transformerHandler.comment (c, 0, c.length); - c = "\n\n\n".toCharArray (); - transformerHandler.characters (c, 0, c.length); - + transformerHandler.startDocument(); + char[] c = "\n".toCharArray(); + transformerHandler.characters(c, 0, c.length); + // TODO: JRW change hardcoded 2023 to current year. + c = " \u00A9 2023 Unicode\u00AE, Inc. ".toCharArray(); + transformerHandler.comment(c, 0, c.length); + c = "\n".toCharArray(); + transformerHandler.characters(c, 0, c.length); + c = " For terms of use, see http://www.unicode.org/terms_of_use.html ".toCharArray(); + transformerHandler.comment(c, 0, c.length); + c = "\n\n\n".toCharArray(); + transformerHandler.characters(c, 0, c.length); } + public void endFile() throws SAXException { - transformerHandler.endDocument (); + transformerHandler.endDocument(); } public void startElement(String tagName) throws SAXException { - AttributesImpl attributes = new AttributesImpl (); + AttributesImpl attributes = new AttributesImpl(); startElement(tagName, attributes); } public void startElement(String tagName, AttributesImpl attributes) throws SAXException { - transformerHandler.startElement (NAMESPACE, tagName, tagName, attributes); + transformerHandler.startElement(NAMESPACE, tagName, tagName, attributes); } public void addContent(String s) throws SAXException { - char[] d = s.toCharArray (); - transformerHandler.characters (d, 0, d.length); + char[] d = s.toCharArray(); + transformerHandler.characters(d, 0, d.length); } public void endElement(String tagName) throws SAXException { - transformerHandler.endElement (NAMESPACE, tagName, tagName); + transformerHandler.endElement(NAMESPACE, tagName, tagName); } } - - diff --git a/unicodetools/src/main/java/org/unicode/xml/UcdPropertyDetail.java b/unicodetools/src/main/java/org/unicode/xml/UcdPropertyDetail.java index 594a6f67b..57989d255 100644 --- a/unicodetools/src/main/java/org/unicode/xml/UcdPropertyDetail.java +++ b/unicodetools/src/main/java/org/unicode/xml/UcdPropertyDetail.java @@ -1,821 +1,2236 @@ package org.unicode.xml; import com.ibm.icu.util.VersionInfo; -import org.unicode.props.UcdProperty; - import java.util.LinkedHashSet; import java.util.Set; +import org.unicode.props.UcdProperty; public class UcdPropertyDetail { - static private LinkedHashSet basePropertyDetails = new LinkedHashSet(); - static private LinkedHashSet cjkPropertyDetails = new LinkedHashSet(); - static private LinkedHashSet ucdxmlPropertyDetails = new LinkedHashSet(); - static private LinkedHashSet allPropertyDetails = new LinkedHashSet(); + private static LinkedHashSet basePropertyDetails = + new LinkedHashSet(); + private static LinkedHashSet cjkPropertyDetails = + new LinkedHashSet(); + private static LinkedHashSet ucdxmlPropertyDetails = + new LinkedHashSet(); + private static LinkedHashSet allPropertyDetails = + new LinkedHashSet(); - public static UcdPropertyDetail Age_Detail = new UcdPropertyDetail( - UcdProperty.Age, VersionInfo.getInstance(1, 1, 0), 1, - true, false, false, true); - public static UcdPropertyDetail Name_Detail = new UcdPropertyDetail( - UcdProperty.Name, VersionInfo.getInstance(1, 1, 0), 2, - true, false, false, true); - public static UcdPropertyDetail Jamo_Short_Name_Detail = new UcdPropertyDetail( - UcdProperty.Jamo_Short_Name, VersionInfo.getInstance(1, 1, 0), 3, - true, false, false, true); - public static UcdPropertyDetail General_Category_Detail = new UcdPropertyDetail( - UcdProperty.General_Category, VersionInfo.getInstance(1, 1, 0), 4, - true, false, false, true); - public static UcdPropertyDetail Canonical_Combining_Class_Detail = new UcdPropertyDetail( - UcdProperty.Canonical_Combining_Class, VersionInfo.getInstance(1, 1, 0), 5, - true, false, false, true); - public static UcdPropertyDetail Decomposition_Type_Detail = new UcdPropertyDetail( - UcdProperty.Decomposition_Type, VersionInfo.getInstance(1, 1, 0), 6, - true, false, false, true); - public static UcdPropertyDetail Decomposition_Mapping_Detail = new UcdPropertyDetail( - UcdProperty.Decomposition_Mapping, VersionInfo.getInstance(1, 1, 0), 7, - true, false, false, true); - public static UcdPropertyDetail Numeric_Type_Detail = new UcdPropertyDetail( - UcdProperty.Numeric_Type, VersionInfo.getInstance(1, 1, 0), 8, - true, false, false, true); - public static UcdPropertyDetail Numeric_Value_Detail = new UcdPropertyDetail( - UcdProperty.Numeric_Value, VersionInfo.getInstance(1, 1, 0), 9, - true, false, false, true); - public static UcdPropertyDetail Bidi_Class_Detail = new UcdPropertyDetail( - UcdProperty.Bidi_Class, VersionInfo.getInstance(1, 1, 0), 10, - true, false, false, true); - public static UcdPropertyDetail Bidi_Paired_Bracket_Type_Detail = new UcdPropertyDetail( - UcdProperty.Bidi_Paired_Bracket_Type, VersionInfo.getInstance(6, 3, 0), 11, - true, false, false, true); - public static UcdPropertyDetail Bidi_Paired_Bracket_Detail = new UcdPropertyDetail( - UcdProperty.Bidi_Paired_Bracket, VersionInfo.getInstance(6, 3, 0), 12, - true, false, false, true); - public static UcdPropertyDetail Bidi_Mirrored_Detail = new UcdPropertyDetail( - UcdProperty.Bidi_Mirrored, VersionInfo.getInstance(1, 1, 0), 13, - true, false, false, true); - public static UcdPropertyDetail Bidi_Mirroring_Glyph_Detail = new UcdPropertyDetail( - UcdProperty.Bidi_Mirroring_Glyph, VersionInfo.getInstance(1, 1, 0), 14, - true, false, false, true); - public static UcdPropertyDetail Simple_Uppercase_Mapping_Detail = new UcdPropertyDetail( - UcdProperty.Simple_Uppercase_Mapping, VersionInfo.getInstance(1, 1, 0), 15, - true, false, false, true); - public static UcdPropertyDetail Simple_Lowercase_Mapping_Detail = new UcdPropertyDetail( - UcdProperty.Simple_Lowercase_Mapping, VersionInfo.getInstance(1, 1, 0), 16, - true, false, false, true); - public static UcdPropertyDetail Simple_Titlecase_Mapping_Detail = new UcdPropertyDetail( - UcdProperty.Simple_Titlecase_Mapping, VersionInfo.getInstance(1, 1, 0), 17, - true, false, false, true); - public static UcdPropertyDetail Uppercase_Mapping_Detail = new UcdPropertyDetail( - UcdProperty.Uppercase_Mapping, VersionInfo.getInstance(1, 1, 0), 18, - true, false, false, true); - public static UcdPropertyDetail Lowercase_Mapping_Detail = new UcdPropertyDetail( - UcdProperty.Lowercase_Mapping, VersionInfo.getInstance(1, 1, 0), 19, - true, false, false, true); - public static UcdPropertyDetail Titlecase_Mapping_Detail = new UcdPropertyDetail( - UcdProperty.Titlecase_Mapping, VersionInfo.getInstance(1, 1, 0), 20, - true, false, false, true); - // public static UcdPropertyDetail Special_Case_Condition_Detail = new UcdPropertyDetail ( -// UcdProperty.Special_Case_Condition, VersionInfo.getInstance(1,1,0), 21, -// true, false, false, true); - public static UcdPropertyDetail Simple_Case_Folding_Detail = new UcdPropertyDetail( - UcdProperty.Simple_Case_Folding, VersionInfo.getInstance(1, 1, 0), 22, - true, false, false, true); - public static UcdPropertyDetail Case_Folding_Detail = new UcdPropertyDetail( - UcdProperty.Case_Folding, VersionInfo.getInstance(1, 1, 0), 23, - true, false, false, true); - public static UcdPropertyDetail Joining_Type_Detail = new UcdPropertyDetail( - UcdProperty.Joining_Type, VersionInfo.getInstance(1, 1, 0), 24, - true, false, false, true); - public static UcdPropertyDetail Joining_Group_Detail = new UcdPropertyDetail( - UcdProperty.Joining_Group, VersionInfo.getInstance(1, 1, 0), 25, - true, false, false, true); - public static UcdPropertyDetail East_Asian_Width_Detail = new UcdPropertyDetail( - UcdProperty.East_Asian_Width, VersionInfo.getInstance(1, 1, 0), 26, - true, false, false, true); - public static UcdPropertyDetail Line_Break_Detail = new UcdPropertyDetail( - UcdProperty.Line_Break, VersionInfo.getInstance(1, 1, 0), 27, - true, false, false, true); - public static UcdPropertyDetail Script_Detail = new UcdPropertyDetail( - UcdProperty.Script, VersionInfo.getInstance(1, 1, 0), 28, - true, false, false, true); - public static UcdPropertyDetail Script_Extensions_Detail = new UcdPropertyDetail( - UcdProperty.Script_Extensions, VersionInfo.getInstance(6, 1, 0), 29, - true, false, false, true); - public static UcdPropertyDetail Dash_Detail = new UcdPropertyDetail( - UcdProperty.Dash, VersionInfo.getInstance(1, 1, 0), 30, - true, false, false, true); - public static UcdPropertyDetail White_Space_Detail = new UcdPropertyDetail( - UcdProperty.White_Space, VersionInfo.getInstance(1, 1, 0), 31, - true, false, false, true); - public static UcdPropertyDetail Hyphen_Detail = new UcdPropertyDetail( - UcdProperty.Hyphen, VersionInfo.getInstance(1, 1, 0), 32, - true, false, false, true); - public static UcdPropertyDetail Quotation_Mark_Detail = new UcdPropertyDetail( - UcdProperty.Quotation_Mark, VersionInfo.getInstance(1, 1, 0), 33, - true, false, false, true); - public static UcdPropertyDetail Radical_Detail = new UcdPropertyDetail( - UcdProperty.Radical, VersionInfo.getInstance(1, 1, 0), 34, - true, false, false, true); - public static UcdPropertyDetail Ideographic_Detail = new UcdPropertyDetail( - UcdProperty.Ideographic, VersionInfo.getInstance(1, 1, 0), 35, - true, false, false, true); - public static UcdPropertyDetail Unified_Ideograph_Detail = new UcdPropertyDetail( - UcdProperty.Unified_Ideograph, VersionInfo.getInstance(1, 1, 0), 36, - true, false, false, true); - public static UcdPropertyDetail IDS_Binary_Operator_Detail = new UcdPropertyDetail( - UcdProperty.IDS_Binary_Operator, VersionInfo.getInstance(1, 1, 0), 37, - true, false, false, true); - public static UcdPropertyDetail IDS_Trinary_Operator_Detail = new UcdPropertyDetail( - UcdProperty.IDS_Trinary_Operator, VersionInfo.getInstance(1, 1, 0), 38, - true, false, false, true); - public static UcdPropertyDetail Hangul_Syllable_Type_Detail = new UcdPropertyDetail( - UcdProperty.Hangul_Syllable_Type, VersionInfo.getInstance(1, 1, 0), 39, - true, false, false, true); - public static UcdPropertyDetail Default_Ignorable_Code_Point_Detail = new UcdPropertyDetail( - UcdProperty.Default_Ignorable_Code_Point, VersionInfo.getInstance(1, 1, 0), 40, - true, false, false, true); - public static UcdPropertyDetail Other_Default_Ignorable_Code_Point_Detail = new UcdPropertyDetail( - UcdProperty.Other_Default_Ignorable_Code_Point, VersionInfo.getInstance(1, 1, 0), 41, - true, false, false, true); - public static UcdPropertyDetail Alphabetic_Detail = new UcdPropertyDetail( - UcdProperty.Alphabetic, VersionInfo.getInstance(1, 1, 0), 42, - true, false, false, true); - public static UcdPropertyDetail Other_Alphabetic_Detail = new UcdPropertyDetail( - UcdProperty.Other_Alphabetic, VersionInfo.getInstance(1, 1, 0), 43, - true, false, false, true); - public static UcdPropertyDetail Uppercase_Detail = new UcdPropertyDetail( - UcdProperty.Uppercase, VersionInfo.getInstance(1, 1, 0), 44, - true, false, false, true); - public static UcdPropertyDetail Other_Uppercase_Detail = new UcdPropertyDetail( - UcdProperty.Other_Uppercase, VersionInfo.getInstance(1, 1, 0), 45, - true, false, false, true); - public static UcdPropertyDetail Lowercase_Detail = new UcdPropertyDetail( - UcdProperty.Lowercase, VersionInfo.getInstance(1, 1, 0), 46, - true, false, false, true); - public static UcdPropertyDetail Other_Lowercase_Detail = new UcdPropertyDetail( - UcdProperty.Other_Lowercase, VersionInfo.getInstance(1, 1, 0), 47, - true, false, false, true); - public static UcdPropertyDetail Math_Detail = new UcdPropertyDetail( - UcdProperty.Math, VersionInfo.getInstance(1, 1, 0), 48, - true, false, false, true); - public static UcdPropertyDetail Other_Math_Detail = new UcdPropertyDetail( - UcdProperty.Other_Math, VersionInfo.getInstance(1, 1, 0), 49, - true, false, false, true); - public static UcdPropertyDetail Hex_Digit_Detail = new UcdPropertyDetail( - UcdProperty.Hex_Digit, VersionInfo.getInstance(1, 1, 0), 50, - true, false, false, true); - public static UcdPropertyDetail ASCII_Hex_Digit_Detail = new UcdPropertyDetail( - UcdProperty.ASCII_Hex_Digit, VersionInfo.getInstance(1, 1, 0), 51, - true, false, false, true); - public static UcdPropertyDetail Noncharacter_Code_Point_Detail = new UcdPropertyDetail( - UcdProperty.Noncharacter_Code_Point, VersionInfo.getInstance(1, 1, 0), 52, - true, false, false, true); - public static UcdPropertyDetail Variation_Selector_Detail = new UcdPropertyDetail( - UcdProperty.Variation_Selector, VersionInfo.getInstance(1, 1, 0), 53, - true, false, false, true); - public static UcdPropertyDetail Bidi_Control_Detail = new UcdPropertyDetail( - UcdProperty.Bidi_Control, VersionInfo.getInstance(1, 1, 0), 54, - true, false, false, true); - public static UcdPropertyDetail Join_Control_Detail = new UcdPropertyDetail( - UcdProperty.Join_Control, VersionInfo.getInstance(1, 1, 0), 55, - true, false, false, true); - public static UcdPropertyDetail Grapheme_Base_Detail = new UcdPropertyDetail( - UcdProperty.Grapheme_Base, VersionInfo.getInstance(1, 1, 0), 56, - true, false, false, true); - public static UcdPropertyDetail Grapheme_Extend_Detail = new UcdPropertyDetail( - UcdProperty.Grapheme_Extend, VersionInfo.getInstance(1, 1, 0), 57, - true, false, false, true); - public static UcdPropertyDetail Other_Grapheme_Extend_Detail = new UcdPropertyDetail( - UcdProperty.Other_Grapheme_Extend, VersionInfo.getInstance(1, 1, 0), 58, - true, false, false, true); - public static UcdPropertyDetail Grapheme_Link_Detail = new UcdPropertyDetail( - UcdProperty.Grapheme_Link, VersionInfo.getInstance(1, 1, 0), 59, - true, false, false, true); - public static UcdPropertyDetail Sentence_Terminal_Detail = new UcdPropertyDetail( - UcdProperty.Sentence_Terminal, VersionInfo.getInstance(1, 1, 0), 60, - true, false, false, true); - public static UcdPropertyDetail Extender_Detail = new UcdPropertyDetail( - UcdProperty.Extender, VersionInfo.getInstance(1, 1, 0), 61, - true, false, false, true); - public static UcdPropertyDetail Terminal_Punctuation_Detail = new UcdPropertyDetail( - UcdProperty.Terminal_Punctuation, VersionInfo.getInstance(1, 1, 0), 62, - true, false, false, true); - public static UcdPropertyDetail Diacritic_Detail = new UcdPropertyDetail( - UcdProperty.Diacritic, VersionInfo.getInstance(1, 1, 0), 63, - true, false, false, true); - public static UcdPropertyDetail Deprecated_Detail = new UcdPropertyDetail( - UcdProperty.Deprecated, VersionInfo.getInstance(1, 1, 0), 64, - true, false, false, true); - public static UcdPropertyDetail ID_Start_Detail = new UcdPropertyDetail( - UcdProperty.ID_Start, VersionInfo.getInstance(1, 1, 0), 65, - true, false, false, true); - public static UcdPropertyDetail Other_ID_Start_Detail = new UcdPropertyDetail( - UcdProperty.Other_ID_Start, VersionInfo.getInstance(1, 1, 0), 66, - true, false, false, true); - public static UcdPropertyDetail XID_Start_Detail = new UcdPropertyDetail( - UcdProperty.XID_Start, VersionInfo.getInstance(1, 1, 0), 67, - true, false, false, true); - public static UcdPropertyDetail ID_Continue_Detail = new UcdPropertyDetail( - UcdProperty.ID_Continue, VersionInfo.getInstance(1, 1, 0), 68, - true, false, false, true); - public static UcdPropertyDetail Other_ID_Continue_Detail = new UcdPropertyDetail( - UcdProperty.Other_ID_Continue, VersionInfo.getInstance(1, 1, 0), 69, - true, false, false, true); - public static UcdPropertyDetail XID_Continue_Detail = new UcdPropertyDetail( - UcdProperty.XID_Continue, VersionInfo.getInstance(1, 1, 0), 70, - true, false, false, true); - public static UcdPropertyDetail Soft_Dotted_Detail = new UcdPropertyDetail( - UcdProperty.Soft_Dotted, VersionInfo.getInstance(1, 1, 0), 71, - true, false, false, true); - public static UcdPropertyDetail Logical_Order_Exception_Detail = new UcdPropertyDetail( - UcdProperty.Logical_Order_Exception, VersionInfo.getInstance(1, 1, 0), 72, - true, false, false, true); - public static UcdPropertyDetail Pattern_White_Space_Detail = new UcdPropertyDetail( - UcdProperty.Pattern_White_Space, VersionInfo.getInstance(1, 1, 0), 73, - true, false, false, true); - public static UcdPropertyDetail Pattern_Syntax_Detail = new UcdPropertyDetail( - UcdProperty.Pattern_Syntax, VersionInfo.getInstance(1, 1, 0), 74, - true, false, false, true); - public static UcdPropertyDetail Grapheme_Cluster_Break_Detail = new UcdPropertyDetail( - UcdProperty.Grapheme_Cluster_Break, VersionInfo.getInstance(1, 1, 0), 75, - true, false, false, true); - public static UcdPropertyDetail Word_Break_Detail = new UcdPropertyDetail( - UcdProperty.Word_Break, VersionInfo.getInstance(1, 1, 0), 76, - true, false, false, true); - public static UcdPropertyDetail Sentence_Break_Detail = new UcdPropertyDetail( - UcdProperty.Sentence_Break, VersionInfo.getInstance(1, 1, 0), 77, - true, false, false, true); - public static UcdPropertyDetail Composition_Exclusion_Detail = new UcdPropertyDetail( - UcdProperty.Composition_Exclusion, VersionInfo.getInstance(1, 1, 0), 78, - true, false, false, true); - public static UcdPropertyDetail Full_Composition_Exclusion_Detail = new UcdPropertyDetail( - UcdProperty.Full_Composition_Exclusion, VersionInfo.getInstance(1, 1, 0), 79, - true, false, false, true); - public static UcdPropertyDetail NFC_Quick_Check_Detail = new UcdPropertyDetail( - UcdProperty.NFC_Quick_Check, VersionInfo.getInstance(1, 1, 0), 80, - true, false, false, true); - public static UcdPropertyDetail NFD_Quick_Check_Detail = new UcdPropertyDetail( - UcdProperty.NFD_Quick_Check, VersionInfo.getInstance(1, 1, 0), 81, - true, false, false, true); - public static UcdPropertyDetail NFKC_Quick_Check_Detail = new UcdPropertyDetail( - UcdProperty.NFKC_Quick_Check, VersionInfo.getInstance(1, 1, 0), 82, - true, false, false, true); - public static UcdPropertyDetail NFKD_Quick_Check_Detail = new UcdPropertyDetail( - UcdProperty.NFKD_Quick_Check, VersionInfo.getInstance(1, 1, 0), 83, - true, false, false, true); - public static UcdPropertyDetail Expands_On_NFC_Detail = new UcdPropertyDetail( - UcdProperty.Expands_On_NFC, VersionInfo.getInstance(1, 1, 0), 84, - true, false, false, true); - public static UcdPropertyDetail Expands_On_NFD_Detail = new UcdPropertyDetail( - UcdProperty.Expands_On_NFD, VersionInfo.getInstance(1, 1, 0), 85, - true, false, false, true); - public static UcdPropertyDetail Expands_On_NFKC_Detail = new UcdPropertyDetail( - UcdProperty.Expands_On_NFKC, VersionInfo.getInstance(1, 1, 0), 86, - true, false, false, true); - public static UcdPropertyDetail Expands_On_NFKD_Detail = new UcdPropertyDetail( - UcdProperty.Expands_On_NFKD, VersionInfo.getInstance(1, 1, 0), 87, - true, false, false, true); - public static UcdPropertyDetail FC_NFC_Closure_Detail = new UcdPropertyDetail( - UcdProperty.FC_NFKC_Closure, VersionInfo.getInstance(1, 1, 0), 88, - true, false, false, true); - public static UcdPropertyDetail Case_Ignorable_Detail = new UcdPropertyDetail( - UcdProperty.Case_Ignorable, VersionInfo.getInstance(5, 2, 0), 89, - true, false, false, true); - public static UcdPropertyDetail Cased_Detail = new UcdPropertyDetail( - UcdProperty.Cased, VersionInfo.getInstance(5, 2, 0), 90, - true, false, false, true); - public static UcdPropertyDetail Changes_When_CaseFolded_Detail = new UcdPropertyDetail( - UcdProperty.Changes_When_Casefolded, VersionInfo.getInstance(5, 2, 0), 91, - true, false, false, true); - public static UcdPropertyDetail Changes_When_CaseMapped_Detail = new UcdPropertyDetail( - UcdProperty.Changes_When_Casemapped, VersionInfo.getInstance(5, 2, 0), 92, - true, false, false, true); - public static UcdPropertyDetail Changes_When_NFKC_Casefolded_Detail = new UcdPropertyDetail( - UcdProperty.Changes_When_NFKC_Casefolded, VersionInfo.getInstance(5, 2, 0), 93, - true, false, false, true); - public static UcdPropertyDetail Changes_When_Lowercased_Detail = new UcdPropertyDetail( - UcdProperty.Changes_When_Lowercased, VersionInfo.getInstance(5, 2, 0), 94, - true, false, false, true); - public static UcdPropertyDetail Changes_When_Titlecased_Detail = new UcdPropertyDetail( - UcdProperty.Changes_When_Titlecased, VersionInfo.getInstance(5, 2, 0), 95, - true, false, false, true); - public static UcdPropertyDetail Changes_When_Uppercased_Detail = new UcdPropertyDetail( - UcdProperty.Changes_When_Uppercased, VersionInfo.getInstance(5, 2, 0), 96, - true, false, false, true); - public static UcdPropertyDetail NFKC_Casefold_Detail = new UcdPropertyDetail( - UcdProperty.NFKC_Casefold, VersionInfo.getInstance(5, 2, 0), 97, - true, false, false, true); - public static UcdPropertyDetail Indic_Syllabic_Category_Detail = new UcdPropertyDetail( - UcdProperty.Indic_Syllabic_Category, VersionInfo.getInstance(6, 0, 0), 98, - true, false, false, true); + public static UcdPropertyDetail Age_Detail = + new UcdPropertyDetail( + UcdProperty.Age, VersionInfo.getInstance(1, 1, 0), 1, true, false, false, true); + public static UcdPropertyDetail Name_Detail = + new UcdPropertyDetail( + UcdProperty.Name, + VersionInfo.getInstance(1, 1, 0), + 2, + true, + false, + false, + true); + public static UcdPropertyDetail Jamo_Short_Name_Detail = + new UcdPropertyDetail( + UcdProperty.Jamo_Short_Name, + VersionInfo.getInstance(1, 1, 0), + 3, + true, + false, + false, + true); + public static UcdPropertyDetail General_Category_Detail = + new UcdPropertyDetail( + UcdProperty.General_Category, + VersionInfo.getInstance(1, 1, 0), + 4, + true, + false, + false, + true); + public static UcdPropertyDetail Canonical_Combining_Class_Detail = + new UcdPropertyDetail( + UcdProperty.Canonical_Combining_Class, + VersionInfo.getInstance(1, 1, 0), + 5, + true, + false, + false, + true); + public static UcdPropertyDetail Decomposition_Type_Detail = + new UcdPropertyDetail( + UcdProperty.Decomposition_Type, + VersionInfo.getInstance(1, 1, 0), + 6, + true, + false, + false, + true); + public static UcdPropertyDetail Decomposition_Mapping_Detail = + new UcdPropertyDetail( + UcdProperty.Decomposition_Mapping, + VersionInfo.getInstance(1, 1, 0), + 7, + true, + false, + false, + true); + public static UcdPropertyDetail Numeric_Type_Detail = + new UcdPropertyDetail( + UcdProperty.Numeric_Type, + VersionInfo.getInstance(1, 1, 0), + 8, + true, + false, + false, + true); + public static UcdPropertyDetail Numeric_Value_Detail = + new UcdPropertyDetail( + UcdProperty.Numeric_Value, + VersionInfo.getInstance(1, 1, 0), + 9, + true, + false, + false, + true); + public static UcdPropertyDetail Bidi_Class_Detail = + new UcdPropertyDetail( + UcdProperty.Bidi_Class, + VersionInfo.getInstance(1, 1, 0), + 10, + true, + false, + false, + true); + public static UcdPropertyDetail Bidi_Paired_Bracket_Type_Detail = + new UcdPropertyDetail( + UcdProperty.Bidi_Paired_Bracket_Type, + VersionInfo.getInstance(6, 3, 0), + 11, + true, + false, + false, + true); + public static UcdPropertyDetail Bidi_Paired_Bracket_Detail = + new UcdPropertyDetail( + UcdProperty.Bidi_Paired_Bracket, + VersionInfo.getInstance(6, 3, 0), + 12, + true, + false, + false, + true); + public static UcdPropertyDetail Bidi_Mirrored_Detail = + new UcdPropertyDetail( + UcdProperty.Bidi_Mirrored, + VersionInfo.getInstance(1, 1, 0), + 13, + true, + false, + false, + true); + public static UcdPropertyDetail Bidi_Mirroring_Glyph_Detail = + new UcdPropertyDetail( + UcdProperty.Bidi_Mirroring_Glyph, + VersionInfo.getInstance(1, 1, 0), + 14, + true, + false, + false, + true); + public static UcdPropertyDetail Simple_Uppercase_Mapping_Detail = + new UcdPropertyDetail( + UcdProperty.Simple_Uppercase_Mapping, + VersionInfo.getInstance(1, 1, 0), + 15, + true, + false, + false, + true); + public static UcdPropertyDetail Simple_Lowercase_Mapping_Detail = + new UcdPropertyDetail( + UcdProperty.Simple_Lowercase_Mapping, + VersionInfo.getInstance(1, 1, 0), + 16, + true, + false, + false, + true); + public static UcdPropertyDetail Simple_Titlecase_Mapping_Detail = + new UcdPropertyDetail( + UcdProperty.Simple_Titlecase_Mapping, + VersionInfo.getInstance(1, 1, 0), + 17, + true, + false, + false, + true); + public static UcdPropertyDetail Uppercase_Mapping_Detail = + new UcdPropertyDetail( + UcdProperty.Uppercase_Mapping, + VersionInfo.getInstance(1, 1, 0), + 18, + true, + false, + false, + true); + public static UcdPropertyDetail Lowercase_Mapping_Detail = + new UcdPropertyDetail( + UcdProperty.Lowercase_Mapping, + VersionInfo.getInstance(1, 1, 0), + 19, + true, + false, + false, + true); + public static UcdPropertyDetail Titlecase_Mapping_Detail = + new UcdPropertyDetail( + UcdProperty.Titlecase_Mapping, + VersionInfo.getInstance(1, 1, 0), + 20, + true, + false, + false, + true); + // public static UcdPropertyDetail Special_Case_Condition_Detail = new UcdPropertyDetail + // ( + // UcdProperty.Special_Case_Condition, VersionInfo.getInstance(1,1,0), 21, + // true, false, false, true); + public static UcdPropertyDetail Simple_Case_Folding_Detail = + new UcdPropertyDetail( + UcdProperty.Simple_Case_Folding, + VersionInfo.getInstance(1, 1, 0), + 22, + true, + false, + false, + true); + public static UcdPropertyDetail Case_Folding_Detail = + new UcdPropertyDetail( + UcdProperty.Case_Folding, + VersionInfo.getInstance(1, 1, 0), + 23, + true, + false, + false, + true); + public static UcdPropertyDetail Joining_Type_Detail = + new UcdPropertyDetail( + UcdProperty.Joining_Type, + VersionInfo.getInstance(1, 1, 0), + 24, + true, + false, + false, + true); + public static UcdPropertyDetail Joining_Group_Detail = + new UcdPropertyDetail( + UcdProperty.Joining_Group, + VersionInfo.getInstance(1, 1, 0), + 25, + true, + false, + false, + true); + public static UcdPropertyDetail East_Asian_Width_Detail = + new UcdPropertyDetail( + UcdProperty.East_Asian_Width, + VersionInfo.getInstance(1, 1, 0), + 26, + true, + false, + false, + true); + public static UcdPropertyDetail Line_Break_Detail = + new UcdPropertyDetail( + UcdProperty.Line_Break, + VersionInfo.getInstance(1, 1, 0), + 27, + true, + false, + false, + true); + public static UcdPropertyDetail Script_Detail = + new UcdPropertyDetail( + UcdProperty.Script, + VersionInfo.getInstance(1, 1, 0), + 28, + true, + false, + false, + true); + public static UcdPropertyDetail Script_Extensions_Detail = + new UcdPropertyDetail( + UcdProperty.Script_Extensions, + VersionInfo.getInstance(6, 1, 0), + 29, + true, + false, + false, + true); + public static UcdPropertyDetail Dash_Detail = + new UcdPropertyDetail( + UcdProperty.Dash, + VersionInfo.getInstance(1, 1, 0), + 30, + true, + false, + false, + true); + public static UcdPropertyDetail White_Space_Detail = + new UcdPropertyDetail( + UcdProperty.White_Space, + VersionInfo.getInstance(1, 1, 0), + 31, + true, + false, + false, + true); + public static UcdPropertyDetail Hyphen_Detail = + new UcdPropertyDetail( + UcdProperty.Hyphen, + VersionInfo.getInstance(1, 1, 0), + 32, + true, + false, + false, + true); + public static UcdPropertyDetail Quotation_Mark_Detail = + new UcdPropertyDetail( + UcdProperty.Quotation_Mark, + VersionInfo.getInstance(1, 1, 0), + 33, + true, + false, + false, + true); + public static UcdPropertyDetail Radical_Detail = + new UcdPropertyDetail( + UcdProperty.Radical, + VersionInfo.getInstance(1, 1, 0), + 34, + true, + false, + false, + true); + public static UcdPropertyDetail Ideographic_Detail = + new UcdPropertyDetail( + UcdProperty.Ideographic, + VersionInfo.getInstance(1, 1, 0), + 35, + true, + false, + false, + true); + public static UcdPropertyDetail Unified_Ideograph_Detail = + new UcdPropertyDetail( + UcdProperty.Unified_Ideograph, + VersionInfo.getInstance(1, 1, 0), + 36, + true, + false, + false, + true); + public static UcdPropertyDetail IDS_Binary_Operator_Detail = + new UcdPropertyDetail( + UcdProperty.IDS_Binary_Operator, + VersionInfo.getInstance(1, 1, 0), + 37, + true, + false, + false, + true); + public static UcdPropertyDetail IDS_Trinary_Operator_Detail = + new UcdPropertyDetail( + UcdProperty.IDS_Trinary_Operator, + VersionInfo.getInstance(1, 1, 0), + 38, + true, + false, + false, + true); + public static UcdPropertyDetail Hangul_Syllable_Type_Detail = + new UcdPropertyDetail( + UcdProperty.Hangul_Syllable_Type, + VersionInfo.getInstance(1, 1, 0), + 39, + true, + false, + false, + true); + public static UcdPropertyDetail Default_Ignorable_Code_Point_Detail = + new UcdPropertyDetail( + UcdProperty.Default_Ignorable_Code_Point, + VersionInfo.getInstance(1, 1, 0), + 40, + true, + false, + false, + true); + public static UcdPropertyDetail Other_Default_Ignorable_Code_Point_Detail = + new UcdPropertyDetail( + UcdProperty.Other_Default_Ignorable_Code_Point, + VersionInfo.getInstance(1, 1, 0), + 41, + true, + false, + false, + true); + public static UcdPropertyDetail Alphabetic_Detail = + new UcdPropertyDetail( + UcdProperty.Alphabetic, + VersionInfo.getInstance(1, 1, 0), + 42, + true, + false, + false, + true); + public static UcdPropertyDetail Other_Alphabetic_Detail = + new UcdPropertyDetail( + UcdProperty.Other_Alphabetic, + VersionInfo.getInstance(1, 1, 0), + 43, + true, + false, + false, + true); + public static UcdPropertyDetail Uppercase_Detail = + new UcdPropertyDetail( + UcdProperty.Uppercase, + VersionInfo.getInstance(1, 1, 0), + 44, + true, + false, + false, + true); + public static UcdPropertyDetail Other_Uppercase_Detail = + new UcdPropertyDetail( + UcdProperty.Other_Uppercase, + VersionInfo.getInstance(1, 1, 0), + 45, + true, + false, + false, + true); + public static UcdPropertyDetail Lowercase_Detail = + new UcdPropertyDetail( + UcdProperty.Lowercase, + VersionInfo.getInstance(1, 1, 0), + 46, + true, + false, + false, + true); + public static UcdPropertyDetail Other_Lowercase_Detail = + new UcdPropertyDetail( + UcdProperty.Other_Lowercase, + VersionInfo.getInstance(1, 1, 0), + 47, + true, + false, + false, + true); + public static UcdPropertyDetail Math_Detail = + new UcdPropertyDetail( + UcdProperty.Math, + VersionInfo.getInstance(1, 1, 0), + 48, + true, + false, + false, + true); + public static UcdPropertyDetail Other_Math_Detail = + new UcdPropertyDetail( + UcdProperty.Other_Math, + VersionInfo.getInstance(1, 1, 0), + 49, + true, + false, + false, + true); + public static UcdPropertyDetail Hex_Digit_Detail = + new UcdPropertyDetail( + UcdProperty.Hex_Digit, + VersionInfo.getInstance(1, 1, 0), + 50, + true, + false, + false, + true); + public static UcdPropertyDetail ASCII_Hex_Digit_Detail = + new UcdPropertyDetail( + UcdProperty.ASCII_Hex_Digit, + VersionInfo.getInstance(1, 1, 0), + 51, + true, + false, + false, + true); + public static UcdPropertyDetail Noncharacter_Code_Point_Detail = + new UcdPropertyDetail( + UcdProperty.Noncharacter_Code_Point, + VersionInfo.getInstance(1, 1, 0), + 52, + true, + false, + false, + true); + public static UcdPropertyDetail Variation_Selector_Detail = + new UcdPropertyDetail( + UcdProperty.Variation_Selector, + VersionInfo.getInstance(1, 1, 0), + 53, + true, + false, + false, + true); + public static UcdPropertyDetail Bidi_Control_Detail = + new UcdPropertyDetail( + UcdProperty.Bidi_Control, + VersionInfo.getInstance(1, 1, 0), + 54, + true, + false, + false, + true); + public static UcdPropertyDetail Join_Control_Detail = + new UcdPropertyDetail( + UcdProperty.Join_Control, + VersionInfo.getInstance(1, 1, 0), + 55, + true, + false, + false, + true); + public static UcdPropertyDetail Grapheme_Base_Detail = + new UcdPropertyDetail( + UcdProperty.Grapheme_Base, + VersionInfo.getInstance(1, 1, 0), + 56, + true, + false, + false, + true); + public static UcdPropertyDetail Grapheme_Extend_Detail = + new UcdPropertyDetail( + UcdProperty.Grapheme_Extend, + VersionInfo.getInstance(1, 1, 0), + 57, + true, + false, + false, + true); + public static UcdPropertyDetail Other_Grapheme_Extend_Detail = + new UcdPropertyDetail( + UcdProperty.Other_Grapheme_Extend, + VersionInfo.getInstance(1, 1, 0), + 58, + true, + false, + false, + true); + public static UcdPropertyDetail Grapheme_Link_Detail = + new UcdPropertyDetail( + UcdProperty.Grapheme_Link, + VersionInfo.getInstance(1, 1, 0), + 59, + true, + false, + false, + true); + public static UcdPropertyDetail Sentence_Terminal_Detail = + new UcdPropertyDetail( + UcdProperty.Sentence_Terminal, + VersionInfo.getInstance(1, 1, 0), + 60, + true, + false, + false, + true); + public static UcdPropertyDetail Extender_Detail = + new UcdPropertyDetail( + UcdProperty.Extender, + VersionInfo.getInstance(1, 1, 0), + 61, + true, + false, + false, + true); + public static UcdPropertyDetail Terminal_Punctuation_Detail = + new UcdPropertyDetail( + UcdProperty.Terminal_Punctuation, + VersionInfo.getInstance(1, 1, 0), + 62, + true, + false, + false, + true); + public static UcdPropertyDetail Diacritic_Detail = + new UcdPropertyDetail( + UcdProperty.Diacritic, + VersionInfo.getInstance(1, 1, 0), + 63, + true, + false, + false, + true); + public static UcdPropertyDetail Deprecated_Detail = + new UcdPropertyDetail( + UcdProperty.Deprecated, + VersionInfo.getInstance(1, 1, 0), + 64, + true, + false, + false, + true); + public static UcdPropertyDetail ID_Start_Detail = + new UcdPropertyDetail( + UcdProperty.ID_Start, + VersionInfo.getInstance(1, 1, 0), + 65, + true, + false, + false, + true); + public static UcdPropertyDetail Other_ID_Start_Detail = + new UcdPropertyDetail( + UcdProperty.Other_ID_Start, + VersionInfo.getInstance(1, 1, 0), + 66, + true, + false, + false, + true); + public static UcdPropertyDetail XID_Start_Detail = + new UcdPropertyDetail( + UcdProperty.XID_Start, + VersionInfo.getInstance(1, 1, 0), + 67, + true, + false, + false, + true); + public static UcdPropertyDetail ID_Continue_Detail = + new UcdPropertyDetail( + UcdProperty.ID_Continue, + VersionInfo.getInstance(1, 1, 0), + 68, + true, + false, + false, + true); + public static UcdPropertyDetail Other_ID_Continue_Detail = + new UcdPropertyDetail( + UcdProperty.Other_ID_Continue, + VersionInfo.getInstance(1, 1, 0), + 69, + true, + false, + false, + true); + public static UcdPropertyDetail XID_Continue_Detail = + new UcdPropertyDetail( + UcdProperty.XID_Continue, + VersionInfo.getInstance(1, 1, 0), + 70, + true, + false, + false, + true); + public static UcdPropertyDetail Soft_Dotted_Detail = + new UcdPropertyDetail( + UcdProperty.Soft_Dotted, + VersionInfo.getInstance(1, 1, 0), + 71, + true, + false, + false, + true); + public static UcdPropertyDetail Logical_Order_Exception_Detail = + new UcdPropertyDetail( + UcdProperty.Logical_Order_Exception, + VersionInfo.getInstance(1, 1, 0), + 72, + true, + false, + false, + true); + public static UcdPropertyDetail Pattern_White_Space_Detail = + new UcdPropertyDetail( + UcdProperty.Pattern_White_Space, + VersionInfo.getInstance(1, 1, 0), + 73, + true, + false, + false, + true); + public static UcdPropertyDetail Pattern_Syntax_Detail = + new UcdPropertyDetail( + UcdProperty.Pattern_Syntax, + VersionInfo.getInstance(1, 1, 0), + 74, + true, + false, + false, + true); + public static UcdPropertyDetail Grapheme_Cluster_Break_Detail = + new UcdPropertyDetail( + UcdProperty.Grapheme_Cluster_Break, + VersionInfo.getInstance(1, 1, 0), + 75, + true, + false, + false, + true); + public static UcdPropertyDetail Word_Break_Detail = + new UcdPropertyDetail( + UcdProperty.Word_Break, + VersionInfo.getInstance(1, 1, 0), + 76, + true, + false, + false, + true); + public static UcdPropertyDetail Sentence_Break_Detail = + new UcdPropertyDetail( + UcdProperty.Sentence_Break, + VersionInfo.getInstance(1, 1, 0), + 77, + true, + false, + false, + true); + public static UcdPropertyDetail Composition_Exclusion_Detail = + new UcdPropertyDetail( + UcdProperty.Composition_Exclusion, + VersionInfo.getInstance(1, 1, 0), + 78, + true, + false, + false, + true); + public static UcdPropertyDetail Full_Composition_Exclusion_Detail = + new UcdPropertyDetail( + UcdProperty.Full_Composition_Exclusion, + VersionInfo.getInstance(1, 1, 0), + 79, + true, + false, + false, + true); + public static UcdPropertyDetail NFC_Quick_Check_Detail = + new UcdPropertyDetail( + UcdProperty.NFC_Quick_Check, + VersionInfo.getInstance(1, 1, 0), + 80, + true, + false, + false, + true); + public static UcdPropertyDetail NFD_Quick_Check_Detail = + new UcdPropertyDetail( + UcdProperty.NFD_Quick_Check, + VersionInfo.getInstance(1, 1, 0), + 81, + true, + false, + false, + true); + public static UcdPropertyDetail NFKC_Quick_Check_Detail = + new UcdPropertyDetail( + UcdProperty.NFKC_Quick_Check, + VersionInfo.getInstance(1, 1, 0), + 82, + true, + false, + false, + true); + public static UcdPropertyDetail NFKD_Quick_Check_Detail = + new UcdPropertyDetail( + UcdProperty.NFKD_Quick_Check, + VersionInfo.getInstance(1, 1, 0), + 83, + true, + false, + false, + true); + public static UcdPropertyDetail Expands_On_NFC_Detail = + new UcdPropertyDetail( + UcdProperty.Expands_On_NFC, + VersionInfo.getInstance(1, 1, 0), + 84, + true, + false, + false, + true); + public static UcdPropertyDetail Expands_On_NFD_Detail = + new UcdPropertyDetail( + UcdProperty.Expands_On_NFD, + VersionInfo.getInstance(1, 1, 0), + 85, + true, + false, + false, + true); + public static UcdPropertyDetail Expands_On_NFKC_Detail = + new UcdPropertyDetail( + UcdProperty.Expands_On_NFKC, + VersionInfo.getInstance(1, 1, 0), + 86, + true, + false, + false, + true); + public static UcdPropertyDetail Expands_On_NFKD_Detail = + new UcdPropertyDetail( + UcdProperty.Expands_On_NFKD, + VersionInfo.getInstance(1, 1, 0), + 87, + true, + false, + false, + true); + public static UcdPropertyDetail FC_NFC_Closure_Detail = + new UcdPropertyDetail( + UcdProperty.FC_NFKC_Closure, + VersionInfo.getInstance(1, 1, 0), + 88, + true, + false, + false, + true); + public static UcdPropertyDetail Case_Ignorable_Detail = + new UcdPropertyDetail( + UcdProperty.Case_Ignorable, + VersionInfo.getInstance(5, 2, 0), + 89, + true, + false, + false, + true); + public static UcdPropertyDetail Cased_Detail = + new UcdPropertyDetail( + UcdProperty.Cased, + VersionInfo.getInstance(5, 2, 0), + 90, + true, + false, + false, + true); + public static UcdPropertyDetail Changes_When_CaseFolded_Detail = + new UcdPropertyDetail( + UcdProperty.Changes_When_Casefolded, + VersionInfo.getInstance(5, 2, 0), + 91, + true, + false, + false, + true); + public static UcdPropertyDetail Changes_When_CaseMapped_Detail = + new UcdPropertyDetail( + UcdProperty.Changes_When_Casemapped, + VersionInfo.getInstance(5, 2, 0), + 92, + true, + false, + false, + true); + public static UcdPropertyDetail Changes_When_NFKC_Casefolded_Detail = + new UcdPropertyDetail( + UcdProperty.Changes_When_NFKC_Casefolded, + VersionInfo.getInstance(5, 2, 0), + 93, + true, + false, + false, + true); + public static UcdPropertyDetail Changes_When_Lowercased_Detail = + new UcdPropertyDetail( + UcdProperty.Changes_When_Lowercased, + VersionInfo.getInstance(5, 2, 0), + 94, + true, + false, + false, + true); + public static UcdPropertyDetail Changes_When_Titlecased_Detail = + new UcdPropertyDetail( + UcdProperty.Changes_When_Titlecased, + VersionInfo.getInstance(5, 2, 0), + 95, + true, + false, + false, + true); + public static UcdPropertyDetail Changes_When_Uppercased_Detail = + new UcdPropertyDetail( + UcdProperty.Changes_When_Uppercased, + VersionInfo.getInstance(5, 2, 0), + 96, + true, + false, + false, + true); + public static UcdPropertyDetail NFKC_Casefold_Detail = + new UcdPropertyDetail( + UcdProperty.NFKC_Casefold, + VersionInfo.getInstance(5, 2, 0), + 97, + true, + false, + false, + true); + public static UcdPropertyDetail Indic_Syllabic_Category_Detail = + new UcdPropertyDetail( + UcdProperty.Indic_Syllabic_Category, + VersionInfo.getInstance(6, 0, 0), + 98, + true, + false, + false, + true); // public static UcdPropertyDetail Indic_Matra_Category_Detail = new UcdPropertyDetail ( -// UcdProperty.Indic_Matra_Category, VersionInfo.getInstance(6,0,0), VersionInfo.getInstance(7,0,0), 99, -// true, false, false, true); - public static UcdPropertyDetail Indic_Positional_Category_Detail = new UcdPropertyDetail( - UcdProperty.Indic_Positional_Category, VersionInfo.getInstance(8, 0, 0), 100, - true, false, false, true); - public static UcdPropertyDetail kJa_Detail = new UcdPropertyDetail( - UcdProperty.kJa, VersionInfo.getInstance(8, 0, 0), 101, - false, true, false, true); - public static UcdPropertyDetail Prepended_Concatenation_Mark_Detail = new UcdPropertyDetail( - UcdProperty.Prepended_Concatenation_Mark, VersionInfo.getInstance(9, 0, 0), 102, - true, false, false, true); - public static UcdPropertyDetail Vertical_Orientation_Detail = new UcdPropertyDetail( - UcdProperty.Vertical_Orientation, VersionInfo.getInstance(10, 0, 0), 103, - true, false, false, true); - public static UcdPropertyDetail Regional_Indicator_Detail = new UcdPropertyDetail( - UcdProperty.Regional_Indicator, VersionInfo.getInstance(10, 0, 0), 104, - true, false, false, true); - public static UcdPropertyDetail Block_Detail = new UcdPropertyDetail( - UcdProperty.Block, VersionInfo.getInstance(10, 0, 0), 105, - true, false, false, true); - public static UcdPropertyDetail Equivalent_Unified_Ideograph_Detail = new UcdPropertyDetail( - UcdProperty.Equivalent_Unified_Ideograph, VersionInfo.getInstance(11, 0, 0), 106, - false, true, false, true); - public static UcdPropertyDetail kCompatibilityVariant_Detail = new UcdPropertyDetail( - UcdProperty.kCompatibilityVariant, VersionInfo.getInstance(11, 0, 0), 107, - false, true, true, true); - public static UcdPropertyDetail kRSUnicode_Detail = new UcdPropertyDetail( - UcdProperty.kRSUnicode, VersionInfo.getInstance(11, 0, 0), 108, - false, true, false, true); + // UcdProperty.Indic_Matra_Category, VersionInfo.getInstance(6,0,0), + // VersionInfo.getInstance(7,0,0), 99, + // true, false, false, true); + public static UcdPropertyDetail Indic_Positional_Category_Detail = + new UcdPropertyDetail( + UcdProperty.Indic_Positional_Category, + VersionInfo.getInstance(8, 0, 0), + 100, + true, + false, + false, + true); + public static UcdPropertyDetail kJa_Detail = + new UcdPropertyDetail( + UcdProperty.kJa, + VersionInfo.getInstance(8, 0, 0), + 101, + false, + true, + false, + true); + public static UcdPropertyDetail Prepended_Concatenation_Mark_Detail = + new UcdPropertyDetail( + UcdProperty.Prepended_Concatenation_Mark, + VersionInfo.getInstance(9, 0, 0), + 102, + true, + false, + false, + true); + public static UcdPropertyDetail Vertical_Orientation_Detail = + new UcdPropertyDetail( + UcdProperty.Vertical_Orientation, + VersionInfo.getInstance(10, 0, 0), + 103, + true, + false, + false, + true); + public static UcdPropertyDetail Regional_Indicator_Detail = + new UcdPropertyDetail( + UcdProperty.Regional_Indicator, + VersionInfo.getInstance(10, 0, 0), + 104, + true, + false, + false, + true); + public static UcdPropertyDetail Block_Detail = + new UcdPropertyDetail( + UcdProperty.Block, + VersionInfo.getInstance(10, 0, 0), + 105, + true, + false, + false, + true); + public static UcdPropertyDetail Equivalent_Unified_Ideograph_Detail = + new UcdPropertyDetail( + UcdProperty.Equivalent_Unified_Ideograph, + VersionInfo.getInstance(11, 0, 0), + 106, + false, + true, + false, + true); + public static UcdPropertyDetail kCompatibilityVariant_Detail = + new UcdPropertyDetail( + UcdProperty.kCompatibilityVariant, + VersionInfo.getInstance(11, 0, 0), + 107, + false, + true, + true, + true); + public static UcdPropertyDetail kRSUnicode_Detail = + new UcdPropertyDetail( + UcdProperty.kRSUnicode, + VersionInfo.getInstance(11, 0, 0), + 108, + false, + true, + false, + true); // public static UcdPropertyDetail kIRG_RSIndex_Detail = new UcdPropertyDetail ( -// UcdProperty.kIRG_RSIndex, VersionInfo.getInstance(11,0,0), 109, -// false, true, false, true); - public static UcdPropertyDetail kIRG_GSource_Detail = new UcdPropertyDetail( - UcdProperty.kIRG_GSource, VersionInfo.getInstance(11, 0, 0), 110, - false, true, true, true); - public static UcdPropertyDetail kIRG_TSource_Detail = new UcdPropertyDetail( - UcdProperty.kIRG_TSource, VersionInfo.getInstance(11, 0, 0), 111, - false, true, true, true); - public static UcdPropertyDetail kIRG_JSource_Detail = new UcdPropertyDetail( - UcdProperty.kIRG_JSource, VersionInfo.getInstance(11, 0, 0), 112, - false, true, true, true); - public static UcdPropertyDetail kIRG_KSource_Detail = new UcdPropertyDetail( - UcdProperty.kIRG_KSource, VersionInfo.getInstance(11, 0, 0), 113, - false, true, true, true); - public static UcdPropertyDetail kIRG_KPSource_Detail = new UcdPropertyDetail( - UcdProperty.kIRG_KPSource, VersionInfo.getInstance(11, 0, 0), 114, - false, true, true, true); - public static UcdPropertyDetail kIRG_VSource_Detail = new UcdPropertyDetail( - UcdProperty.kIRG_VSource, VersionInfo.getInstance(11, 0, 0), 115, - false, true, true, true); - public static UcdPropertyDetail kIRG_HSource_Detail = new UcdPropertyDetail( - UcdProperty.kIRG_HSource, VersionInfo.getInstance(11, 0, 0), 116, - false, true, true, true); - public static UcdPropertyDetail kIRG_USource_Detail = new UcdPropertyDetail( - UcdProperty.kIRG_USource, VersionInfo.getInstance(11, 0, 0), 117, - false, true, true, true); - public static UcdPropertyDetail kIRG_MSource_Detail = new UcdPropertyDetail( - UcdProperty.kIRG_MSource, VersionInfo.getInstance(11, 0, 0), 118, - false, true, true, true); - public static UcdPropertyDetail kIRG_UKSource_Detail = new UcdPropertyDetail( - UcdProperty.kIRG_UKSource, VersionInfo.getInstance(13, 0, 0), 119, - false, true, true, true); - public static UcdPropertyDetail kIRG_SSource_Detail = new UcdPropertyDetail( - UcdProperty.kIRG_SSource, VersionInfo.getInstance(13, 0, 0), 120, - false, true, true, true); - public static UcdPropertyDetail kIICore_Detail = new UcdPropertyDetail( - UcdProperty.kIICore, VersionInfo.getInstance(11, 0, 0), 121, - false, true, false, true); - public static UcdPropertyDetail kUnihanCore2020_Detail = new UcdPropertyDetail( - UcdProperty.kUnihanCore2020, VersionInfo.getInstance(11, 0, 0), 122, - false, true, false, true); - public static UcdPropertyDetail kGB0_Detail = new UcdPropertyDetail( - UcdProperty.kGB0, VersionInfo.getInstance(11, 0, 0), 123, - false, true, false, true); - public static UcdPropertyDetail kGB1_Detail = new UcdPropertyDetail( - UcdProperty.kGB1, VersionInfo.getInstance(11, 0, 0), 124, - false, true, false, true); - public static UcdPropertyDetail kGB3_Detail = new UcdPropertyDetail( - UcdProperty.kGB3, VersionInfo.getInstance(11, 0, 0), 125, - false, true, false, true); - public static UcdPropertyDetail kGB5_Detail = new UcdPropertyDetail( - UcdProperty.kGB5, VersionInfo.getInstance(11, 0, 0), 126, - false, true, false, true); - public static UcdPropertyDetail kGB7_Detail = new UcdPropertyDetail( - UcdProperty.kGB7, VersionInfo.getInstance(11, 0, 0), 127, - false, true, false, true); - public static UcdPropertyDetail kGB8_Detail = new UcdPropertyDetail( - UcdProperty.kGB8, VersionInfo.getInstance(11, 0, 0), 128, - false, true, false, true); - public static UcdPropertyDetail kCNS1986_Detail = new UcdPropertyDetail( - UcdProperty.kCNS1986, VersionInfo.getInstance(11, 0, 0), 129, - false, true, false, true); - public static UcdPropertyDetail kCNS1992_Detail = new UcdPropertyDetail( - UcdProperty.kCNS1992, VersionInfo.getInstance(11, 0, 0), 130, - false, true, false, true); - public static UcdPropertyDetail kJis0_Detail = new UcdPropertyDetail( - UcdProperty.kJis0, VersionInfo.getInstance(11, 0, 0), 131, - false, true, false, true); - public static UcdPropertyDetail kJis1_Detail = new UcdPropertyDetail( - UcdProperty.kJis1, VersionInfo.getInstance(11, 0, 0), 132, - false, true, false, true); - public static UcdPropertyDetail kJIS0213_Detail = new UcdPropertyDetail( - UcdProperty.kJIS0213, VersionInfo.getInstance(11, 0, 0), 133, - false, true, false, true); - public static UcdPropertyDetail kKSC0_Detail = new UcdPropertyDetail( - UcdProperty.kKSC0, VersionInfo.getInstance(11, 0, 0), - VersionInfo.getInstance(15, 1, 0), 134, - false, true, false, true); - public static UcdPropertyDetail kKSC1_Detail = new UcdPropertyDetail( - UcdProperty.kKSC1, VersionInfo.getInstance(11, 0, 0), - VersionInfo.getInstance(15, 1, 0), 135, - false, true, false, true); - public static UcdPropertyDetail kKPS0_Detail = new UcdPropertyDetail( - UcdProperty.kKPS0, VersionInfo.getInstance(11, 0, 0), - VersionInfo.getInstance(15, 1, 0), 136, - false, true, false, true); - public static UcdPropertyDetail kKPS1_Detail = new UcdPropertyDetail( - UcdProperty.kKPS1, VersionInfo.getInstance(11, 0, 0), - VersionInfo.getInstance(15, 1, 0), 137, - false, true, false, true); - public static UcdPropertyDetail kHKSCS_Detail = new UcdPropertyDetail( - UcdProperty.kHKSCS, VersionInfo.getInstance(11, 0, 0), - VersionInfo.getInstance(15, 1, 0), 138, - false, true, false, true); - public static UcdPropertyDetail kCantonese_Detail = new UcdPropertyDetail( - UcdProperty.kCantonese, VersionInfo.getInstance(11, 0, 0), 139, - false, true, false, true); - public static UcdPropertyDetail kHangul_Detail = new UcdPropertyDetail( - UcdProperty.kHangul, VersionInfo.getInstance(11, 0, 0), 140, - false, true, false, true); - public static UcdPropertyDetail kDefinition_Detail = new UcdPropertyDetail( - UcdProperty.kDefinition, VersionInfo.getInstance(11, 0, 0), 141, - false, true, false, true); - public static UcdPropertyDetail kHanYu_Detail = new UcdPropertyDetail( - UcdProperty.kHanYu, VersionInfo.getInstance(11, 0, 0), 142, - false, true, false, true); + // UcdProperty.kIRG_RSIndex, VersionInfo.getInstance(11,0,0), 109, + // false, true, false, true); + public static UcdPropertyDetail kIRG_GSource_Detail = + new UcdPropertyDetail( + UcdProperty.kIRG_GSource, + VersionInfo.getInstance(11, 0, 0), + 110, + false, + true, + true, + true); + public static UcdPropertyDetail kIRG_TSource_Detail = + new UcdPropertyDetail( + UcdProperty.kIRG_TSource, + VersionInfo.getInstance(11, 0, 0), + 111, + false, + true, + true, + true); + public static UcdPropertyDetail kIRG_JSource_Detail = + new UcdPropertyDetail( + UcdProperty.kIRG_JSource, + VersionInfo.getInstance(11, 0, 0), + 112, + false, + true, + true, + true); + public static UcdPropertyDetail kIRG_KSource_Detail = + new UcdPropertyDetail( + UcdProperty.kIRG_KSource, + VersionInfo.getInstance(11, 0, 0), + 113, + false, + true, + true, + true); + public static UcdPropertyDetail kIRG_KPSource_Detail = + new UcdPropertyDetail( + UcdProperty.kIRG_KPSource, + VersionInfo.getInstance(11, 0, 0), + 114, + false, + true, + true, + true); + public static UcdPropertyDetail kIRG_VSource_Detail = + new UcdPropertyDetail( + UcdProperty.kIRG_VSource, + VersionInfo.getInstance(11, 0, 0), + 115, + false, + true, + true, + true); + public static UcdPropertyDetail kIRG_HSource_Detail = + new UcdPropertyDetail( + UcdProperty.kIRG_HSource, + VersionInfo.getInstance(11, 0, 0), + 116, + false, + true, + true, + true); + public static UcdPropertyDetail kIRG_USource_Detail = + new UcdPropertyDetail( + UcdProperty.kIRG_USource, + VersionInfo.getInstance(11, 0, 0), + 117, + false, + true, + true, + true); + public static UcdPropertyDetail kIRG_MSource_Detail = + new UcdPropertyDetail( + UcdProperty.kIRG_MSource, + VersionInfo.getInstance(11, 0, 0), + 118, + false, + true, + true, + true); + public static UcdPropertyDetail kIRG_UKSource_Detail = + new UcdPropertyDetail( + UcdProperty.kIRG_UKSource, + VersionInfo.getInstance(13, 0, 0), + 119, + false, + true, + true, + true); + public static UcdPropertyDetail kIRG_SSource_Detail = + new UcdPropertyDetail( + UcdProperty.kIRG_SSource, + VersionInfo.getInstance(13, 0, 0), + 120, + false, + true, + true, + true); + public static UcdPropertyDetail kIICore_Detail = + new UcdPropertyDetail( + UcdProperty.kIICore, + VersionInfo.getInstance(11, 0, 0), + 121, + false, + true, + false, + true); + public static UcdPropertyDetail kUnihanCore2020_Detail = + new UcdPropertyDetail( + UcdProperty.kUnihanCore2020, + VersionInfo.getInstance(11, 0, 0), + 122, + false, + true, + false, + true); + public static UcdPropertyDetail kGB0_Detail = + new UcdPropertyDetail( + UcdProperty.kGB0, + VersionInfo.getInstance(11, 0, 0), + 123, + false, + true, + false, + true); + public static UcdPropertyDetail kGB1_Detail = + new UcdPropertyDetail( + UcdProperty.kGB1, + VersionInfo.getInstance(11, 0, 0), + 124, + false, + true, + false, + true); + public static UcdPropertyDetail kGB3_Detail = + new UcdPropertyDetail( + UcdProperty.kGB3, + VersionInfo.getInstance(11, 0, 0), + 125, + false, + true, + false, + true); + public static UcdPropertyDetail kGB5_Detail = + new UcdPropertyDetail( + UcdProperty.kGB5, + VersionInfo.getInstance(11, 0, 0), + 126, + false, + true, + false, + true); + public static UcdPropertyDetail kGB7_Detail = + new UcdPropertyDetail( + UcdProperty.kGB7, + VersionInfo.getInstance(11, 0, 0), + 127, + false, + true, + false, + true); + public static UcdPropertyDetail kGB8_Detail = + new UcdPropertyDetail( + UcdProperty.kGB8, + VersionInfo.getInstance(11, 0, 0), + 128, + false, + true, + false, + true); + public static UcdPropertyDetail kCNS1986_Detail = + new UcdPropertyDetail( + UcdProperty.kCNS1986, + VersionInfo.getInstance(11, 0, 0), + 129, + false, + true, + false, + true); + public static UcdPropertyDetail kCNS1992_Detail = + new UcdPropertyDetail( + UcdProperty.kCNS1992, + VersionInfo.getInstance(11, 0, 0), + 130, + false, + true, + false, + true); + public static UcdPropertyDetail kJis0_Detail = + new UcdPropertyDetail( + UcdProperty.kJis0, + VersionInfo.getInstance(11, 0, 0), + 131, + false, + true, + false, + true); + public static UcdPropertyDetail kJis1_Detail = + new UcdPropertyDetail( + UcdProperty.kJis1, + VersionInfo.getInstance(11, 0, 0), + 132, + false, + true, + false, + true); + public static UcdPropertyDetail kJIS0213_Detail = + new UcdPropertyDetail( + UcdProperty.kJIS0213, + VersionInfo.getInstance(11, 0, 0), + 133, + false, + true, + false, + true); + public static UcdPropertyDetail kKSC0_Detail = + new UcdPropertyDetail( + UcdProperty.kKSC0, + VersionInfo.getInstance(11, 0, 0), + VersionInfo.getInstance(15, 1, 0), + 134, + false, + true, + false, + true); + public static UcdPropertyDetail kKSC1_Detail = + new UcdPropertyDetail( + UcdProperty.kKSC1, + VersionInfo.getInstance(11, 0, 0), + VersionInfo.getInstance(15, 1, 0), + 135, + false, + true, + false, + true); + public static UcdPropertyDetail kKPS0_Detail = + new UcdPropertyDetail( + UcdProperty.kKPS0, + VersionInfo.getInstance(11, 0, 0), + VersionInfo.getInstance(15, 1, 0), + 136, + false, + true, + false, + true); + public static UcdPropertyDetail kKPS1_Detail = + new UcdPropertyDetail( + UcdProperty.kKPS1, + VersionInfo.getInstance(11, 0, 0), + VersionInfo.getInstance(15, 1, 0), + 137, + false, + true, + false, + true); + public static UcdPropertyDetail kHKSCS_Detail = + new UcdPropertyDetail( + UcdProperty.kHKSCS, + VersionInfo.getInstance(11, 0, 0), + VersionInfo.getInstance(15, 1, 0), + 138, + false, + true, + false, + true); + public static UcdPropertyDetail kCantonese_Detail = + new UcdPropertyDetail( + UcdProperty.kCantonese, + VersionInfo.getInstance(11, 0, 0), + 139, + false, + true, + false, + true); + public static UcdPropertyDetail kHangul_Detail = + new UcdPropertyDetail( + UcdProperty.kHangul, + VersionInfo.getInstance(11, 0, 0), + 140, + false, + true, + false, + true); + public static UcdPropertyDetail kDefinition_Detail = + new UcdPropertyDetail( + UcdProperty.kDefinition, + VersionInfo.getInstance(11, 0, 0), + 141, + false, + true, + false, + true); + public static UcdPropertyDetail kHanYu_Detail = + new UcdPropertyDetail( + UcdProperty.kHanYu, + VersionInfo.getInstance(11, 0, 0), + 142, + false, + true, + false, + true); // public static UcdPropertyDetail kAlternateHanYu_Detail = new UcdPropertyDetail ( -// UcdProperty.kAlternateHanYu, VersionInfo.getInstance(11,0,0), 143, -// false, true, false, true); - public static UcdPropertyDetail kMandarin_Detail = new UcdPropertyDetail( - UcdProperty.kMandarin, VersionInfo.getInstance(11, 0, 0), 144, - false, true, false, true); - public static UcdPropertyDetail kCihaiT_Detail = new UcdPropertyDetail( - UcdProperty.kCihaiT, VersionInfo.getInstance(11, 0, 0), 145, - false, true, false, true); - public static UcdPropertyDetail kSBGY_Detail = new UcdPropertyDetail( - UcdProperty.kSBGY, VersionInfo.getInstance(11, 0, 0), 146, - false, true, false, true); - public static UcdPropertyDetail kNelson_Detail = new UcdPropertyDetail( - UcdProperty.kNelson, VersionInfo.getInstance(11, 0, 0), 147, - false, true, false, true); - public static UcdPropertyDetail kCowles_Detail = new UcdPropertyDetail( - UcdProperty.kCowles, VersionInfo.getInstance(11, 0, 0), 148, - false, true, false, true); - public static UcdPropertyDetail kMatthews_Detail = new UcdPropertyDetail( - UcdProperty.kMatthews, VersionInfo.getInstance(11, 0, 0), 149, - false, true, false, true); - public static UcdPropertyDetail kOtherNumeric_Detail = new UcdPropertyDetail( - UcdProperty.kOtherNumeric, VersionInfo.getInstance(11, 0, 0), 150, - false, true, false, true); - public static UcdPropertyDetail kPhonetic_Detail = new UcdPropertyDetail( - UcdProperty.kPhonetic, VersionInfo.getInstance(11, 0, 0), 151, - false, true, false, true); - public static UcdPropertyDetail kGSR_Detail = new UcdPropertyDetail( - UcdProperty.kGSR, VersionInfo.getInstance(11, 0, 0), 152, - false, true, false, true); - public static UcdPropertyDetail kFenn_Detail = new UcdPropertyDetail( - UcdProperty.kFenn, VersionInfo.getInstance(11, 0, 0), 153, - false, true, false, true); - public static UcdPropertyDetail kFennIndex_Detail = new UcdPropertyDetail( - UcdProperty.kFennIndex, VersionInfo.getInstance(11, 0, 0), 154, - false, true, false, true); - public static UcdPropertyDetail kKarlgren_Detail = new UcdPropertyDetail( - UcdProperty.kKarlgren, VersionInfo.getInstance(11, 0, 0), 155, - false, true, false, true); - public static UcdPropertyDetail kCangjie_Detail = new UcdPropertyDetail( - UcdProperty.kCangjie, VersionInfo.getInstance(11, 0, 0), 156, - false, true, false, true); - public static UcdPropertyDetail kMeyerWempe_Detail = new UcdPropertyDetail( - UcdProperty.kMeyerWempe, VersionInfo.getInstance(11, 0, 0), 157, - false, true, false, true); - public static UcdPropertyDetail kSimplifiedVariant_Detail = new UcdPropertyDetail( - UcdProperty.kSimplifiedVariant, VersionInfo.getInstance(11, 0, 0), 158, - false, true, false, true); - public static UcdPropertyDetail kTraditionalVariant_Detail = new UcdPropertyDetail( - UcdProperty.kTraditionalVariant, VersionInfo.getInstance(11, 0, 0), 159, - false, true, false, true); - public static UcdPropertyDetail kSpecializedSemanticVariant_Detail = new UcdPropertyDetail( - UcdProperty.kSpecializedSemanticVariant, VersionInfo.getInstance(11, 0, 0), 160, - false, true, false, true); - public static UcdPropertyDetail kSemanticVariant_Detail = new UcdPropertyDetail( - UcdProperty.kSemanticVariant, VersionInfo.getInstance(11, 0, 0), 161, - false, true, false, true); - public static UcdPropertyDetail kVietnamese_Detail = new UcdPropertyDetail( - UcdProperty.kVietnamese, VersionInfo.getInstance(11, 0, 0), 162, - false, true, false, true); - public static UcdPropertyDetail kLau_Detail = new UcdPropertyDetail( - UcdProperty.kLau, VersionInfo.getInstance(11, 0, 0), 163, - false, true, false, true); - public static UcdPropertyDetail kTang_Detail = new UcdPropertyDetail( - UcdProperty.kTang, VersionInfo.getInstance(11, 0, 0), 164, - false, true, false, true); - public static UcdPropertyDetail kZVariant_Detail = new UcdPropertyDetail( - UcdProperty.kZVariant, VersionInfo.getInstance(11, 0, 0), 165, - false, true, false, true); - public static UcdPropertyDetail kJapaneseKun_Detail = new UcdPropertyDetail( - UcdProperty.kJapaneseKun, VersionInfo.getInstance(11, 0, 0), 166, - false, true, false, true); - public static UcdPropertyDetail kJapaneseOn_Detail = new UcdPropertyDetail( - UcdProperty.kJapaneseOn, VersionInfo.getInstance(11, 0, 0), 167, - false, true, false, true); - public static UcdPropertyDetail kKangXi_Detail = new UcdPropertyDetail( - UcdProperty.kKangXi, VersionInfo.getInstance(11, 0, 0), 168, - false, true, false, true); + // UcdProperty.kAlternateHanYu, VersionInfo.getInstance(11,0,0), 143, + // false, true, false, true); + public static UcdPropertyDetail kMandarin_Detail = + new UcdPropertyDetail( + UcdProperty.kMandarin, + VersionInfo.getInstance(11, 0, 0), + 144, + false, + true, + false, + true); + public static UcdPropertyDetail kCihaiT_Detail = + new UcdPropertyDetail( + UcdProperty.kCihaiT, + VersionInfo.getInstance(11, 0, 0), + 145, + false, + true, + false, + true); + public static UcdPropertyDetail kSBGY_Detail = + new UcdPropertyDetail( + UcdProperty.kSBGY, + VersionInfo.getInstance(11, 0, 0), + 146, + false, + true, + false, + true); + public static UcdPropertyDetail kNelson_Detail = + new UcdPropertyDetail( + UcdProperty.kNelson, + VersionInfo.getInstance(11, 0, 0), + 147, + false, + true, + false, + true); + public static UcdPropertyDetail kCowles_Detail = + new UcdPropertyDetail( + UcdProperty.kCowles, + VersionInfo.getInstance(11, 0, 0), + 148, + false, + true, + false, + true); + public static UcdPropertyDetail kMatthews_Detail = + new UcdPropertyDetail( + UcdProperty.kMatthews, + VersionInfo.getInstance(11, 0, 0), + 149, + false, + true, + false, + true); + public static UcdPropertyDetail kOtherNumeric_Detail = + new UcdPropertyDetail( + UcdProperty.kOtherNumeric, + VersionInfo.getInstance(11, 0, 0), + 150, + false, + true, + false, + true); + public static UcdPropertyDetail kPhonetic_Detail = + new UcdPropertyDetail( + UcdProperty.kPhonetic, + VersionInfo.getInstance(11, 0, 0), + 151, + false, + true, + false, + true); + public static UcdPropertyDetail kGSR_Detail = + new UcdPropertyDetail( + UcdProperty.kGSR, + VersionInfo.getInstance(11, 0, 0), + 152, + false, + true, + false, + true); + public static UcdPropertyDetail kFenn_Detail = + new UcdPropertyDetail( + UcdProperty.kFenn, + VersionInfo.getInstance(11, 0, 0), + 153, + false, + true, + false, + true); + public static UcdPropertyDetail kFennIndex_Detail = + new UcdPropertyDetail( + UcdProperty.kFennIndex, + VersionInfo.getInstance(11, 0, 0), + 154, + false, + true, + false, + true); + public static UcdPropertyDetail kKarlgren_Detail = + new UcdPropertyDetail( + UcdProperty.kKarlgren, + VersionInfo.getInstance(11, 0, 0), + 155, + false, + true, + false, + true); + public static UcdPropertyDetail kCangjie_Detail = + new UcdPropertyDetail( + UcdProperty.kCangjie, + VersionInfo.getInstance(11, 0, 0), + 156, + false, + true, + false, + true); + public static UcdPropertyDetail kMeyerWempe_Detail = + new UcdPropertyDetail( + UcdProperty.kMeyerWempe, + VersionInfo.getInstance(11, 0, 0), + 157, + false, + true, + false, + true); + public static UcdPropertyDetail kSimplifiedVariant_Detail = + new UcdPropertyDetail( + UcdProperty.kSimplifiedVariant, + VersionInfo.getInstance(11, 0, 0), + 158, + false, + true, + false, + true); + public static UcdPropertyDetail kTraditionalVariant_Detail = + new UcdPropertyDetail( + UcdProperty.kTraditionalVariant, + VersionInfo.getInstance(11, 0, 0), + 159, + false, + true, + false, + true); + public static UcdPropertyDetail kSpecializedSemanticVariant_Detail = + new UcdPropertyDetail( + UcdProperty.kSpecializedSemanticVariant, + VersionInfo.getInstance(11, 0, 0), + 160, + false, + true, + false, + true); + public static UcdPropertyDetail kSemanticVariant_Detail = + new UcdPropertyDetail( + UcdProperty.kSemanticVariant, + VersionInfo.getInstance(11, 0, 0), + 161, + false, + true, + false, + true); + public static UcdPropertyDetail kVietnamese_Detail = + new UcdPropertyDetail( + UcdProperty.kVietnamese, + VersionInfo.getInstance(11, 0, 0), + 162, + false, + true, + false, + true); + public static UcdPropertyDetail kLau_Detail = + new UcdPropertyDetail( + UcdProperty.kLau, + VersionInfo.getInstance(11, 0, 0), + 163, + false, + true, + false, + true); + public static UcdPropertyDetail kTang_Detail = + new UcdPropertyDetail( + UcdProperty.kTang, + VersionInfo.getInstance(11, 0, 0), + 164, + false, + true, + false, + true); + public static UcdPropertyDetail kZVariant_Detail = + new UcdPropertyDetail( + UcdProperty.kZVariant, + VersionInfo.getInstance(11, 0, 0), + 165, + false, + true, + false, + true); + public static UcdPropertyDetail kJapaneseKun_Detail = + new UcdPropertyDetail( + UcdProperty.kJapaneseKun, + VersionInfo.getInstance(11, 0, 0), + 166, + false, + true, + false, + true); + public static UcdPropertyDetail kJapaneseOn_Detail = + new UcdPropertyDetail( + UcdProperty.kJapaneseOn, + VersionInfo.getInstance(11, 0, 0), + 167, + false, + true, + false, + true); + public static UcdPropertyDetail kKangXi_Detail = + new UcdPropertyDetail( + UcdProperty.kKangXi, + VersionInfo.getInstance(11, 0, 0), + 168, + false, + true, + false, + true); // public static UcdPropertyDetail kAlternateKangXi_Detail = new UcdPropertyDetail ( -// UcdProperty.kAlternateKangXi, VersionInfo.getInstance(11,0,0), 169, -// false, true, false, true); - public static UcdPropertyDetail kBigFive_Detail = new UcdPropertyDetail( - UcdProperty.kBigFive, VersionInfo.getInstance(11, 0, 0), 170, - false, true, false, true); - public static UcdPropertyDetail kCCCII_Detail = new UcdPropertyDetail( - UcdProperty.kCCCII, VersionInfo.getInstance(11, 0, 0), 171, - false, true, false, true); - public static UcdPropertyDetail kDaeJaweon_Detail = new UcdPropertyDetail( - UcdProperty.kDaeJaweon, VersionInfo.getInstance(11, 0, 0), 172, - false, true, false, true); - public static UcdPropertyDetail kEACC_Detail = new UcdPropertyDetail( - UcdProperty.kEACC, VersionInfo.getInstance(11, 0, 0), 173, - false, true, false, true); - public static UcdPropertyDetail kFrequency_Detail = new UcdPropertyDetail( - UcdProperty.kFrequency, VersionInfo.getInstance(11, 0, 0), - VersionInfo.getInstance(16, 0, 0), 174, - false, true, false, true); - public static UcdPropertyDetail kGradeLevel_Detail = new UcdPropertyDetail( - UcdProperty.kGradeLevel, VersionInfo.getInstance(11, 0, 0), 175, - false, true, false, true); - public static UcdPropertyDetail kHDZRadBreak_Detail = new UcdPropertyDetail( - UcdProperty.kHDZRadBreak, VersionInfo.getInstance(11, 0, 0), 176, - false, true, false, true); - public static UcdPropertyDetail kHKGlyph_Detail = new UcdPropertyDetail( - UcdProperty.kHKGlyph, VersionInfo.getInstance(11, 0, 0), 177, - false, true, false, true); - public static UcdPropertyDetail kHanyuPinlu_Detail = new UcdPropertyDetail( - UcdProperty.kHanyuPinlu, VersionInfo.getInstance(11, 0, 0), 178, - false, true, false, true); - public static UcdPropertyDetail kHanyuPinyin_Detail = new UcdPropertyDetail( - UcdProperty.kHanyuPinyin, VersionInfo.getInstance(11, 0, 0), 179, - false, true, false, true); - public static UcdPropertyDetail kIRGHanyuDaZidian_Detail = new UcdPropertyDetail( - UcdProperty.kIRGHanyuDaZidian, VersionInfo.getInstance(11, 0, 0), 180, - false, true, false, true); - public static UcdPropertyDetail kIRGKangXi_Detail = new UcdPropertyDetail( - UcdProperty.kIRGKangXi, VersionInfo.getInstance(11, 0, 0), 181, - false, true, false, true); - public static UcdPropertyDetail kIRGDaeJaweon_Detail = new UcdPropertyDetail( - UcdProperty.kIRGDaeJaweon, VersionInfo.getInstance(11, 0, 0), 182, - false, true, false, true); - public static UcdPropertyDetail kIRGDaiKanwaZiten_Detail = new UcdPropertyDetail( - UcdProperty.kIRGDaiKanwaZiten, VersionInfo.getInstance(11, 0, 0), - VersionInfo.getInstance(15, 1, 0), 183, - false, true, false, true); - public static UcdPropertyDetail kKorean_Detail = new UcdPropertyDetail( - UcdProperty.kKorean, VersionInfo.getInstance(11, 0, 0), 184, - false, true, false, true); - public static UcdPropertyDetail kMainlandTelegraph_Detail = new UcdPropertyDetail( - UcdProperty.kMainlandTelegraph, VersionInfo.getInstance(11, 0, 0), 185, - false, true, false, true); - public static UcdPropertyDetail kMorohashi_Detail = new UcdPropertyDetail( - UcdProperty.kMorohashi, VersionInfo.getInstance(11, 0, 0), 186, - false, true, false, true); + // UcdProperty.kAlternateKangXi, VersionInfo.getInstance(11,0,0), 169, + // false, true, false, true); + public static UcdPropertyDetail kBigFive_Detail = + new UcdPropertyDetail( + UcdProperty.kBigFive, + VersionInfo.getInstance(11, 0, 0), + 170, + false, + true, + false, + true); + public static UcdPropertyDetail kCCCII_Detail = + new UcdPropertyDetail( + UcdProperty.kCCCII, + VersionInfo.getInstance(11, 0, 0), + 171, + false, + true, + false, + true); + public static UcdPropertyDetail kDaeJaweon_Detail = + new UcdPropertyDetail( + UcdProperty.kDaeJaweon, + VersionInfo.getInstance(11, 0, 0), + 172, + false, + true, + false, + true); + public static UcdPropertyDetail kEACC_Detail = + new UcdPropertyDetail( + UcdProperty.kEACC, + VersionInfo.getInstance(11, 0, 0), + 173, + false, + true, + false, + true); + public static UcdPropertyDetail kFrequency_Detail = + new UcdPropertyDetail( + UcdProperty.kFrequency, + VersionInfo.getInstance(11, 0, 0), + VersionInfo.getInstance(16, 0, 0), + 174, + false, + true, + false, + true); + public static UcdPropertyDetail kGradeLevel_Detail = + new UcdPropertyDetail( + UcdProperty.kGradeLevel, + VersionInfo.getInstance(11, 0, 0), + 175, + false, + true, + false, + true); + public static UcdPropertyDetail kHDZRadBreak_Detail = + new UcdPropertyDetail( + UcdProperty.kHDZRadBreak, + VersionInfo.getInstance(11, 0, 0), + 176, + false, + true, + false, + true); + public static UcdPropertyDetail kHKGlyph_Detail = + new UcdPropertyDetail( + UcdProperty.kHKGlyph, + VersionInfo.getInstance(11, 0, 0), + 177, + false, + true, + false, + true); + public static UcdPropertyDetail kHanyuPinlu_Detail = + new UcdPropertyDetail( + UcdProperty.kHanyuPinlu, + VersionInfo.getInstance(11, 0, 0), + 178, + false, + true, + false, + true); + public static UcdPropertyDetail kHanyuPinyin_Detail = + new UcdPropertyDetail( + UcdProperty.kHanyuPinyin, + VersionInfo.getInstance(11, 0, 0), + 179, + false, + true, + false, + true); + public static UcdPropertyDetail kIRGHanyuDaZidian_Detail = + new UcdPropertyDetail( + UcdProperty.kIRGHanyuDaZidian, + VersionInfo.getInstance(11, 0, 0), + 180, + false, + true, + false, + true); + public static UcdPropertyDetail kIRGKangXi_Detail = + new UcdPropertyDetail( + UcdProperty.kIRGKangXi, + VersionInfo.getInstance(11, 0, 0), + 181, + false, + true, + false, + true); + public static UcdPropertyDetail kIRGDaeJaweon_Detail = + new UcdPropertyDetail( + UcdProperty.kIRGDaeJaweon, + VersionInfo.getInstance(11, 0, 0), + 182, + false, + true, + false, + true); + public static UcdPropertyDetail kIRGDaiKanwaZiten_Detail = + new UcdPropertyDetail( + UcdProperty.kIRGDaiKanwaZiten, + VersionInfo.getInstance(11, 0, 0), + VersionInfo.getInstance(15, 1, 0), + 183, + false, + true, + false, + true); + public static UcdPropertyDetail kKorean_Detail = + new UcdPropertyDetail( + UcdProperty.kKorean, + VersionInfo.getInstance(11, 0, 0), + 184, + false, + true, + false, + true); + public static UcdPropertyDetail kMainlandTelegraph_Detail = + new UcdPropertyDetail( + UcdProperty.kMainlandTelegraph, + VersionInfo.getInstance(11, 0, 0), + 185, + false, + true, + false, + true); + public static UcdPropertyDetail kMorohashi_Detail = + new UcdPropertyDetail( + UcdProperty.kMorohashi, + VersionInfo.getInstance(11, 0, 0), + 186, + false, + true, + false, + true); // public static UcdPropertyDetail kAlternateMorohashi_Detail = new UcdPropertyDetail ( -// UcdProperty.kAlternateMorohashi, VersionInfo.getInstance(11,0,0), 187, -// false, true, false, true); - public static UcdPropertyDetail kPrimaryNumeric_Detail = new UcdPropertyDetail( - UcdProperty.kPrimaryNumeric, VersionInfo.getInstance(11, 0, 0), 188, - false, true, false, true); - public static UcdPropertyDetail kTaiwanTelegraph_Detail = new UcdPropertyDetail( - UcdProperty.kTaiwanTelegraph, VersionInfo.getInstance(11, 0, 0), 189, - false, true, false, true); - public static UcdPropertyDetail kXerox_Detail = new UcdPropertyDetail( - UcdProperty.kXerox, VersionInfo.getInstance(11, 0, 0), 190, - false, true, false, true); - public static UcdPropertyDetail kPseudoGB1_Detail = new UcdPropertyDetail( - UcdProperty.kPseudoGB1, VersionInfo.getInstance(11, 0, 0), 191, - false, true, false, true); - public static UcdPropertyDetail kIBMJapan_Detail = new UcdPropertyDetail( - UcdProperty.kIBMJapan, VersionInfo.getInstance(11, 0, 0), 192, - false, true, false, true); - public static UcdPropertyDetail kAccountingNumeric_Detail = new UcdPropertyDetail( - UcdProperty.kAccountingNumeric, VersionInfo.getInstance(11, 0, 0), 193, - false, true, false, true); - public static UcdPropertyDetail kCheungBauer_Detail = new UcdPropertyDetail( - UcdProperty.kCheungBauer, VersionInfo.getInstance(11, 0, 0), 194, - false, true, false, true); - public static UcdPropertyDetail kCheungBauerIndex_Detail = new UcdPropertyDetail( - UcdProperty.kCheungBauerIndex, VersionInfo.getInstance(11, 0, 0), 195, - false, true, false, true); - public static UcdPropertyDetail kFourCornerCode_Detail = new UcdPropertyDetail( - UcdProperty.kFourCornerCode, VersionInfo.getInstance(11, 0, 0), 196, - false, true, false, true); + // UcdProperty.kAlternateMorohashi, VersionInfo.getInstance(11,0,0), 187, + // false, true, false, true); + public static UcdPropertyDetail kPrimaryNumeric_Detail = + new UcdPropertyDetail( + UcdProperty.kPrimaryNumeric, + VersionInfo.getInstance(11, 0, 0), + 188, + false, + true, + false, + true); + public static UcdPropertyDetail kTaiwanTelegraph_Detail = + new UcdPropertyDetail( + UcdProperty.kTaiwanTelegraph, + VersionInfo.getInstance(11, 0, 0), + 189, + false, + true, + false, + true); + public static UcdPropertyDetail kXerox_Detail = + new UcdPropertyDetail( + UcdProperty.kXerox, + VersionInfo.getInstance(11, 0, 0), + 190, + false, + true, + false, + true); + public static UcdPropertyDetail kPseudoGB1_Detail = + new UcdPropertyDetail( + UcdProperty.kPseudoGB1, + VersionInfo.getInstance(11, 0, 0), + 191, + false, + true, + false, + true); + public static UcdPropertyDetail kIBMJapan_Detail = + new UcdPropertyDetail( + UcdProperty.kIBMJapan, + VersionInfo.getInstance(11, 0, 0), + 192, + false, + true, + false, + true); + public static UcdPropertyDetail kAccountingNumeric_Detail = + new UcdPropertyDetail( + UcdProperty.kAccountingNumeric, + VersionInfo.getInstance(11, 0, 0), + 193, + false, + true, + false, + true); + public static UcdPropertyDetail kCheungBauer_Detail = + new UcdPropertyDetail( + UcdProperty.kCheungBauer, + VersionInfo.getInstance(11, 0, 0), + 194, + false, + true, + false, + true); + public static UcdPropertyDetail kCheungBauerIndex_Detail = + new UcdPropertyDetail( + UcdProperty.kCheungBauerIndex, + VersionInfo.getInstance(11, 0, 0), + 195, + false, + true, + false, + true); + public static UcdPropertyDetail kFourCornerCode_Detail = + new UcdPropertyDetail( + UcdProperty.kFourCornerCode, + VersionInfo.getInstance(11, 0, 0), + 196, + false, + true, + false, + true); // public static UcdPropertyDetail kWubi_Detail = new UcdPropertyDetail ( -// UcdProperty.kWubi, VersionInfo.getInstance(11,0,0), 197, -// false, true, false, true); - public static UcdPropertyDetail kXHC1983_Detail = new UcdPropertyDetail( - UcdProperty.kXHC1983, VersionInfo.getInstance(11, 0, 0), 198, - false, true, false, true); - public static UcdPropertyDetail kJinmeiyoKanji_Detail = new UcdPropertyDetail( - UcdProperty.kJinmeiyoKanji, VersionInfo.getInstance(11, 0, 0), 199, - false, true, false, true); - public static UcdPropertyDetail kJoyoKanji_Detail = new UcdPropertyDetail( - UcdProperty.kJoyoKanji, VersionInfo.getInstance(11, 0, 0), 200, - false, true, false, true); - public static UcdPropertyDetail kKoreanEducationHanja_Detail = new UcdPropertyDetail( - UcdProperty.kKoreanEducationHanja, VersionInfo.getInstance(11, 0, 0), 201, - false, true, false, true); - public static UcdPropertyDetail kKoreanName_Detail = new UcdPropertyDetail( - UcdProperty.kKoreanName, VersionInfo.getInstance(11, 0, 0), 202, - false, true, false, true); - public static UcdPropertyDetail kTGH_Detail = new UcdPropertyDetail( - UcdProperty.kTGH, VersionInfo.getInstance(11, 0, 0), 203, - false, true, false, true); - public static UcdPropertyDetail kTGHZ2013_Detail = new UcdPropertyDetail( - UcdProperty.kTGHZ2013, VersionInfo.getInstance(11, 0, 0), 204, - false, true, false, true); - public static UcdPropertyDetail kSpoofingVariant_Detail = new UcdPropertyDetail( - UcdProperty.kSpoofingVariant, VersionInfo.getInstance(11, 0, 0), 205, - false, true, false, true); - public static UcdPropertyDetail kRSKanWa_Detail = new UcdPropertyDetail( - UcdProperty.kRSKanWa, VersionInfo.getInstance(11, 0, 0), 206, - false, true, false, true); - public static UcdPropertyDetail kRSJapanese_Detail = new UcdPropertyDetail( - UcdProperty.kRSJapanese, VersionInfo.getInstance(11, 0, 0), 207, - false, true, false, true); - public static UcdPropertyDetail kRSKorean_Detail = new UcdPropertyDetail( - UcdProperty.kRSKorean, VersionInfo.getInstance(11, 0, 0), 208, - false, true, false, true); - public static UcdPropertyDetail kRSKangXi_Detail = new UcdPropertyDetail( - UcdProperty.kRSKangXi, VersionInfo.getInstance(11, 0, 0), - VersionInfo.getInstance(15, 1, 0), 209, - false, true, false, true); - public static UcdPropertyDetail kRSAdobe_Japan1_6_Detail = new UcdPropertyDetail( - UcdProperty.kRSAdobe_Japan1_6, VersionInfo.getInstance(11, 0, 0), 210, - false, true, false, true); - public static UcdPropertyDetail kTotalStrokes_Detail = new UcdPropertyDetail( - UcdProperty.kTotalStrokes, VersionInfo.getInstance(11, 0, 0), 211, - false, true, false, true); - public static UcdPropertyDetail kRSTUnicode_Detail = new UcdPropertyDetail( - UcdProperty.kRSTUnicode, VersionInfo.getInstance(9, 0, 0), 212, - false, true, false, true); - public static UcdPropertyDetail kTGT_MergedSrc_Detail = new UcdPropertyDetail( - UcdProperty.kTGT_MergedSrc, VersionInfo.getInstance(9, 0, 0), 213, - false, true, false, true); - public static UcdPropertyDetail kSrc_NushuDuben_Detail = new UcdPropertyDetail( - UcdProperty.kSrc_NushuDuben, VersionInfo.getInstance(10, 0, 0), 214, - false, true, false, true); - public static UcdPropertyDetail kReading_Detail = new UcdPropertyDetail( - UcdProperty.kReading, VersionInfo.getInstance(10, 0, 0), 215, - false, true, false, true); - public static UcdPropertyDetail ISO_Comment_Detail = new UcdPropertyDetail( - UcdProperty.ISO_Comment, VersionInfo.getInstance(11, 0, 0), 216, - true, false, false, true); - public static UcdPropertyDetail Unicode_1_Name_Detail = new UcdPropertyDetail( - UcdProperty.Unicode_1_Name, VersionInfo.getInstance(11, 0, 0), 217, - true, false, false, true); - public static UcdPropertyDetail Name_Alias_Detail = new UcdPropertyDetail( - UcdProperty.Name_Alias, VersionInfo.getInstance(11, 0, 0), 218, - false, false, false, true); - public static UcdPropertyDetail Emoji_Detail = new UcdPropertyDetail( - UcdProperty.Emoji, VersionInfo.getInstance(13, 0, 0), 219, - true, false, false, true); - public static UcdPropertyDetail Emoji_Presentation_Detail = new UcdPropertyDetail( - UcdProperty.Emoji_Presentation, VersionInfo.getInstance(13, 0, 0), 220, - true, false, false, true); - public static UcdPropertyDetail Emoji_Modifier_Detail = new UcdPropertyDetail( - UcdProperty.Emoji_Modifier, VersionInfo.getInstance(13, 0, 0), 221, - true, false, false, true); - public static UcdPropertyDetail Emoji_Modifier_Base_Detail = new UcdPropertyDetail( - UcdProperty.Emoji_Modifier_Base, VersionInfo.getInstance(13, 0, 0), 222, - true, false, false, true); - public static UcdPropertyDetail Emoji_Component_Detail = new UcdPropertyDetail( - UcdProperty.Emoji_Component, VersionInfo.getInstance(13, 0, 0), 223, - true, false, false, true); - public static UcdPropertyDetail Extended_Pictographic_Detail = new UcdPropertyDetail( - UcdProperty.Extended_Pictographic, VersionInfo.getInstance(13, 0, 0), 224, - true, false, false, true); - public static UcdPropertyDetail kStrange_Detail = new UcdPropertyDetail( - UcdProperty.kStrange, VersionInfo.getInstance(14, 0, 0), 225, - false, true, false, true); - public static UcdPropertyDetail kAlternateTotalStrokes_Detail = new UcdPropertyDetail( - UcdProperty.kAlternateTotalStrokes, VersionInfo.getInstance(15, 0, 0), 226, - false, true, false, true); - public static UcdPropertyDetail NFKC_Simple_Casefold_Detail = new UcdPropertyDetail( - UcdProperty.NFKC_Simple_Casefold, VersionInfo.getInstance(15, 1, 0), 227, - true, false, false, true); - public static UcdPropertyDetail ID_Compat_Math_Start_Detail = new UcdPropertyDetail( - UcdProperty.ID_Compat_Math_Start, VersionInfo.getInstance(15, 1, 0), 228, - true, false, false, true); - public static UcdPropertyDetail ID_Compat_Math_Continue_Detail = new UcdPropertyDetail( - UcdProperty.ID_Compat_Math_Continue, VersionInfo.getInstance(15, 1, 0), 229, - true, false, false, true); - public static UcdPropertyDetail IDS_Unary_Operator_Detail = new UcdPropertyDetail( - UcdProperty.IDS_Unary_Operator, VersionInfo.getInstance(15, 1, 0), 230, - true, false, false, true); - public static UcdPropertyDetail kJapanese_Detail = new UcdPropertyDetail( - UcdProperty.kJapanese, VersionInfo.getInstance(15, 1, 0), 231, - false, true, false, true); - public static UcdPropertyDetail kMojiJoho_Detail = new UcdPropertyDetail( - UcdProperty.kMojiJoho, VersionInfo.getInstance(15, 1, 0), 232, - false, true, false, true); - public static UcdPropertyDetail kSMSZD2003Index_Detail = new UcdPropertyDetail( - UcdProperty.kSMSZD2003Index, VersionInfo.getInstance(15, 1, 0), 233, - false, true, false, true); - public static UcdPropertyDetail kSMSZD2003Readings_Detail = new UcdPropertyDetail( - UcdProperty.kSMSZD2003Readings, VersionInfo.getInstance(15, 1, 0), 234, - false, true, false, true); - public static UcdPropertyDetail kVietnameseNumeric_Detail = new UcdPropertyDetail( - UcdProperty.kVietnameseNumeric, VersionInfo.getInstance(15, 1, 0), 235, - false, true, false, true); - public static UcdPropertyDetail kZhuangNumeric_Detail = new UcdPropertyDetail( - UcdProperty.kZhuangNumeric, VersionInfo.getInstance(15, 1, 0), 236, - false, true, false, true); - public static UcdPropertyDetail Indic_Conjunct_Break_Detail = new UcdPropertyDetail( - UcdProperty.Indic_Conjunct_Break, VersionInfo.getInstance(15, 1, 0), 237, - true, false, false, true); - public static UcdPropertyDetail Modifier_Combining_Mark_Detail = new UcdPropertyDetail( - UcdProperty.Modifier_Combining_Mark, VersionInfo.getInstance(16, 0, 0), 238, - true, false, false, true); - public static UcdPropertyDetail kFanqie_Detail = new UcdPropertyDetail( - UcdProperty.kFanqie, VersionInfo.getInstance(16, 0, 0), 239, - false, true, false, true); - public static UcdPropertyDetail kZhuang_Detail = new UcdPropertyDetail( - UcdProperty.kZhuang, VersionInfo.getInstance(16, 0, 0), 240, - false, true, false, true); - public static UcdPropertyDetail Basic_Emoji_Detail = new UcdPropertyDetail( - UcdProperty.Basic_Emoji, -1, - false, false, false, false); - public static UcdPropertyDetail CJK_Radical_Detail = new UcdPropertyDetail( - UcdProperty.CJK_Radical, -2, - false, false, false, false); - public static UcdPropertyDetail Confusable_MA_Detail = new UcdPropertyDetail( - UcdProperty.Confusable_MA, -3, - false, false, false, false); - public static UcdPropertyDetail Confusable_ML_Detail = new UcdPropertyDetail( - UcdProperty.Confusable_ML, -4, - false, false, false, false); - public static UcdPropertyDetail Confusable_SA_Detail = new UcdPropertyDetail( - UcdProperty.Confusable_SA, -5, - false, false, false, false); - public static UcdPropertyDetail Confusable_SL_Detail = new UcdPropertyDetail( - UcdProperty.Confusable_SL, -6, - false, false, false, false); - public static UcdPropertyDetail Do_Not_Emit_Preferred_Detail = new UcdPropertyDetail( - UcdProperty.Do_Not_Emit_Preferred, -7, - false, false, false, false); - public static UcdPropertyDetail Do_Not_Emit_Type_Detail = new UcdPropertyDetail( - UcdProperty.Do_Not_Emit_Type, -8, - false, false, false, false); - public static UcdPropertyDetail Emoji_DCM_Detail = new UcdPropertyDetail( - UcdProperty.Emoji_DCM, VersionInfo.getInstance(6, 0, 0), -9, - false, false, false, false); - public static UcdPropertyDetail Emoji_KDDI_Detail = new UcdPropertyDetail( - UcdProperty.Emoji_KDDI, VersionInfo.getInstance(6, 0, 0), -10, - false, false, false, false); - public static UcdPropertyDetail Emoji_SB_Detail = new UcdPropertyDetail( - UcdProperty.Emoji_SB, VersionInfo.getInstance(6, 0, 0), -11, - false, false, false, false); - public static UcdPropertyDetail Identifier_Status_Detail = new UcdPropertyDetail( - UcdProperty.Identifier_Status, VersionInfo.getInstance(9, 0, 0), -12, - false, false, false, false); - public static UcdPropertyDetail Identifier_Type_Detail = new UcdPropertyDetail( - UcdProperty.Identifier_Type, VersionInfo.getInstance(9, 0, 0), -13, - false, false, false, false); - public static UcdPropertyDetail Idn_2008_Detail = new UcdPropertyDetail( - UcdProperty.Idn_2008, -14, - false, false, false, false); - public static UcdPropertyDetail Idn_Mapping_Detail = new UcdPropertyDetail( - UcdProperty.Idn_Mapping, -15, - false, false, false, false); - public static UcdPropertyDetail Idn_Status_Detail = new UcdPropertyDetail( - UcdProperty.Idn_Status, -16, - false, false, false, false); - public static UcdPropertyDetail Named_Sequences_Detail = new UcdPropertyDetail( - UcdProperty.Named_Sequences, -17, - false, false, false, false); - public static UcdPropertyDetail Named_Sequences_Prov_Detail = new UcdPropertyDetail( - UcdProperty.Named_Sequences_Prov, -18, - false, false, false, false); - public static UcdPropertyDetail Other_Joining_Type_Detail = new UcdPropertyDetail( - UcdProperty.Other_Joining_Type, -19, - false, false, false, false); - public static UcdPropertyDetail RGI_Emoji_Flag_Sequence_Detail = new UcdPropertyDetail( - UcdProperty.RGI_Emoji_Flag_Sequence, -20, - false, false, false, false); - public static UcdPropertyDetail RGI_Emoji_Keycap_Sequence_Detail = new UcdPropertyDetail( - UcdProperty.RGI_Emoji_Keycap_Sequence, -21, - false, false, false, false); - public static UcdPropertyDetail RGI_Emoji_Modifier_Sequence_Detail = new UcdPropertyDetail( - UcdProperty.RGI_Emoji_Modifier_Sequence, -22, - false, false, false, false); - public static UcdPropertyDetail RGI_Emoji_Tag_Sequence_Detail = new UcdPropertyDetail( - UcdProperty.RGI_Emoji_Tag_Sequence, -23, - false, false, false, false); - public static UcdPropertyDetail RGI_Emoji_Zwj_Sequence_Detail = new UcdPropertyDetail( - UcdProperty.RGI_Emoji_Zwj_Sequence, -24, - false, false, false, false); - public static UcdPropertyDetail Standardized_Variant_Detail = new UcdPropertyDetail( - UcdProperty.Standardized_Variant, -25, - false, false, false, false); + // UcdProperty.kWubi, VersionInfo.getInstance(11,0,0), 197, + // false, true, false, true); + public static UcdPropertyDetail kXHC1983_Detail = + new UcdPropertyDetail( + UcdProperty.kXHC1983, + VersionInfo.getInstance(11, 0, 0), + 198, + false, + true, + false, + true); + public static UcdPropertyDetail kJinmeiyoKanji_Detail = + new UcdPropertyDetail( + UcdProperty.kJinmeiyoKanji, + VersionInfo.getInstance(11, 0, 0), + 199, + false, + true, + false, + true); + public static UcdPropertyDetail kJoyoKanji_Detail = + new UcdPropertyDetail( + UcdProperty.kJoyoKanji, + VersionInfo.getInstance(11, 0, 0), + 200, + false, + true, + false, + true); + public static UcdPropertyDetail kKoreanEducationHanja_Detail = + new UcdPropertyDetail( + UcdProperty.kKoreanEducationHanja, + VersionInfo.getInstance(11, 0, 0), + 201, + false, + true, + false, + true); + public static UcdPropertyDetail kKoreanName_Detail = + new UcdPropertyDetail( + UcdProperty.kKoreanName, + VersionInfo.getInstance(11, 0, 0), + 202, + false, + true, + false, + true); + public static UcdPropertyDetail kTGH_Detail = + new UcdPropertyDetail( + UcdProperty.kTGH, + VersionInfo.getInstance(11, 0, 0), + 203, + false, + true, + false, + true); + public static UcdPropertyDetail kTGHZ2013_Detail = + new UcdPropertyDetail( + UcdProperty.kTGHZ2013, + VersionInfo.getInstance(11, 0, 0), + 204, + false, + true, + false, + true); + public static UcdPropertyDetail kSpoofingVariant_Detail = + new UcdPropertyDetail( + UcdProperty.kSpoofingVariant, + VersionInfo.getInstance(11, 0, 0), + 205, + false, + true, + false, + true); + public static UcdPropertyDetail kRSKanWa_Detail = + new UcdPropertyDetail( + UcdProperty.kRSKanWa, + VersionInfo.getInstance(11, 0, 0), + 206, + false, + true, + false, + true); + public static UcdPropertyDetail kRSJapanese_Detail = + new UcdPropertyDetail( + UcdProperty.kRSJapanese, + VersionInfo.getInstance(11, 0, 0), + 207, + false, + true, + false, + true); + public static UcdPropertyDetail kRSKorean_Detail = + new UcdPropertyDetail( + UcdProperty.kRSKorean, + VersionInfo.getInstance(11, 0, 0), + 208, + false, + true, + false, + true); + public static UcdPropertyDetail kRSKangXi_Detail = + new UcdPropertyDetail( + UcdProperty.kRSKangXi, + VersionInfo.getInstance(11, 0, 0), + VersionInfo.getInstance(15, 1, 0), + 209, + false, + true, + false, + true); + public static UcdPropertyDetail kRSAdobe_Japan1_6_Detail = + new UcdPropertyDetail( + UcdProperty.kRSAdobe_Japan1_6, + VersionInfo.getInstance(11, 0, 0), + 210, + false, + true, + false, + true); + public static UcdPropertyDetail kTotalStrokes_Detail = + new UcdPropertyDetail( + UcdProperty.kTotalStrokes, + VersionInfo.getInstance(11, 0, 0), + 211, + false, + true, + false, + true); + public static UcdPropertyDetail kRSTUnicode_Detail = + new UcdPropertyDetail( + UcdProperty.kRSTUnicode, + VersionInfo.getInstance(9, 0, 0), + 212, + false, + true, + false, + true); + public static UcdPropertyDetail kTGT_MergedSrc_Detail = + new UcdPropertyDetail( + UcdProperty.kTGT_MergedSrc, + VersionInfo.getInstance(9, 0, 0), + 213, + false, + true, + false, + true); + public static UcdPropertyDetail kSrc_NushuDuben_Detail = + new UcdPropertyDetail( + UcdProperty.kSrc_NushuDuben, + VersionInfo.getInstance(10, 0, 0), + 214, + false, + true, + false, + true); + public static UcdPropertyDetail kReading_Detail = + new UcdPropertyDetail( + UcdProperty.kReading, + VersionInfo.getInstance(10, 0, 0), + 215, + false, + true, + false, + true); + public static UcdPropertyDetail ISO_Comment_Detail = + new UcdPropertyDetail( + UcdProperty.ISO_Comment, + VersionInfo.getInstance(11, 0, 0), + 216, + true, + false, + false, + true); + public static UcdPropertyDetail Unicode_1_Name_Detail = + new UcdPropertyDetail( + UcdProperty.Unicode_1_Name, + VersionInfo.getInstance(11, 0, 0), + 217, + true, + false, + false, + true); + public static UcdPropertyDetail Name_Alias_Detail = + new UcdPropertyDetail( + UcdProperty.Name_Alias, + VersionInfo.getInstance(11, 0, 0), + 218, + false, + false, + false, + true); + public static UcdPropertyDetail Emoji_Detail = + new UcdPropertyDetail( + UcdProperty.Emoji, + VersionInfo.getInstance(13, 0, 0), + 219, + true, + false, + false, + true); + public static UcdPropertyDetail Emoji_Presentation_Detail = + new UcdPropertyDetail( + UcdProperty.Emoji_Presentation, + VersionInfo.getInstance(13, 0, 0), + 220, + true, + false, + false, + true); + public static UcdPropertyDetail Emoji_Modifier_Detail = + new UcdPropertyDetail( + UcdProperty.Emoji_Modifier, + VersionInfo.getInstance(13, 0, 0), + 221, + true, + false, + false, + true); + public static UcdPropertyDetail Emoji_Modifier_Base_Detail = + new UcdPropertyDetail( + UcdProperty.Emoji_Modifier_Base, + VersionInfo.getInstance(13, 0, 0), + 222, + true, + false, + false, + true); + public static UcdPropertyDetail Emoji_Component_Detail = + new UcdPropertyDetail( + UcdProperty.Emoji_Component, + VersionInfo.getInstance(13, 0, 0), + 223, + true, + false, + false, + true); + public static UcdPropertyDetail Extended_Pictographic_Detail = + new UcdPropertyDetail( + UcdProperty.Extended_Pictographic, + VersionInfo.getInstance(13, 0, 0), + 224, + true, + false, + false, + true); + public static UcdPropertyDetail kStrange_Detail = + new UcdPropertyDetail( + UcdProperty.kStrange, + VersionInfo.getInstance(14, 0, 0), + 225, + false, + true, + false, + true); + public static UcdPropertyDetail kAlternateTotalStrokes_Detail = + new UcdPropertyDetail( + UcdProperty.kAlternateTotalStrokes, + VersionInfo.getInstance(15, 0, 0), + 226, + false, + true, + false, + true); + public static UcdPropertyDetail NFKC_Simple_Casefold_Detail = + new UcdPropertyDetail( + UcdProperty.NFKC_Simple_Casefold, + VersionInfo.getInstance(15, 1, 0), + 227, + true, + false, + false, + true); + public static UcdPropertyDetail ID_Compat_Math_Start_Detail = + new UcdPropertyDetail( + UcdProperty.ID_Compat_Math_Start, + VersionInfo.getInstance(15, 1, 0), + 228, + true, + false, + false, + true); + public static UcdPropertyDetail ID_Compat_Math_Continue_Detail = + new UcdPropertyDetail( + UcdProperty.ID_Compat_Math_Continue, + VersionInfo.getInstance(15, 1, 0), + 229, + true, + false, + false, + true); + public static UcdPropertyDetail IDS_Unary_Operator_Detail = + new UcdPropertyDetail( + UcdProperty.IDS_Unary_Operator, + VersionInfo.getInstance(15, 1, 0), + 230, + true, + false, + false, + true); + public static UcdPropertyDetail kJapanese_Detail = + new UcdPropertyDetail( + UcdProperty.kJapanese, + VersionInfo.getInstance(15, 1, 0), + 231, + false, + true, + false, + true); + public static UcdPropertyDetail kMojiJoho_Detail = + new UcdPropertyDetail( + UcdProperty.kMojiJoho, + VersionInfo.getInstance(15, 1, 0), + 232, + false, + true, + false, + true); + public static UcdPropertyDetail kSMSZD2003Index_Detail = + new UcdPropertyDetail( + UcdProperty.kSMSZD2003Index, + VersionInfo.getInstance(15, 1, 0), + 233, + false, + true, + false, + true); + public static UcdPropertyDetail kSMSZD2003Readings_Detail = + new UcdPropertyDetail( + UcdProperty.kSMSZD2003Readings, + VersionInfo.getInstance(15, 1, 0), + 234, + false, + true, + false, + true); + public static UcdPropertyDetail kVietnameseNumeric_Detail = + new UcdPropertyDetail( + UcdProperty.kVietnameseNumeric, + VersionInfo.getInstance(15, 1, 0), + 235, + false, + true, + false, + true); + public static UcdPropertyDetail kZhuangNumeric_Detail = + new UcdPropertyDetail( + UcdProperty.kZhuangNumeric, + VersionInfo.getInstance(15, 1, 0), + 236, + false, + true, + false, + true); + public static UcdPropertyDetail Indic_Conjunct_Break_Detail = + new UcdPropertyDetail( + UcdProperty.Indic_Conjunct_Break, + VersionInfo.getInstance(15, 1, 0), + 237, + true, + false, + false, + true); + public static UcdPropertyDetail Modifier_Combining_Mark_Detail = + new UcdPropertyDetail( + UcdProperty.Modifier_Combining_Mark, + VersionInfo.getInstance(16, 0, 0), + 238, + true, + false, + false, + true); + public static UcdPropertyDetail kFanqie_Detail = + new UcdPropertyDetail( + UcdProperty.kFanqie, + VersionInfo.getInstance(16, 0, 0), + 239, + false, + true, + false, + true); + public static UcdPropertyDetail kZhuang_Detail = + new UcdPropertyDetail( + UcdProperty.kZhuang, + VersionInfo.getInstance(16, 0, 0), + 240, + false, + true, + false, + true); + public static UcdPropertyDetail Basic_Emoji_Detail = + new UcdPropertyDetail(UcdProperty.Basic_Emoji, -1, false, false, false, false); + public static UcdPropertyDetail CJK_Radical_Detail = + new UcdPropertyDetail(UcdProperty.CJK_Radical, -2, false, false, false, false); + public static UcdPropertyDetail Confusable_MA_Detail = + new UcdPropertyDetail(UcdProperty.Confusable_MA, -3, false, false, false, false); + public static UcdPropertyDetail Confusable_ML_Detail = + new UcdPropertyDetail(UcdProperty.Confusable_ML, -4, false, false, false, false); + public static UcdPropertyDetail Confusable_SA_Detail = + new UcdPropertyDetail(UcdProperty.Confusable_SA, -5, false, false, false, false); + public static UcdPropertyDetail Confusable_SL_Detail = + new UcdPropertyDetail(UcdProperty.Confusable_SL, -6, false, false, false, false); + public static UcdPropertyDetail Do_Not_Emit_Preferred_Detail = + new UcdPropertyDetail( + UcdProperty.Do_Not_Emit_Preferred, -7, false, false, false, false); + public static UcdPropertyDetail Do_Not_Emit_Type_Detail = + new UcdPropertyDetail(UcdProperty.Do_Not_Emit_Type, -8, false, false, false, false); + public static UcdPropertyDetail Emoji_DCM_Detail = + new UcdPropertyDetail( + UcdProperty.Emoji_DCM, + VersionInfo.getInstance(6, 0, 0), + -9, + false, + false, + false, + false); + public static UcdPropertyDetail Emoji_KDDI_Detail = + new UcdPropertyDetail( + UcdProperty.Emoji_KDDI, + VersionInfo.getInstance(6, 0, 0), + -10, + false, + false, + false, + false); + public static UcdPropertyDetail Emoji_SB_Detail = + new UcdPropertyDetail( + UcdProperty.Emoji_SB, + VersionInfo.getInstance(6, 0, 0), + -11, + false, + false, + false, + false); + public static UcdPropertyDetail Identifier_Status_Detail = + new UcdPropertyDetail( + UcdProperty.Identifier_Status, + VersionInfo.getInstance(9, 0, 0), + -12, + false, + false, + false, + false); + public static UcdPropertyDetail Identifier_Type_Detail = + new UcdPropertyDetail( + UcdProperty.Identifier_Type, + VersionInfo.getInstance(9, 0, 0), + -13, + false, + false, + false, + false); + public static UcdPropertyDetail Idn_2008_Detail = + new UcdPropertyDetail(UcdProperty.Idn_2008, -14, false, false, false, false); + public static UcdPropertyDetail Idn_Mapping_Detail = + new UcdPropertyDetail(UcdProperty.Idn_Mapping, -15, false, false, false, false); + public static UcdPropertyDetail Idn_Status_Detail = + new UcdPropertyDetail(UcdProperty.Idn_Status, -16, false, false, false, false); + public static UcdPropertyDetail Named_Sequences_Detail = + new UcdPropertyDetail(UcdProperty.Named_Sequences, -17, false, false, false, false); + public static UcdPropertyDetail Named_Sequences_Prov_Detail = + new UcdPropertyDetail( + UcdProperty.Named_Sequences_Prov, -18, false, false, false, false); + public static UcdPropertyDetail Other_Joining_Type_Detail = + new UcdPropertyDetail(UcdProperty.Other_Joining_Type, -19, false, false, false, false); + public static UcdPropertyDetail RGI_Emoji_Flag_Sequence_Detail = + new UcdPropertyDetail( + UcdProperty.RGI_Emoji_Flag_Sequence, -20, false, false, false, false); + public static UcdPropertyDetail RGI_Emoji_Keycap_Sequence_Detail = + new UcdPropertyDetail( + UcdProperty.RGI_Emoji_Keycap_Sequence, -21, false, false, false, false); + public static UcdPropertyDetail RGI_Emoji_Modifier_Sequence_Detail = + new UcdPropertyDetail( + UcdProperty.RGI_Emoji_Modifier_Sequence, -22, false, false, false, false); + public static UcdPropertyDetail RGI_Emoji_Tag_Sequence_Detail = + new UcdPropertyDetail( + UcdProperty.RGI_Emoji_Tag_Sequence, -23, false, false, false, false); + public static UcdPropertyDetail RGI_Emoji_Zwj_Sequence_Detail = + new UcdPropertyDetail( + UcdProperty.RGI_Emoji_Zwj_Sequence, -24, false, false, false, false); + public static UcdPropertyDetail Standardized_Variant_Detail = + new UcdPropertyDetail( + UcdProperty.Standardized_Variant, -25, false, false, false, false); private UcdProperty ucdProperty; private VersionInfo minVersion; @@ -835,8 +2250,14 @@ private UcdPropertyDetail( boolean isCJKShowIfEmpty, boolean isOrgUCDXMLAttribute) { this( - ucdProperty, minVersion, null, - sortOrder, isBaseAttribute, isCJKAttribute, isCJKShowIfEmpty, isOrgUCDXMLAttribute); + ucdProperty, + minVersion, + null, + sortOrder, + isBaseAttribute, + isCJKAttribute, + isCJKShowIfEmpty, + isOrgUCDXMLAttribute); } private UcdPropertyDetail( @@ -847,8 +2268,14 @@ private UcdPropertyDetail( boolean isCJKShowIfEmpty, boolean isOrgUCDXMLAttribute) { this( - ucdProperty, null, null, - sortOrder, isBaseAttribute, isCJKAttribute, isCJKShowIfEmpty, isOrgUCDXMLAttribute); + ucdProperty, + null, + null, + sortOrder, + isBaseAttribute, + isCJKAttribute, + isCJKShowIfEmpty, + isOrgUCDXMLAttribute); } private UcdPropertyDetail( @@ -923,4 +2350,4 @@ public boolean isCJKShowIfEmpty() { public boolean isOrgUCDXMLAttribute() { return this.isOrgUCDXMLAttribute; } -} \ No newline at end of file +} diff --git a/unicodetools/src/main/java/org/unicode/xml/UcdSectionDetail.java b/unicodetools/src/main/java/org/unicode/xml/UcdSectionDetail.java index c9f938410..3b93a8520 100644 --- a/unicodetools/src/main/java/org/unicode/xml/UcdSectionDetail.java +++ b/unicodetools/src/main/java/org/unicode/xml/UcdSectionDetail.java @@ -3,24 +3,65 @@ import com.ibm.icu.util.VersionInfo; import org.unicode.props.UcdProperty; -import java.util.LinkedHashSet; -import java.util.Set; - public class UcdSectionDetail { public enum UcdSection { - BLOCKS("blocks", "block", VersionInfo.getInstance(1, 1, 0), null, Blocks_Detail, true, true), - CJKRADICALS("cjk-radicals", "cjk-radical", VersionInfo.getInstance(1, 1, 0), null, CJKRadicals_Detail, false, + BLOCKS( + "blocks", + "block", + VersionInfo.getInstance(1, 1, 0), + null, + Blocks_Detail, + true, + true), + CJKRADICALS( + "cjk-radicals", + "cjk-radical", + VersionInfo.getInstance(1, 1, 0), + null, + CJKRadicals_Detail, + false, + false), + DONOTEMIT( + "do-not-emit", + "instead", + VersionInfo.getInstance(16, 0, 0), + null, + DoNotEmit_Detail, + false, + false), + EMOJISOURCES( + "emoji-sources", + "emoji-source", + VersionInfo.getInstance(1, 1, 0), + null, + EmojiSources_Detail, + true, + false), + NAMEDSEQUENCES( + "named-sequences", + "named-sequence", + VersionInfo.getInstance(1, 1, 0), + null, + NamedSequences_Detail, + false, + false), + NORMALIZATIONCORRECTIONS( + "normalization-corrections", + "normalization-correction", + VersionInfo.getInstance(1, 1, 0), + null, + NormalizationCorrections_Detail, + true, false), - DONOTEMIT("do-not-emit", "instead", VersionInfo.getInstance(16, 0, 0), null, DoNotEmit_Detail, false, false), - EMOJISOURCES("emoji-sources", "emoji-source", VersionInfo.getInstance(1, 1, 0), null, EmojiSources_Detail, - true, false), - NAMEDSEQUENCES("named-sequences", "named-sequence", VersionInfo.getInstance(1, 1, 0), null, - NamedSequences_Detail, false, false), - NORMALIZATIONCORRECTIONS("normalization-corrections", "normalization-correction", VersionInfo.getInstance(1, - 1, 0), null, NormalizationCorrections_Detail, true, false), - STANDARDIZEDVARIANTS("standardized-variants", "standardized-variant", VersionInfo.getInstance(1, 1, 0), null, - StandardizedVariants_Detail, true, false); + STANDARDIZEDVARIANTS( + "standardized-variants", + "standardized-variant", + VersionInfo.getInstance(1, 1, 0), + null, + StandardizedVariants_Detail, + true, + false); private final String tag; private final String childTag; private final VersionInfo minVersion; @@ -75,82 +116,77 @@ public boolean getParserWithMissing() { } } - public static UcdSectionDetail Blocks_Detail = new UcdSectionDetail( - UcdSection.BLOCKS, - new UcdSectionComponent[]{ - new UcdSectionComponent( - VersionInfo.getInstance(1, 1, 0), - null, - UcdProperty.Block) - }, - 0); - public static UcdSectionDetail NamedSequences_Detail = new UcdSectionDetail( - UcdSection.NAMEDSEQUENCES, - new UcdSectionComponent[]{ - new UcdSectionComponent( - VersionInfo.getInstance(1, 1, 0), - null, - UcdProperty.Named_Sequences) - }, - 1); - public static UcdSectionDetail NormalizationCorrections_Detail = new UcdSectionDetail( - UcdSection.NORMALIZATIONCORRECTIONS, - new UcdSectionComponent[]{ - new UcdSectionComponent( - VersionInfo.getInstance(1, 1, 0), - null, - UcdProperty.NC_Original) - }, - 2); - public static UcdSectionDetail StandardizedVariants_Detail = new UcdSectionDetail( - UcdSection.STANDARDIZEDVARIANTS, - new UcdSectionComponent[]{ - new UcdSectionComponent( - VersionInfo.getInstance(1, 1, 0), - null, - UcdProperty.Standardized_Variant), - new UcdSectionComponent( - VersionInfo.getInstance(13, 1, 0), - null, - UcdProperty.emoji_variation_sequence) - }, - 3); - public static UcdSectionDetail CJKRadicals_Detail = new UcdSectionDetail( - UcdSection.CJKRADICALS, - new UcdSectionComponent[]{ - new UcdSectionComponent( - VersionInfo.getInstance(1, 1, 0), - null, - UcdProperty.CJK_Radical) - }, - 4); - public static UcdSectionDetail EmojiSources_Detail = new UcdSectionDetail( - UcdSection.EMOJISOURCES, - new UcdSectionComponent[]{ - new UcdSectionComponent( - VersionInfo.getInstance(1, 1, 0), - null, - UcdProperty.Emoji_DCM) - }, - 5); - public static UcdSectionDetail DoNotEmit_Detail = new UcdSectionDetail( - UcdSection.DONOTEMIT, - new UcdSectionComponent[]{ - new UcdSectionComponent( - VersionInfo.getInstance(1, 1, 0), - null, - UcdProperty.Do_Not_Emit_Type) - }, - 6); + public static UcdSectionDetail Blocks_Detail = + new UcdSectionDetail( + UcdSection.BLOCKS, + new UcdSectionComponent[] { + new UcdSectionComponent( + VersionInfo.getInstance(1, 1, 0), null, UcdProperty.Block) + }, + 0); + public static UcdSectionDetail NamedSequences_Detail = + new UcdSectionDetail( + UcdSection.NAMEDSEQUENCES, + new UcdSectionComponent[] { + new UcdSectionComponent( + VersionInfo.getInstance(1, 1, 0), null, UcdProperty.Named_Sequences) + }, + 1); + public static UcdSectionDetail NormalizationCorrections_Detail = + new UcdSectionDetail( + UcdSection.NORMALIZATIONCORRECTIONS, + new UcdSectionComponent[] { + new UcdSectionComponent( + VersionInfo.getInstance(1, 1, 0), null, UcdProperty.NC_Original) + }, + 2); + public static UcdSectionDetail StandardizedVariants_Detail = + new UcdSectionDetail( + UcdSection.STANDARDIZEDVARIANTS, + new UcdSectionComponent[] { + new UcdSectionComponent( + VersionInfo.getInstance(1, 1, 0), + null, + UcdProperty.Standardized_Variant), + new UcdSectionComponent( + VersionInfo.getInstance(13, 1, 0), + null, + UcdProperty.emoji_variation_sequence) + }, + 3); + public static UcdSectionDetail CJKRadicals_Detail = + new UcdSectionDetail( + UcdSection.CJKRADICALS, + new UcdSectionComponent[] { + new UcdSectionComponent( + VersionInfo.getInstance(1, 1, 0), null, UcdProperty.CJK_Radical) + }, + 4); + public static UcdSectionDetail EmojiSources_Detail = + new UcdSectionDetail( + UcdSection.EMOJISOURCES, + new UcdSectionComponent[] { + new UcdSectionComponent( + VersionInfo.getInstance(1, 1, 0), null, UcdProperty.Emoji_DCM) + }, + 5); + public static UcdSectionDetail DoNotEmit_Detail = + new UcdSectionDetail( + UcdSection.DONOTEMIT, + new UcdSectionComponent[] { + new UcdSectionComponent( + VersionInfo.getInstance(1, 1, 0), + null, + UcdProperty.Do_Not_Emit_Type) + }, + 6); private final UcdSection ucdSection; private final UcdSectionComponent[] ucdSectionComponents; private final int sortOrder; private UcdSectionDetail( - UcdSection ucdSection, - UcdSectionComponent[] ucdSectionComponents, - int sortOrder) { + UcdSection ucdSection, UcdSectionComponent[] ucdSectionComponents, int sortOrder) { this.ucdSection = ucdSection; this.ucdSectionComponents = ucdSectionComponents; this.sortOrder = sortOrder; @@ -167,4 +203,4 @@ public UcdSectionComponent[] getUcdSectionComponents() { public int getSortOrder() { return this.sortOrder; } -} \ No newline at end of file +} diff --git a/unicodetools/src/main/java/org/unicode/xml/UcdXML.java b/unicodetools/src/main/java/org/unicode/xml/UcdXML.java index e40cc0d6f..409c6b959 100644 --- a/unicodetools/src/main/java/org/unicode/xml/UcdXML.java +++ b/unicodetools/src/main/java/org/unicode/xml/UcdXML.java @@ -2,19 +2,17 @@ import com.ibm.icu.dev.tool.UOption; import com.ibm.icu.util.VersionInfo; -import org.unicode.props.IndexUnicodeProperties; -import org.unicode.props.UcdProperty; -import org.unicode.props.UcdPropertyValues; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.AttributesImpl; - -import javax.xml.transform.TransformerConfigurationException; import java.io.*; import java.nio.charset.StandardCharsets; import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; - +import javax.xml.transform.TransformerConfigurationException; +import org.unicode.props.IndexUnicodeProperties; +import org.unicode.props.UcdProperty; +import org.unicode.props.UcdPropertyValues; +import org.xml.sax.SAXException; +import org.xml.sax.helpers.AttributesImpl; public class UcdXML { @@ -32,12 +30,12 @@ private enum UCDXMLOUTPUTTYPE { } private enum Range { - RESERVED ("reserved"), - SURROGATE ("surrogate"), - NONCHARACTER ("noncharacter"), - CHARACTER ("char"), - CJKUNIFIEDIDEOGRAPH ("char"), - NONRANGE ("nonrange"); + RESERVED("reserved"), + SURROGATE("surrogate"), + NONCHARACTER("noncharacter"), + CHARACTER("char"), + CJKUNIFIEDIDEOGRAPH("char"), + NONRANGE("nonrange"); private final String tag; @@ -51,19 +49,13 @@ public String toString() { } private static final UOption[] options = { - UOption.HELP_H(), - UOption.create("ucdversion", 'v', UOption.REQUIRES_ARG), - UOption.create("range", 'r', UOption.REQUIRES_ARG), - UOption.create("output", 'o', UOption.REQUIRES_ARG), - UOption.create("outputfolder", 'f', UOption.REQUIRES_ARG) + UOption.HELP_H(), + UOption.create("ucdversion", 'v', UOption.REQUIRES_ARG), + UOption.create("range", 'r', UOption.REQUIRES_ARG), + UOption.create("output", 'o', UOption.REQUIRES_ARG), + UOption.create("outputfolder", 'f', UOption.REQUIRES_ARG) }; - private static final int - HELP = 0, - UCDVERSION = 1, - RANGE = 2, - OUTPUT = 3, - OUTPUTFOLDER = 4; - + private static final int HELP = 0, UCDVERSION = 1, RANGE = 2, OUTPUT = 3, OUTPUTFOLDER = 4; public static void main(String[] args) throws Exception { VersionInfo ucdVersion = null; @@ -74,8 +66,9 @@ public static void main(String[] args) throws Exception { UOption.parseArgs(args, options); if (options[HELP].doesOccur) { - System.out.println("UcdXML --ucdversion {version number} --outputfolder {destination} " + - "--range [ALL|NOUNIHAN|UNIHAN] --output [FLAT|GROUPED]"); + System.out.println( + "UcdXML --ucdversion {version number} --outputfolder {destination} " + + "--range [ALL|NOUNIHAN|UNIHAN] --output [FLAT|GROUPED]"); System.exit(0); } @@ -83,59 +76,66 @@ public static void main(String[] args) throws Exception { if (options[UCDVERSION].doesOccur) { try { ucdVersion = VersionInfo.getInstance(options[UCDVERSION].value); + } catch (Exception e) { + throw new IllegalArgumentException( + "Could not convert " + + options[UCDVERSION].value + + " to a valid UCD version"); } - catch (Exception e) { - throw new IllegalArgumentException("Could not convert " + options[UCDVERSION].value + - " to a valid UCD version"); - } - } - else { - throw new IllegalArgumentException("Missing command line option: --ucdversion (or -v)"); + } else { + throw new IllegalArgumentException( + "Missing command line option: --ucdversion (or -v)"); } if (options[RANGE].doesOccur) { try { - ucdxmloutputrange = UCDXMLOUTPUTRANGE.valueOf(options[RANGE].value.toUpperCase(Locale.ROOT)); + ucdxmloutputrange = + UCDXMLOUTPUTRANGE.valueOf( + options[RANGE].value.toUpperCase(Locale.ROOT)); + } catch (Exception e) { + throw new IllegalArgumentException( + "Could not convert " + + options[RANGE].value + + " to one of [ALL|NOUNIHAN|UNIHAN]"); } - catch (Exception e) { - throw new IllegalArgumentException("Could not convert " + options[RANGE].value + - " to one of [ALL|NOUNIHAN|UNIHAN]"); - } - } - else { + } else { throw new IllegalArgumentException("Missing command line option: --range (or -r)"); } if (options[OUTPUT].doesOccur) { try { - ucdxmloutputtype = UCDXMLOUTPUTTYPE.valueOf(options[OUTPUT].value.toUpperCase(Locale.ROOT)); - } - catch (Exception e) { - throw new IllegalArgumentException("Could not convert " + options[OUTPUT].value + - " to one of [FLAT|GROUPED]"); + ucdxmloutputtype = + UCDXMLOUTPUTTYPE.valueOf( + options[OUTPUT].value.toUpperCase(Locale.ROOT)); + } catch (Exception e) { + throw new IllegalArgumentException( + "Could not convert " + + options[OUTPUT].value + + " to one of [FLAT|GROUPED]"); } - } - else { + } else { throw new IllegalArgumentException("Missing command line option: --output (or -o)"); } if (options[OUTPUTFOLDER].doesOccur) { try { - destinationFolder = new File(options[OUTPUTFOLDER].value + getVersionString(ucdVersion, 3) + - "\\xmltest\\"); + destinationFolder = + new File( + options[OUTPUTFOLDER].value + + getVersionString(ucdVersion, 3) + + "\\xmltest\\"); if (!destinationFolder.exists()) { - if(!destinationFolder.mkdir()) { + if (!destinationFolder.mkdir()) { throw new IOException(); } } + } catch (Exception e) { + throw new IllegalArgumentException( + "Could not find or create " + options[OUTPUTFOLDER].value); } - catch (Exception e) { - throw new IllegalArgumentException("Could not find or create " + options[OUTPUTFOLDER].value); - } - } - else { - throw new IllegalArgumentException("Missing command line option: --outputfolder (or -f)"); + } else { + throw new IllegalArgumentException( + "Missing command line option: --outputfolder (or -f)"); } - } - catch (Exception e) { + } catch (Exception e) { System.err.println(e.getMessage()); System.exit(1); } @@ -144,28 +144,32 @@ public static void main(String[] args) throws Exception { buildUcdXMLFile(ucdVersion, destinationFolder, ucdxmloutputrange, ucdxmloutputtype); System.out.println("end"); System.exit(0); - } - else { + } else { System.err.println("Unexpected error when building UcdXML file."); System.exit(1); } - - } - private static void buildUcdXMLFile(VersionInfo ucdVersion, File destinationFolder, UCDXMLOUTPUTRANGE outputRange - , UCDXMLOUTPUTTYPE outputType) throws IOException, TransformerConfigurationException, SAXException { + private static void buildUcdXMLFile( + VersionInfo ucdVersion, + File destinationFolder, + UCDXMLOUTPUTRANGE outputRange, + UCDXMLOUTPUTTYPE outputType) + throws IOException, TransformerConfigurationException, SAXException { int lowCodepoint = 0x0; int highCodepoint = 0x10FFFF; // Tangut - //int lowCodepoint = 0x17000; - //int highCodepoint = 0x1B2FB; - //0x10FFFF + // int lowCodepoint = 0x17000; + // int highCodepoint = 0x1B2FB; + // 0x10FFFF File tempFile = new File(destinationFolder, "temp.xml"); String outputFilename = - "ucd." + outputRange.toString().toLowerCase(Locale.ROOT) + "." + - outputType.toString().toLowerCase(Locale.ROOT) + ".xml"; + "ucd." + + outputRange.toString().toLowerCase(Locale.ROOT) + + "." + + outputType.toString().toLowerCase(Locale.ROOT) + + ".xml"; File destinationFile = new File(destinationFolder, outputFilename); FileOutputStream fileOutputStream = new FileOutputStream(tempFile); @@ -183,7 +187,13 @@ private static void buildUcdXMLFile(VersionInfo ucdVersion, File destinationFold writer.addContent("Unicode " + getVersionString(ucdVersion, 3)); writer.endElement("description"); } - buildRepertoire(writer, attributeResolver, ucdVersion, lowCodepoint, highCodepoint, outputRange, + buildRepertoire( + writer, + attributeResolver, + ucdVersion, + lowCodepoint, + highCodepoint, + outputRange, outputType); if (outputRange != UCDXMLOUTPUTRANGE.UNIHAN) { ucdDataResolver.buildSection(UcdSectionDetail.UcdSection.BLOCKS); @@ -199,21 +209,23 @@ private static void buildUcdXMLFile(VersionInfo ucdVersion, File destinationFold writer.endFile(); fileOutputStream.close(); cleanUcdXMLFile(tempFile, destinationFile); - if(!tempFile.delete()) { + if (!tempFile.delete()) { throw new IOException("Could not delete temporary file " + tempFile); } } private static void cleanUcdXMLFile(File tempFile, File destinationFile) throws IOException { - //XALAN writes out characters outside the BMP as entities. - //Use this code to replace the entities with the correct characters. - //See: https://issues.apache.org/jira/browse/XALANJ-2595 + // XALAN writes out characters outside the BMP as entities. + // Use this code to replace the entities with the correct characters. + // See: https://issues.apache.org/jira/browse/XALANJ-2595 FileInputStream fileInputStream = new FileInputStream(tempFile); FileOutputStream fileOutputStream = new FileOutputStream(destinationFile); - InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream, StandardCharsets.UTF_8); - OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fileOutputStream, StandardCharsets.UTF_8); + InputStreamReader inputStreamReader = + new InputStreamReader(fileInputStream, StandardCharsets.UTF_8); + OutputStreamWriter outputStreamWriter = + new OutputStreamWriter(fileOutputStream, StandardCharsets.UTF_8); BufferedReader bufferedReader = new BufferedReader(inputStreamReader); BufferedWriter bufferedWriter = new BufferedWriter(outputStreamWriter); @@ -221,7 +233,11 @@ private static void cleanUcdXMLFile(File tempFile, File destinationFile) throws String line; while ((line = bufferedReader.readLine()) != null) { Matcher matcher = Pattern.compile("&#(\\d+);").matcher(line); - line = matcher.replaceAll(matchResult -> new String(Character.toChars(Integer.parseInt(matcher.group(1))))); + line = + matcher.replaceAll( + matchResult -> + new String( + Character.toChars(Integer.parseInt(matcher.group(1))))); bufferedWriter.append(line); bufferedWriter.newLine(); } @@ -230,20 +246,41 @@ private static void cleanUcdXMLFile(File tempFile, File destinationFile) throws fileOutputStream.close(); } - private static void buildRepertoire(UCDXMLWriter writer, AttributeResolver attributeResolver, - VersionInfo ucdVersion, int lowCodepoint, int highCodepoint, - UCDXMLOUTPUTRANGE outputRange, UCDXMLOUTPUTTYPE outputType) throws SAXException { + private static void buildRepertoire( + UCDXMLWriter writer, + AttributeResolver attributeResolver, + VersionInfo ucdVersion, + int lowCodepoint, + int highCodepoint, + UCDXMLOUTPUTRANGE outputRange, + UCDXMLOUTPUTTYPE outputType) + throws SAXException { writer.startElement("repertoire"); { for (int codepoint = lowCodepoint; codepoint <= highCodepoint; codepoint++) { if (isWritableCodepoint(codepoint, outputRange, attributeResolver)) { if (outputType == UCDXMLOUTPUTTYPE.GROUPED) { - codepoint = buildGroup(writer, attributeResolver, ucdVersion, codepoint, highCodepoint, - outputRange, outputType); + codepoint = + buildGroup( + writer, + attributeResolver, + ucdVersion, + codepoint, + highCodepoint, + outputRange, + outputType); } else { - codepoint = buildChars(writer, attributeResolver, ucdVersion, codepoint, highCodepoint, - outputRange, outputType, null); + codepoint = + buildChars( + writer, + attributeResolver, + ucdVersion, + codepoint, + highCodepoint, + outputRange, + outputType, + null); } } } @@ -251,42 +288,76 @@ private static void buildRepertoire(UCDXMLWriter writer, AttributeResolver attri } } - private static int buildGroup(UCDXMLWriter writer, AttributeResolver attributeResolver, VersionInfo ucdVersion, - int lowCodepoint, int highCodepoint, UCDXMLOUTPUTRANGE outputRange, - UCDXMLOUTPUTTYPE outputType) throws SAXException { + private static int buildGroup( + UCDXMLWriter writer, + AttributeResolver attributeResolver, + VersionInfo ucdVersion, + int lowCodepoint, + int highCodepoint, + UCDXMLOUTPUTRANGE outputRange, + UCDXMLOUTPUTTYPE outputType) + throws SAXException { - int lastCodepointInGroup = getLastCodepointInGroup(attributeResolver, lowCodepoint, highCodepoint); + int lastCodepointInGroup = + getLastCodepointInGroup(attributeResolver, lowCodepoint, highCodepoint); - AttributesImpl groupAttrs = getGroupAttributes(ucdVersion, attributeResolver, lowCodepoint, - lastCodepointInGroup, outputRange); + AttributesImpl groupAttrs = + getGroupAttributes( + ucdVersion, + attributeResolver, + lowCodepoint, + lastCodepointInGroup, + outputRange); writer.startElement("group", groupAttrs); { - buildChars(writer, attributeResolver, ucdVersion, lowCodepoint, lastCodepointInGroup, outputRange, - outputType, groupAttrs); + buildChars( + writer, + attributeResolver, + ucdVersion, + lowCodepoint, + lastCodepointInGroup, + outputRange, + outputType, + groupAttrs); writer.endElement("group"); } return lastCodepointInGroup; } - private static int buildChars(UCDXMLWriter writer, AttributeResolver attributeResolver, VersionInfo ucdVersion, - int lowCodepoint, int highCodepoint, UCDXMLOUTPUTRANGE outputRange, - UCDXMLOUTPUTTYPE outputType, AttributesImpl groupAttrs) throws SAXException { + private static int buildChars( + UCDXMLWriter writer, + AttributeResolver attributeResolver, + VersionInfo ucdVersion, + int lowCodepoint, + int highCodepoint, + UCDXMLOUTPUTRANGE outputRange, + UCDXMLOUTPUTTYPE outputType, + AttributesImpl groupAttrs) + throws SAXException { ArrayList range = new ArrayList<>(); Range rangeType = Range.NONRANGE; for (int codepoint = lowCodepoint; codepoint <= highCodepoint; codepoint++) { - if (attributeResolver.isUnassignedCodepoint(codepoint) || - (outputRange == UCDXMLOUTPUTRANGE.NOUNIHAN && attributeResolver.isUnifiedIdeograph(codepoint))) { + if (attributeResolver.isUnassignedCodepoint(codepoint) + || (outputRange == UCDXMLOUTPUTRANGE.NOUNIHAN + && attributeResolver.isUnifiedIdeograph(codepoint))) { Range currentRangeType = getRangeType(attributeResolver, codepoint); if (!range.isEmpty()) { - if (!currentRangeType.equals(rangeType) || attributeResolver.isDifferentRange(codepoint, - codepoint - 1)) { + if (!currentRangeType.equals(rangeType) + || attributeResolver.isDifferentRange(codepoint, codepoint - 1)) { if (outputRange != UCDXMLOUTPUTRANGE.UNIHAN) { if (outputType == UCDXMLOUTPUTTYPE.GROUPED) { - buildGroupedRange(writer, attributeResolver, ucdVersion, range, rangeType, groupAttrs); + buildGroupedRange( + writer, + attributeResolver, + ucdVersion, + range, + rangeType, + groupAttrs); } else { - buildUngroupedRange(writer, attributeResolver, ucdVersion, range, rangeType); + buildUngroupedRange( + writer, attributeResolver, ucdVersion, range, rangeType); } } range.clear(); @@ -298,9 +369,16 @@ private static int buildChars(UCDXMLWriter writer, AttributeResolver attributeRe if (!range.isEmpty()) { if (outputRange != UCDXMLOUTPUTRANGE.UNIHAN) { if (outputType == UCDXMLOUTPUTTYPE.GROUPED) { - buildGroupedRange(writer, attributeResolver, ucdVersion, range, rangeType, groupAttrs); + buildGroupedRange( + writer, + attributeResolver, + ucdVersion, + range, + rangeType, + groupAttrs); } else { - buildUngroupedRange(writer, attributeResolver, ucdVersion, range, rangeType); + buildUngroupedRange( + writer, attributeResolver, ucdVersion, range, rangeType); } } range.clear(); @@ -308,18 +386,26 @@ private static int buildChars(UCDXMLWriter writer, AttributeResolver attributeRe } if (isWritableCodepoint(codepoint, outputRange, attributeResolver)) { if (outputType == UCDXMLOUTPUTTYPE.GROUPED) { - buildGroupedChar(writer, attributeResolver, ucdVersion, codepoint, outputRange, groupAttrs); + buildGroupedChar( + writer, + attributeResolver, + ucdVersion, + codepoint, + outputRange, + groupAttrs); } else { - buildUngroupedChar(writer, attributeResolver, ucdVersion, codepoint, outputRange); + buildUngroupedChar( + writer, attributeResolver, ucdVersion, codepoint, outputRange); } } } } - //Handle any range before the end of the repertoire element. + // Handle any range before the end of the repertoire element. if (!range.isEmpty()) { if (outputRange != UCDXMLOUTPUTRANGE.UNIHAN) { if (outputType == UCDXMLOUTPUTTYPE.GROUPED) { - buildGroupedRange(writer, attributeResolver, ucdVersion, range, rangeType, groupAttrs); + buildGroupedRange( + writer, attributeResolver, ucdVersion, range, rangeType, groupAttrs); } else { buildUngroupedRange(writer, attributeResolver, ucdVersion, range, rangeType); } @@ -328,33 +414,49 @@ private static int buildChars(UCDXMLWriter writer, AttributeResolver attributeRe return highCodepoint; } - private static void buildUngroupedChar(UCDXMLWriter writer, AttributeResolver attributeResolver, - VersionInfo ucdVersion, int codepoint, UCDXMLOUTPUTRANGE outputRange) + private static void buildUngroupedChar( + UCDXMLWriter writer, + AttributeResolver attributeResolver, + VersionInfo ucdVersion, + int codepoint, + UCDXMLOUTPUTRANGE outputRange) throws SAXException { - AttributesImpl charAttributes = getAttributes(ucdVersion, attributeResolver, codepoint, outputRange); + AttributesImpl charAttributes = + getAttributes(ucdVersion, attributeResolver, codepoint, outputRange); buildChar(writer, attributeResolver, codepoint, charAttributes); } - private static void buildGroupedChar(UCDXMLWriter writer, AttributeResolver attributeResolver, - VersionInfo ucdVersion, int codepoint, UCDXMLOUTPUTRANGE outputRange, - AttributesImpl groupAttrs) throws SAXException { + private static void buildGroupedChar( + UCDXMLWriter writer, + AttributeResolver attributeResolver, + VersionInfo ucdVersion, + int codepoint, + UCDXMLOUTPUTRANGE outputRange, + AttributesImpl groupAttrs) + throws SAXException { - AttributesImpl orgCharAttributes = getAttributes(ucdVersion, attributeResolver, codepoint, outputRange); + AttributesImpl orgCharAttributes = + getAttributes(ucdVersion, attributeResolver, codepoint, outputRange); AttributesImpl charAttributes = new AttributesImpl(); for (int index = 0; index < orgCharAttributes.getLength(); index++) { String attributeQName = orgCharAttributes.getQName(index); String orgCharAttributesValue = orgCharAttributes.getValue(index); String groupAttributeValue = groupAttrs.getValue(attributeQName); if (!orgCharAttributesValue.equals(groupAttributeValue)) { - charAttributes.addAttribute(NAMESPACE, attributeQName, attributeQName, "CDATA", orgCharAttributesValue); + charAttributes.addAttribute( + NAMESPACE, attributeQName, attributeQName, "CDATA", orgCharAttributesValue); } } buildChar(writer, attributeResolver, codepoint, charAttributes); } - private static void buildChar(UCDXMLWriter writer, AttributeResolver attributeResolver, int codepoint, - AttributesImpl charAttributes) throws SAXException { + private static void buildChar( + UCDXMLWriter writer, + AttributeResolver attributeResolver, + int codepoint, + AttributesImpl charAttributes) + throws SAXException { writer.startElement("char", charAttributes); { HashMap nameAliases = attributeResolver.getNameAliases(codepoint); @@ -362,7 +464,8 @@ private static void buildChar(UCDXMLWriter writer, AttributeResolver attributeRe for (String alias : nameAliases.keySet()) { AttributesImpl nameAliasAt = new AttributesImpl(); nameAliasAt.addAttribute(NAMESPACE, "alias", "alias", "CDATA", alias); - nameAliasAt.addAttribute(NAMESPACE, "type", "type", "CDATA", nameAliases.get(alias)); + nameAliasAt.addAttribute( + NAMESPACE, "type", "type", "CDATA", nameAliases.get(alias)); writer.startElement("name-alias", nameAliasAt); { writer.endElement("name-alias"); @@ -373,18 +476,24 @@ private static void buildChar(UCDXMLWriter writer, AttributeResolver attributeRe } } - private static void buildGroupedRange(UCDXMLWriter writer, AttributeResolver attributeResolver, - VersionInfo ucdVersion, ArrayList range, Range rangeType, - AttributesImpl groupAttrs) throws SAXException { - AttributesImpl orgRangeAttributes = getReservedAttributes(ucdVersion, attributeResolver, range); + private static void buildGroupedRange( + UCDXMLWriter writer, + AttributeResolver attributeResolver, + VersionInfo ucdVersion, + ArrayList range, + Range rangeType, + AttributesImpl groupAttrs) + throws SAXException { + AttributesImpl orgRangeAttributes = + getReservedAttributes(ucdVersion, attributeResolver, range); AttributesImpl rangeAttributes = new AttributesImpl(); for (int index = 0; index < orgRangeAttributes.getLength(); index++) { String attributeQName = orgRangeAttributes.getQName(index); String orgCharAttributesValue = orgRangeAttributes.getValue(index); String groupAttributeValue = groupAttrs.getValue(attributeQName); if (!orgCharAttributesValue.equals(groupAttributeValue)) { - rangeAttributes.addAttribute(NAMESPACE, attributeQName, attributeQName, "CDATA", - orgCharAttributesValue); + rangeAttributes.addAttribute( + NAMESPACE, attributeQName, attributeQName, "CDATA", orgCharAttributesValue); } } writer.startElement(rangeType.tag, rangeAttributes); @@ -393,21 +502,28 @@ private static void buildGroupedRange(UCDXMLWriter writer, AttributeResolver att } } - private static void buildUngroupedRange(UCDXMLWriter writer, AttributeResolver attributeResolver, - VersionInfo ucdVersion, ArrayList range, Range rangeType) + private static void buildUngroupedRange( + UCDXMLWriter writer, + AttributeResolver attributeResolver, + VersionInfo ucdVersion, + ArrayList range, + Range rangeType) throws SAXException { - AttributesImpl rangeAttributes = getReservedAttributes(ucdVersion, attributeResolver, range); + AttributesImpl rangeAttributes = + getReservedAttributes(ucdVersion, attributeResolver, range); writer.startElement(rangeType.tag, rangeAttributes); { writer.endElement(rangeType.tag); } } - private static boolean isWritableCodepoint(int codepoint, UCDXMLOUTPUTRANGE outputRange, - AttributeResolver attributeResolver) { - return outputRange == UCDXMLOUTPUTRANGE.ALL || - (outputRange == UCDXMLOUTPUTRANGE.UNIHAN && attributeResolver.isUnihanAttributeRange(codepoint)) || - (outputRange == UCDXMLOUTPUTRANGE.NOUNIHAN && !attributeResolver.isUnifiedIdeograph(codepoint)); + private static boolean isWritableCodepoint( + int codepoint, UCDXMLOUTPUTRANGE outputRange, AttributeResolver attributeResolver) { + return outputRange == UCDXMLOUTPUTRANGE.ALL + || (outputRange == UCDXMLOUTPUTRANGE.UNIHAN + && attributeResolver.isUnihanAttributeRange(codepoint)) + || (outputRange == UCDXMLOUTPUTRANGE.NOUNIHAN + && !attributeResolver.isUnifiedIdeograph(codepoint)); } private static Range getRangeType(AttributeResolver attributeResolver, int codepoint) { @@ -429,17 +545,17 @@ private static Range getRangeType(AttributeResolver attributeResolver, int codep return Range.RESERVED; } - private static int getLastCodepointInGroup(AttributeResolver attributeResolver, int lowCodepoint, - int highCodepoint) { + private static int getLastCodepointInGroup( + AttributeResolver attributeResolver, int lowCodepoint, int highCodepoint) { String blk = attributeResolver.getAttributeValue(UcdProperty.Block, lowCodepoint); for (int codepoint = lowCodepoint; codepoint <= highCodepoint; codepoint++) { if (!blk.equals(attributeResolver.getAttributeValue(UcdProperty.Block, codepoint))) { return codepoint - 1; } - if (codepoint == 0x20 - 1 // put the C0 controls in their own group - || codepoint == 0xa0 - 1 // put the C0 controls in their own group - || codepoint == 0x1160 - 1 // split the jamos into three groups - || codepoint == 0x11a8 - 1 // split the jamos into three groups + if (codepoint == 0x20 - 1 // put the C0 controls in their own group + || codepoint == 0xa0 - 1 // put the C0 controls in their own group + || codepoint == 0x1160 - 1 // split the jamos into three groups + || codepoint == 0x11a8 - 1 // split the jamos into three groups || codepoint == 0x1f1e6 - 1 // put the regional indicators in their own group ) { return codepoint; @@ -448,18 +564,28 @@ private static int getLastCodepointInGroup(AttributeResolver attributeResolver, return highCodepoint; } - private static AttributesImpl getAttributes(VersionInfo version, AttributeResolver attributeResolver, - int codepoint, UCDXMLOUTPUTRANGE outputRange) { + private static AttributesImpl getAttributes( + VersionInfo version, + AttributeResolver attributeResolver, + int codepoint, + UCDXMLOUTPUTRANGE outputRange) { AttributesImpl attributes = new AttributesImpl(); - attributes.addAttribute(NAMESPACE, "cp", "cp", "CDATA", attributeResolver.getHexString(codepoint)); + attributes.addAttribute( + NAMESPACE, "cp", "cp", "CDATA", attributeResolver.getHexString(codepoint)); for (UcdPropertyDetail propDetail : UcdPropertyDetail.ucdxmlValues()) { UcdProperty prop = propDetail.getUcdProperty(); - if (version.compareTo(propDetail.getMinVersion()) >= 0 && - (propDetail.getMaxVersion() == null || version.compareTo(propDetail.getMaxVersion()) < 0)) { + if (version.compareTo(propDetail.getMinVersion()) >= 0 + && (propDetail.getMaxVersion() == null + || version.compareTo(propDetail.getMaxVersion()) < 0)) { String attrValue = attributeResolver.getAttributeValue(prop, codepoint); - boolean isAttributeIncluded = getIsAttributeIncluded(attrValue, - attributeResolver.isUnihanAttributeRange(codepoint), propDetail, prop, outputRange); + boolean isAttributeIncluded = + getIsAttributeIncluded( + attrValue, + attributeResolver.isUnihanAttributeRange(codepoint), + propDetail, + prop, + outputRange); if (isAttributeIncluded) { String propName = prop.getShortName(); if (propName.startsWith("cjk")) { @@ -472,22 +598,27 @@ private static AttributesImpl getAttributes(VersionInfo version, AttributeResolv return attributes; } - private static AttributesImpl getGroupAttributes(VersionInfo version, AttributeResolver attributeResolver, - int lowCodepoint, int highCodepoint, - UCDXMLOUTPUTRANGE outputRange) { + private static AttributesImpl getGroupAttributes( + VersionInfo version, + AttributeResolver attributeResolver, + int lowCodepoint, + int highCodepoint, + UCDXMLOUTPUTRANGE outputRange) { AttributesImpl attributes = new AttributesImpl(); for (UcdPropertyDetail propDetail : UcdPropertyDetail.ucdxmlValues()) { UcdProperty prop = propDetail.getUcdProperty(); - if (version.compareTo(propDetail.getMinVersion()) >= 0 && - (propDetail.getMaxVersion() == null || version.compareTo(propDetail.getMaxVersion()) < 0)) { + if (version.compareTo(propDetail.getMinVersion()) >= 0 + && (propDetail.getMaxVersion() == null + || version.compareTo(propDetail.getMaxVersion()) < 0)) { int totalCount = 0; Map counters = new LinkedHashMap<>(); for (int codepoint = lowCodepoint; codepoint <= highCodepoint; codepoint++) { if (!attributeResolver.isUnassignedCodepoint(codepoint)) { String attrValue = attributeResolver.getAttributeValue(prop, codepoint); - int currentCount = (counters.get(attrValue) == null) ? 0 : counters.get(attrValue); + int currentCount = + (counters.get(attrValue) == null) ? 0 : counters.get(attrValue); currentCount++; totalCount++; counters.put(attrValue, currentCount); @@ -517,14 +648,20 @@ private static AttributesImpl getGroupAttributes(VersionInfo version, AttributeR } } if (max > 0.2 * totalCount && max > 1) { - boolean isAttributeIncluded = getIsAttributeIncluded(bestAttrValue, - attributeResolver.isUnihanAttributeRange(lowCodepoint), propDetail, prop, outputRange); + boolean isAttributeIncluded = + getIsAttributeIncluded( + bestAttrValue, + attributeResolver.isUnihanAttributeRange(lowCodepoint), + propDetail, + prop, + outputRange); if (isAttributeIncluded) { String propName = prop.getShortName(); if (propName.startsWith("cjk")) { propName = propName.substring(2); } - attributes.addAttribute(NAMESPACE, propName, propName, "CDATA", bestAttrValue); + attributes.addAttribute( + NAMESPACE, propName, propName, "CDATA", bestAttrValue); } } } @@ -532,9 +669,12 @@ private static AttributesImpl getGroupAttributes(VersionInfo version, AttributeR return attributes; } - private static boolean getIsAttributeIncluded(String attrValue, boolean isUnihanAttributeRange, - UcdPropertyDetail propDetail, UcdProperty prop, - UCDXMLOUTPUTRANGE outputRange) { + private static boolean getIsAttributeIncluded( + String attrValue, + boolean isUnihanAttributeRange, + UcdPropertyDetail propDetail, + UcdProperty prop, + UCDXMLOUTPUTRANGE outputRange) { if (attrValue == null) { return false; } @@ -546,7 +686,8 @@ private static boolean getIsAttributeIncluded(String attrValue, boolean isUnihan if (prop.equals(UcdProperty.Numeric_Value) && !attrValue.equals("NaN")) { return true; } - return propDetail.isCJKAttribute() && (propDetail.isCJKShowIfEmpty() || !attrValue.isEmpty()); + return propDetail.isCJKAttribute() + && (propDetail.isCJKShowIfEmpty() || !attrValue.isEmpty()); } if (outputRange == UCDXMLOUTPUTRANGE.NOUNIHAN && propDetail.isCJKAttribute()) { return false; @@ -561,26 +702,38 @@ private static boolean getIsAttributeIncluded(String attrValue, boolean isUnihan return !attrValue.isEmpty(); } - - private static AttributesImpl getReservedAttributes(VersionInfo version, AttributeResolver attributeResolver, - ArrayList range) { + private static AttributesImpl getReservedAttributes( + VersionInfo version, AttributeResolver attributeResolver, ArrayList range) { AttributesImpl attributes = new AttributesImpl(); if (range.size() == 1) { - attributes.addAttribute(NAMESPACE, "cp", "cp", "CDATA", attributeResolver.getHexString(range.get(0))); + attributes.addAttribute( + NAMESPACE, "cp", "cp", "CDATA", attributeResolver.getHexString(range.get(0))); } else { - attributes.addAttribute(NAMESPACE, "first-cp", "first-cp", "CDATA", + attributes.addAttribute( + NAMESPACE, + "first-cp", + "first-cp", + "CDATA", attributeResolver.getHexString(range.get(0))); - attributes.addAttribute(NAMESPACE, "last-cp", "last-cp", "CDATA", + attributes.addAttribute( + NAMESPACE, + "last-cp", + "last-cp", + "CDATA", attributeResolver.getHexString(range.get(range.size() - 1))); } for (UcdPropertyDetail propDetail : UcdPropertyDetail.baseValues()) { UcdProperty prop = propDetail.getUcdProperty(); - if (version.compareTo(propDetail.getMinVersion()) >= 0 && - (propDetail.getMaxVersion() == null || version.compareTo(propDetail.getMaxVersion()) <= 0)) { - String attrValue = attributeResolver.getAttributeValue(propDetail.getUcdProperty(), range.get(0)); - - attributes.addAttribute(NAMESPACE, prop.getShortName(), prop.getShortName(), "CDATA", attrValue); + if (version.compareTo(propDetail.getMinVersion()) >= 0 + && (propDetail.getMaxVersion() == null + || version.compareTo(propDetail.getMaxVersion()) <= 0)) { + String attrValue = + attributeResolver.getAttributeValue( + propDetail.getUcdProperty(), range.get(0)); + + attributes.addAttribute( + NAMESPACE, prop.getShortName(), prop.getShortName(), "CDATA", attrValue); } } return attributes; @@ -588,7 +741,13 @@ private static AttributesImpl getReservedAttributes(VersionInfo version, Attribu private static String getVersionString(VersionInfo version, int maxDigits) { if (maxDigits >= 1 && maxDigits <= 4) { - int[] digits = new int[]{version.getMajor(), version.getMinor(), version.getMilli(), version.getMicro()}; + int[] digits = + new int[] { + version.getMajor(), + version.getMinor(), + version.getMilli(), + version.getMicro() + }; StringBuilder verStr = new StringBuilder(7); verStr.append(digits[0]); for (int i = 1; i < maxDigits; ++i) { @@ -600,4 +759,4 @@ private static String getVersionString(VersionInfo version, int maxDigits) { throw new IllegalArgumentException("Invalid maxDigits range"); } } -} \ No newline at end of file +}