diff --git a/unicodetools/src/main/java/org/unicode/xml/AttributeResolver.java b/unicodetools/src/main/java/org/unicode/xml/AttributeResolver.java index b5d093635..cb173b00c 100644 --- a/unicodetools/src/main/java/org/unicode/xml/AttributeResolver.java +++ b/unicodetools/src/main/java/org/unicode/xml/AttributeResolver.java @@ -1,7 +1,6 @@ package org.unicode.xml; import com.ibm.icu.dev.util.UnicodeMap; -import com.ibm.icu.util.VersionInfo; import org.unicode.cldr.draft.FileUtilities; import org.unicode.props.*; @@ -99,11 +98,11 @@ public AttributeResolver(IndexUnicodeProperties iup) { } private enum AliasType { - ABBREVIATION ("abbreviation"), - ALTERNATE ("alternate"), - CONTROL ("control"), - CORRECTION ("correction"), - FIGMENT ("figment"); + ABBREVIATION("abbreviation"), + ALTERNATE("alternate"), + CONTROL("control"), + CORRECTION("correction"), + FIGMENT("figment"); private final String aliasType; @@ -129,6 +128,7 @@ private NameAlias(String alias, AliasType type) { public String getAlias() { return alias; } + public AliasType getType() { return type; } @@ -154,15 +154,14 @@ private HashMap> loadNameAliases() { String[] parts = line.getParts(); int codepoint = Integer.parseInt(parts[0], 16); NameAlias nameAlias = new NameAlias( - parts[1], AliasType.valueOf(parts[2].toUpperCase())); + parts[1], AliasType.valueOf(parts[2].toUpperCase(Locale.ROOT))); if (nameAliasesByCodepoint.containsKey(codepoint)) { LinkedList nameAliases = new LinkedList<>(nameAliasesByCodepoint.get(codepoint)); nameAliases.add(nameAlias); nameAliases.sort(nameAliasComparator); nameAliasesByCodepoint.replace(codepoint, nameAliases); - } - else { + } else { nameAliasesByCodepoint.put(codepoint, new LinkedList<>(List.of(nameAlias))); } } @@ -171,9 +170,9 @@ private HashMap> loadNameAliases() { public String getAttributeValue(UcdProperty prop, int codepoint) { String resolvedValue = indexUnicodeProperties.getResolvedValue(prop, codepoint); - switch(prop.getType()) { + switch (prop.getType()) { case Numeric: - switch(prop) { + switch (prop) { case kOtherNumeric: case kPrimaryNumeric: case kAccountingNumeric: @@ -182,7 +181,7 @@ public String getAttributeValue(UcdProperty prop, int codepoint) { return Optional.ofNullable(resolvedValue).orElse("NaN"); } case String: - switch(prop) { + switch (prop) { case Equivalent_Unified_Ideograph: String EqUIdeo = getMappingValue(codepoint, resolvedValue, false, ""); return (EqUIdeo.equals("#")) ? null : EqUIdeo; @@ -191,51 +190,51 @@ public String getAttributeValue(UcdProperty prop, int codepoint) { 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: - //TODO: Question for PAG - This is probably not the desired behavior, but adding this case to maintain consistent output. - // Check the spec. But otherwise keep consistent. Update this comment to indicate why. + //Returning empty string for bmg to maintain compatibility with older generated files. String bmg = getMappingValue(codepoint, resolvedValue, false, ""); return (bmg.equals("#")) ? "" : bmg; default: return getMappingValue(codepoint, resolvedValue, false, ""); } case Miscellaneous: - switch(prop) { + switch (prop) { case Jamo_Short_Name: //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-")) { + 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(""); case kDefinition: return resolvedValue; default: - if (resolvedValue!= null) { + if (resolvedValue != null) { return resolvedValue.replaceAll("\\|", " "); } return ""; } case Catalog: - switch(prop) { + switch (prop) { case Age: String age = map_age.get(codepoint).getShortName(); return (age.equals("NA")) ? "unassigned" : age; @@ -245,7 +244,7 @@ public String getAttributeValue(UcdProperty prop, int codepoint) { return map_script.get(codepoint).getShortName(); case Script_Extensions: StringBuilder extensionBuilder = new StringBuilder(); - String[] extensions = map_script_extensions.get(codepoint).split("\\|", 0); + String[] extensions = map_script_extensions.get(codepoint).split("\\|", 0); for (String extension : extensions) { extensionBuilder.append(UcdPropertyValues.Script_Values.valueOf(extension).getShortName()); extensionBuilder.append(" "); @@ -255,7 +254,7 @@ public String getAttributeValue(UcdProperty prop, int codepoint) { throw new RuntimeException("Missing Catalog case"); } case Enumerated: - switch(prop) { + switch (prop) { case Bidi_Class: return map_bidi_class.get(codepoint).getShortName(); case Bidi_Paired_Bracket_Type: @@ -263,9 +262,8 @@ public String getAttributeValue(UcdProperty prop, int codepoint) { case Canonical_Combining_Class: return map_canonical_combining_class.get(codepoint).getShortName(); case Decomposition_Type: - //TODO: Question for PAG - This is probably not the desired behavior, but specifying lower case to maintain consistent output. - // Check the spec. But otherwise keep consistent. Update this comment to indicate why. - return map_decomposition_type.get(codepoint).getShortName().toLowerCase(); + //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: @@ -317,9 +315,8 @@ public String getAttributeValue(UcdProperty prop, int codepoint) { default: throw new RuntimeException("Missing Enumerated case"); } - case Binary: - { - switch(resolvedValue) { + case Binary: { + switch (resolvedValue) { // Seems overkill to get this from UcdPropertyValues.Binary case "No": return "N"; @@ -385,7 +382,7 @@ public boolean isDifferentRange(int codepointA, int codepointB) { } private static String getCPString(int codepoint) { - return String.format("%4s", Integer.toHexString(codepoint)).replace(" ", "0").toUpperCase(); + return String.format("%4s", Integer.toHexString(codepoint)).replace(" ", "0").toUpperCase(Locale.ROOT); } public String getHexString(int codepoint) { diff --git a/unicodetools/src/main/java/org/unicode/xml/UCDDataResolver.java b/unicodetools/src/main/java/org/unicode/xml/UCDDataResolver.java index 888dedc0a..1baa4131b 100644 --- a/unicodetools/src/main/java/org/unicode/xml/UCDDataResolver.java +++ b/unicodetools/src/main/java/org/unicode/xml/UCDDataResolver.java @@ -33,10 +33,12 @@ public void buildSection(UcdSectionDetail.UcdSection ucdSection) throws SAXExcep UcdSectionComponent[] ucdSectionComponents = ucdSection.getUcdSectionDetail().getUcdSectionComponents(); if (isCompatibleVersion(minVersion, maxVersion)) { - writer.startElement(tag); { + writer.startElement(tag); + { for (UcdSectionComponent ucdSectionComponent : ucdSectionComponents) { if (isCompatibleVersion(ucdSectionComponent.getMinVersion(), ucdSectionComponent.getMaxVersion())) { - final PropertyParsingInfo fileInfoEVS = PropertyParsingInfo.getPropertyInfo(ucdSectionComponent.getUcdProperty()); + final PropertyParsingInfo fileInfoEVS = + PropertyParsingInfo.getPropertyInfo(ucdSectionComponent.getUcdProperty()); String fullFilename = fileInfoEVS.getFullFileName(indexUnicodeProperties.getUcdVersion()); UcdLineParser parser = new UcdLineParser(FileUtilities.in("", fullFilename)); parser.withRange(parserWithRange); @@ -46,7 +48,8 @@ public void buildSection(UcdSectionDetail.UcdSection ucdSection) throws SAXExcep for (UcdLineParser.UcdLine line : parser) { if (!line.getOriginalLine().startsWith("#")) { AttributesImpl attributes = getBlockAttributes(namespace, line); - writer.startElement(childTag, attributes); { + writer.startElement(childTag, attributes); + { writer.endElement(childTag); } } @@ -61,8 +64,10 @@ 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); - writer.startElement(childTag, attributes); { + AttributesImpl attributes = getNamedSequenceAttributes(namespace, name, + namedSequences); + writer.startElement(childTag, attributes); + { writer.endElement(childTag); } } @@ -83,8 +88,9 @@ public void buildSection(UcdSectionDetail.UcdSection ucdSection) throws SAXExcep } } - private AttributesImpl getAttributes(UcdSectionDetail.UcdSection ucdSection, String namespace, UcdLineParser.UcdLine line) { - switch(ucdSection) { + private AttributesImpl getAttributes(UcdSectionDetail.UcdSection ucdSection, String namespace, + UcdLineParser.UcdLine line) { + switch (ucdSection) { case CJKRADICALS: return getCJKRadicalAttributes(namespace, line); case DONOTEMIT: @@ -151,7 +157,8 @@ private static AttributesImpl getEmojiSourceAttributes(String namespace, UcdLine 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); diff --git a/unicodetools/src/main/java/org/unicode/xml/UCDXMLWriter.java b/unicodetools/src/main/java/org/unicode/xml/UCDXMLWriter.java index 1c22267b1..27d88a766 100644 --- a/unicodetools/src/main/java/org/unicode/xml/UCDXMLWriter.java +++ b/unicodetools/src/main/java/org/unicode/xml/UCDXMLWriter.java @@ -42,6 +42,7 @@ 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 (); diff --git a/unicodetools/src/main/java/org/unicode/xml/UcdPropertyDetail.java b/unicodetools/src/main/java/org/unicode/xml/UcdPropertyDetail.java index 5e5c607c9..594a6f67b 100644 --- a/unicodetools/src/main/java/org/unicode/xml/UcdPropertyDetail.java +++ b/unicodetools/src/main/java/org/unicode/xml/UcdPropertyDetail.java @@ -8,812 +8,812 @@ 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 (); + static private LinkedHashSet basePropertyDetails = new LinkedHashSet(); + static private LinkedHashSet cjkPropertyDetails = new LinkedHashSet(); + static private LinkedHashSet ucdxmlPropertyDetails = new LinkedHashSet(); + static private LinkedHashSet allPropertyDetails = new LinkedHashSet(); - public static UcdPropertyDetail Age_Detail = new UcdPropertyDetail ( - UcdProperty.Age, VersionInfo.getInstance(1,1,0), 1, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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 ( + // 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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 ( + // 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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 ( + // 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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 ( + // 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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 ( + // 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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 ( + // 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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 ( + // 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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, + 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 ( + public static UcdPropertyDetail Basic_Emoji_Detail = new UcdPropertyDetail( UcdProperty.Basic_Emoji, -1, false, false, false, false); - public static UcdPropertyDetail CJK_Radical_Detail = new UcdPropertyDetail ( + public static UcdPropertyDetail CJK_Radical_Detail = new UcdPropertyDetail( UcdProperty.CJK_Radical, -2, false, false, false, false); - public static UcdPropertyDetail Confusable_MA_Detail = new UcdPropertyDetail ( + public static UcdPropertyDetail Confusable_MA_Detail = new UcdPropertyDetail( UcdProperty.Confusable_MA, -3, false, false, false, false); - public static UcdPropertyDetail Confusable_ML_Detail = new UcdPropertyDetail ( + public static UcdPropertyDetail Confusable_ML_Detail = new UcdPropertyDetail( UcdProperty.Confusable_ML, -4, false, false, false, false); - public static UcdPropertyDetail Confusable_SA_Detail = new UcdPropertyDetail ( + public static UcdPropertyDetail Confusable_SA_Detail = new UcdPropertyDetail( UcdProperty.Confusable_SA, -5, false, false, false, false); - public static UcdPropertyDetail Confusable_SL_Detail = new UcdPropertyDetail ( + 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 ( + 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 ( + 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, + 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, + 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, + 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, + 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, + 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 ( + public static UcdPropertyDetail Idn_2008_Detail = new UcdPropertyDetail( UcdProperty.Idn_2008, -14, false, false, false, false); - public static UcdPropertyDetail Idn_Mapping_Detail = new UcdPropertyDetail ( + public static UcdPropertyDetail Idn_Mapping_Detail = new UcdPropertyDetail( UcdProperty.Idn_Mapping, -15, false, false, false, false); - public static UcdPropertyDetail Idn_Status_Detail = new UcdPropertyDetail ( + public static UcdPropertyDetail Idn_Status_Detail = new UcdPropertyDetail( UcdProperty.Idn_Status, -16, false, false, false, false); - public static UcdPropertyDetail Named_Sequences_Detail = new UcdPropertyDetail ( + 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 ( + 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 ( + 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 ( + 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 ( + 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 ( + 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 ( + 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 ( + 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 ( + public static UcdPropertyDetail Standardized_Variant_Detail = new UcdPropertyDetail( UcdProperty.Standardized_Variant, -25, false, false, false, false); @@ -834,7 +834,7 @@ private UcdPropertyDetail( boolean isCJKAttribute, boolean isCJKShowIfEmpty, boolean isOrgUCDXMLAttribute) { - this ( + this( ucdProperty, minVersion, null, sortOrder, isBaseAttribute, isCJKAttribute, isCJKShowIfEmpty, isOrgUCDXMLAttribute); } @@ -846,7 +846,7 @@ private UcdPropertyDetail( boolean isCJKAttribute, boolean isCJKShowIfEmpty, boolean isOrgUCDXMLAttribute) { - this ( + this( ucdProperty, null, null, sortOrder, isBaseAttribute, isCJKAttribute, isCJKShowIfEmpty, isOrgUCDXMLAttribute); } @@ -870,26 +870,29 @@ private UcdPropertyDetail( this.isOrgUCDXMLAttribute = isOrgUCDXMLAttribute; allPropertyDetails.add(this); - if(isBaseAttribute) { + if (isBaseAttribute) { basePropertyDetails.add(this); ucdxmlPropertyDetails.add(this); } - if(isCJKAttribute) { + if (isCJKAttribute) { cjkPropertyDetails.add(this); ucdxmlPropertyDetails.add(this); } } - public static Set values () { + public static Set values() { return allPropertyDetails; } - public static Set baseValues () { + + public static Set baseValues() { return basePropertyDetails; } - public static Set cjkValues () { + + public static Set cjkValues() { return cjkPropertyDetails; } - public static Set ucdxmlValues () { + + public static Set ucdxmlValues() { return ucdxmlPropertyDetails; } diff --git a/unicodetools/src/main/java/org/unicode/xml/UcdSectionDetail.java b/unicodetools/src/main/java/org/unicode/xml/UcdSectionDetail.java index 24b9a35a6..c9f938410 100644 --- a/unicodetools/src/main/java/org/unicode/xml/UcdSectionDetail.java +++ b/unicodetools/src/main/java/org/unicode/xml/UcdSectionDetail.java @@ -9,13 +9,18 @@ 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, 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); + 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), + 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; @@ -44,20 +49,30 @@ public enum UcdSection { public String toString() { return tag; } + public String getChildTag() { return childTag; } + public VersionInfo getMinVersion() { return minVersion; } + public VersionInfo getMaxVersion() { return maxVersion; } + public UcdSectionDetail getUcdSectionDetail() { return ucdSectionDetail; } - public boolean getParserWithRange() { return parserWithRange; } - public boolean getParserWithMissing() { return parserWithMissing; } + + public boolean getParserWithRange() { + return parserWithRange; + } + + public boolean getParserWithMissing() { + return parserWithMissing; + } } public static UcdSectionDetail Blocks_Detail = new UcdSectionDetail( @@ -144,9 +159,11 @@ private UcdSectionDetail( public UcdSection getSection() { return this.ucdSection; } + public UcdSectionComponent[] getUcdSectionComponents() { return this.ucdSectionComponents; } + public int getSortOrder() { return this.sortOrder; } diff --git a/unicodetools/src/main/java/org/unicode/xml/UcdXML.java b/unicodetools/src/main/java/org/unicode/xml/UcdXML.java index c826b4f40..e40cc0d6f 100644 --- a/unicodetools/src/main/java/org/unicode/xml/UcdXML.java +++ b/unicodetools/src/main/java/org/unicode/xml/UcdXML.java @@ -1,29 +1,25 @@ package org.unicode.xml; -import java.io.*; -import java.nio.charset.StandardCharsets; -import java.util.*; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - +import com.ibm.icu.dev.tool.UOption; import com.ibm.icu.util.VersionInfo; -import com.thaiopensource.resolver.Input; -import org.unicode.props.*; +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; public class UcdXML { private static final String NAMESPACE = "http://www.unicode.org/ns/2003/ucd/1.0"; - private enum OutputType { - STRICT, - COMPATIBLE - } - private enum UCDXMLOUTPUTRANGE { ALL, NOUNIHAN, @@ -54,23 +50,111 @@ 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) + }; + 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; + UCDXMLOUTPUTRANGE ucdxmloutputrange = null; + UCDXMLOUTPUTTYPE ucdxmloutputtype = null; + File destinationFolder = null; - VersionInfo ucdVersion = VersionInfo.getInstance(15, 1, 0); - File destinationFolder = new File( - "C:\\_git\\Unicode\\ucdxml\\data\\" + - getVersionString(ucdVersion, 3) + "\\xmltest\\"); - if(!destinationFolder.exists()) { - destinationFolder.mkdir(); + 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.exit(0); } - buildUcdXMLFile(ucdVersion, destinationFolder, UCDXMLOUTPUTRANGE.ALL, UCDXMLOUTPUTTYPE.FLAT); - System.out.println("end"); + try { + 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"); + } + } + 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)); + } + catch (Exception e) { + throw new IllegalArgumentException("Could not convert " + options[RANGE].value + + " to one of [ALL|NOUNIHAN|UNIHAN]"); + } + } + 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]"); + } + } + 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\\"); + if (!destinationFolder.exists()) { + if(!destinationFolder.mkdir()) { + throw new IOException(); + } + } + } + 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)"); + } + + } + catch (Exception e) { + System.err.println(e.getMessage()); + System.exit(1); + } + + if (ucdVersion != null && destinationFolder.exists()) { + buildUcdXMLFile(ucdVersion, destinationFolder, ucdxmloutputrange, ucdxmloutputtype); + System.out.println("end"); + System.exit(0); + } + 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 @@ -79,9 +163,9 @@ private static void buildUcdXMLFile( //0x10FFFF File tempFile = new File(destinationFolder, "temp.xml"); - String outputFilename = "ucd." + - outputRange.toString().toLowerCase() + "." + - outputType.toString().toLowerCase() + ".xml"; + String outputFilename = + "ucd." + outputRange.toString().toLowerCase(Locale.ROOT) + "." + + outputType.toString().toLowerCase(Locale.ROOT) + ".xml"; File destinationFile = new File(destinationFolder, outputFilename); FileOutputStream fileOutputStream = new FileOutputStream(tempFile); @@ -92,13 +176,16 @@ private static void buildUcdXMLFile( UCDDataResolver ucdDataResolver = new UCDDataResolver(iup, NAMESPACE, writer); writer.startFile(); - writer.startElement("ucd"); { - writer.startElement("description"); { + writer.startElement("ucd"); + { + writer.startElement("description"); + { writer.addContent("Unicode " + getVersionString(ucdVersion, 3)); writer.endElement("description"); } - buildRepertoire(writer, attributeResolver, ucdVersion, lowCodepoint, highCodepoint, outputRange); - if(outputRange != UCDXMLOUTPUTRANGE.UNIHAN) { + buildRepertoire(writer, attributeResolver, ucdVersion, lowCodepoint, highCodepoint, outputRange, + outputType); + if (outputRange != UCDXMLOUTPUTRANGE.UNIHAN) { ucdDataResolver.buildSection(UcdSectionDetail.UcdSection.BLOCKS); ucdDataResolver.buildSection(UcdSectionDetail.UcdSection.NAMEDSEQUENCES); ucdDataResolver.buildSection(UcdSectionDetail.UcdSection.NORMALIZATIONCORRECTIONS); @@ -110,9 +197,11 @@ private static void buildUcdXMLFile( writer.endElement("ucd"); } writer.endFile(); - fileOutputStream.close (); + fileOutputStream.close(); cleanUcdXMLFile(tempFile, destinationFile); - tempFile.delete(); + if(!tempFile.delete()) { + throw new IOException("Could not delete temporary file " + tempFile); + } } private static void cleanUcdXMLFile(File tempFile, File destinationFile) throws IOException { @@ -131,7 +220,7 @@ private static void cleanUcdXMLFile(File tempFile, File destinationFile) throws String line; while ((line = bufferedReader.readLine()) != null) { - Matcher matcher = Pattern.compile("&#([\\d]+);").matcher(line); + Matcher matcher = Pattern.compile("&#(\\d+);").matcher(line); line = matcher.replaceAll(matchResult -> new String(Character.toChars(Integer.parseInt(matcher.group(1))))); bufferedWriter.append(line); bufferedWriter.newLine(); @@ -141,88 +230,186 @@ 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) - 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); + } else { + codepoint = buildChars(writer, attributeResolver, ucdVersion, codepoint, highCodepoint, + outputRange, outputType, null); + } + } + } + writer.endElement("repertoire"); + } + } - writer.startElement("repertoire"); { + 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); - ArrayList range = new ArrayList<>(); - Range rangeType = Range.NONRANGE; + AttributesImpl groupAttrs = getGroupAttributes(ucdVersion, attributeResolver, lowCodepoint, + lastCodepointInGroup, outputRange); - for (int codepoint = lowCodepoint; codepoint <= highCodepoint; 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 (outputRange != UCDXMLOUTPUTRANGE.UNIHAN) { - buildRange(writer, attributeResolver, ucdVersion, range, rangeType); + writer.startElement("group", 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 { + + 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))) { + Range currentRangeType = getRangeType(attributeResolver, codepoint); + if (!range.isEmpty()) { + if (!currentRangeType.equals(rangeType) || attributeResolver.isDifferentRange(codepoint, + codepoint - 1)) { + if (outputRange != UCDXMLOUTPUTRANGE.UNIHAN) { + if (outputType == UCDXMLOUTPUTTYPE.GROUPED) { + buildGroupedRange(writer, attributeResolver, ucdVersion, range, rangeType, groupAttrs); + } else { + buildUngroupedRange(writer, attributeResolver, ucdVersion, range, rangeType); } - range.clear(); } + range.clear(); } - range.add(codepoint); - rangeType = currentRangeType; } - else { - if (!range.isEmpty()) { - if (outputRange != UCDXMLOUTPUTRANGE.UNIHAN) { - buildRange(writer, attributeResolver, ucdVersion, range, rangeType); + range.add(codepoint); + rangeType = currentRangeType; + } else { + if (!range.isEmpty()) { + if (outputRange != UCDXMLOUTPUTRANGE.UNIHAN) { + if (outputType == UCDXMLOUTPUTTYPE.GROUPED) { + buildGroupedRange(writer, attributeResolver, ucdVersion, range, rangeType, groupAttrs); + } else { + buildUngroupedRange(writer, attributeResolver, ucdVersion, range, rangeType); } - range.clear(); - rangeType = Range.NONRANGE; } - buildChar(writer, attributeResolver, ucdVersion, codepoint, outputRange); + range.clear(); + rangeType = Range.NONRANGE; + } + if (isWritableCodepoint(codepoint, outputRange, attributeResolver)) { + if (outputType == UCDXMLOUTPUTTYPE.GROUPED) { + buildGroupedChar(writer, attributeResolver, ucdVersion, codepoint, outputRange, groupAttrs); + } else { + buildUngroupedChar(writer, attributeResolver, ucdVersion, codepoint, outputRange); + } } } - //Handle any range before the end of the repertoire element. - if (!range.isEmpty()) { - if (outputRange != UCDXMLOUTPUTRANGE.UNIHAN) { - buildRange(writer, attributeResolver, ucdVersion, range, rangeType); + } + //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); + } else { + buildUngroupedRange(writer, attributeResolver, ucdVersion, range, rangeType); } } - writer.endElement("repertoire"); } + return highCodepoint; } - private static void buildChar( - 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 { - if(outputRange != UCDXMLOUTPUTRANGE.UNIHAN || attributeResolver.isUnihanAttributeRange(codepoint)) { - AttributesImpl at = getAttributes(ucdVersion, attributeResolver, codepoint, outputRange); - writer.startElement("char", at); { - HashMap nameAliases = attributeResolver.getNameAliases(codepoint); - if (null != nameAliases && !nameAliases.isEmpty()) { - 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)); - writer.startElement("name-alias", nameAliasAt); { - writer.endElement("name-alias"); - } + 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 { + + 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); + } + } + buildChar(writer, attributeResolver, codepoint, charAttributes); + } + + private static void buildChar(UCDXMLWriter writer, AttributeResolver attributeResolver, int codepoint, + AttributesImpl charAttributes) throws SAXException { + writer.startElement("char", charAttributes); + { + HashMap nameAliases = attributeResolver.getNameAliases(codepoint); + if (null != nameAliases && !nameAliases.isEmpty()) { + 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)); + writer.startElement("name-alias", nameAliasAt); + { + writer.endElement("name-alias"); } } - writer.endElement("char"); } + writer.endElement("char"); + } + } + + 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); + } + } + writer.startElement(rangeType.tag, rangeAttributes); + { + writer.endElement(rangeType.tag); } } - private static void buildRange(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 at = getReservedAttributes(ucdVersion, attributeResolver, range); - writer.startElement(rangeType.tag, at); { + 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 Range getRangeType(AttributeResolver attributeResolver, int codepoint) { String NChar = attributeResolver.getNChar(codepoint); UcdPropertyValues.General_Category_Values gc = attributeResolver.getgc(codepoint); @@ -242,49 +429,115 @@ private static Range getRangeType(AttributeResolver attributeResolver, int codep return Range.RESERVED; } - private static AttributesImpl getAttributes( - VersionInfo version, AttributeResolver attributeResolver, int codepoint, UCDXMLOUTPUTRANGE outputRange) { + 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 + || codepoint == 0x1f1e6 - 1 // put the regional indicators in their own group + ) { + return codepoint; + } + } + return highCodepoint; + } + + 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)) - { + (propDetail.getMaxVersion() == null || version.compareTo(propDetail.getMaxVersion()) < 0)) { String attrValue = attributeResolver.getAttributeValue(prop, codepoint); - boolean isAttributeIncluded = getIsAttributeIncluded( - attrValue, - attributeResolver.isUnihanAttributeRange(codepoint), - propDetail, prop, - outputRange); - - if(isAttributeIncluded) { + boolean isAttributeIncluded = getIsAttributeIncluded(attrValue, + attributeResolver.isUnihanAttributeRange(codepoint), propDetail, prop, outputRange); + if (isAttributeIncluded) { String propName = prop.getShortName(); - if(propName.startsWith("cjk")) { + if (propName.startsWith("cjk")) { propName = propName.substring(2); } - attributes.addAttribute( - NAMESPACE, - propName, - propName, - "CDATA", - attrValue - ); + attributes.addAttribute(NAMESPACE, propName, propName, "CDATA", attrValue); + } + } + } + return attributes; + } + + 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)) { + 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); + currentCount++; + totalCount++; + counters.put(attrValue, currentCount); + } + } + int max = Integer.MIN_VALUE; + String bestAttrValue = null; + for (String attrValue : counters.keySet()) { + int thisCount = counters.get(attrValue); + if (thisCount > max) { + max = thisCount; + bestAttrValue = attrValue; + } + } + switch (prop) { + case Decomposition_Mapping: + case Simple_Uppercase_Mapping: + case Simple_Lowercase_Mapping: + case Simple_Titlecase_Mapping: + case Uppercase_Mapping: + case Lowercase_Mapping: + case Titlecase_Mapping: + case Simple_Case_Folding: + case Case_Folding: + if (bestAttrValue != null) { + bestAttrValue = "#"; + } + } + if (max > 0.2 * totalCount && max > 1) { + 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); + } } } } return attributes; } - private static boolean getIsAttributeIncluded( - String attrValue, - boolean isUnihanAttributeRange, - UcdPropertyDetail propDetail, - UcdProperty prop, - UCDXMLOUTPUTRANGE outputRange) { - if (attrValue == null) { return false; } + private static boolean getIsAttributeIncluded(String attrValue, boolean isUnihanAttributeRange, + UcdPropertyDetail propDetail, UcdProperty prop, + UCDXMLOUTPUTRANGE outputRange) { + if (attrValue == null) { + return false; + } if (isUnihanAttributeRange) { if (outputRange == UCDXMLOUTPUTRANGE.UNIHAN) { if (prop.equals(UcdProperty.Numeric_Type) && !attrValue.equals("None")) { @@ -309,37 +562,25 @@ private static boolean getIsAttributeIncluded( } - 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))); - } - else { - attributes.addAttribute( - NAMESPACE, "first-cp", "first-cp", "CDATA", + attributes.addAttribute(NAMESPACE, "cp", "cp", "CDATA", attributeResolver.getHexString(range.get(0))); + } else { + 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)) - { + (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 - ); + attributes.addAttribute(NAMESPACE, prop.getShortName(), prop.getShortName(), "CDATA", attrValue); } } return attributes; @@ -350,7 +591,7 @@ private static String getVersionString(VersionInfo version, int maxDigits) { 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) { + for (int i = 1; i < maxDigits; ++i) { verStr.append("."); verStr.append(digits[i]); }