Class UnicodeDataTemplateController


  • public abstract class UnicodeDataTemplateController
    extends java.lang.Object
    StringTemplate controller used to generate parameters to feed to unicodedata.st to code-generate UnicodeData.java, used by the tool for Unicode property escapes like \\p\{Lu\}. Uses ICU to iterate over Unicode character categories, properties, and script codes, as well as aliases for those codes. This class exists in its own Maven module to avoid adding a dependency from the tool onto the (large) ICU runtime.
    • Constructor Detail

      • UnicodeDataTemplateController

        public UnicodeDataTemplateController()
    • Method Detail

      • addIntervalForCategory

        private static void addIntervalForCategory​(java.util.Map<java.lang.String,​IntervalSet> categoryMap,
                                                   java.lang.String categoryName,
                                                   int start,
                                                   int finish)
      • addPropertyAliases

        private static void addPropertyAliases​(java.util.Map<java.lang.String,​java.lang.String> propertyAliases,
                                               java.lang.String propertyName,
                                               int property)
      • addPropertyAlias

        private static void addPropertyAlias​(java.util.Map<java.lang.String,​java.lang.String> propertyAliases,
                                             java.lang.String alias,
                                             java.lang.String propertyName)
      • getProperties

        public static java.util.Map<java.lang.String,​java.lang.Object> getProperties()
      • getShortPropertyName

        private static java.lang.String getShortPropertyName​(int property)
      • addUnicodeCategoryCodesToCodePointRanges

        private static void addUnicodeCategoryCodesToCodePointRanges​(java.util.Map<java.lang.String,​IntervalSet> propertyCodePointRanges)
      • addUnicodeCategoryCodesToNames

        private static void addUnicodeCategoryCodesToNames​(java.util.Map<java.lang.String,​java.lang.String> propertyAliases)
      • addUnicodeBinaryPropertyCodesToCodePointRanges

        private static void addUnicodeBinaryPropertyCodesToCodePointRanges​(java.util.Map<java.lang.String,​IntervalSet> propertyCodePointRanges)
      • addUnicodeBinaryPropertyCodesToNames

        private static void addUnicodeBinaryPropertyCodesToNames​(java.util.Map<java.lang.String,​java.lang.String> propertyAliases)
      • addIntPropertyRanges

        private static void addIntPropertyRanges​(int property,
                                                 java.lang.String namePrefix,
                                                 java.util.Map<java.lang.String,​IntervalSet> propertyCodePointRanges)
      • addUnicodeSetToIntervalSet

        private static void addUnicodeSetToIntervalSet​(com.ibm.icu.text.UnicodeSet unicodeSet,
                                                       IntervalSet intervalSet)
      • addUnicodeIntPropertyCodesToCodePointRanges

        private static void addUnicodeIntPropertyCodesToCodePointRanges​(java.util.Map<java.lang.String,​IntervalSet> propertyCodePointRanges)
      • addTR35ExtendedPictographicPropertyCodesToCodePointRanges

        private static void addTR35ExtendedPictographicPropertyCodesToCodePointRanges​(java.util.Map<java.lang.String,​IntervalSet> propertyCodePointRanges)
      • addEmojiPresentationPropertyCodesToCodePointRanges

        private static void addEmojiPresentationPropertyCodesToCodePointRanges​(java.util.Map<java.lang.String,​IntervalSet> propertyCodePointRanges)
      • addIntPropertyAliases

        private static void addIntPropertyAliases​(int property,
                                                  java.lang.String namePrefix,
                                                  java.util.Map<java.lang.String,​java.lang.String> propertyAliases)
      • addUnicodeScriptCodesToNames

        private static void addUnicodeScriptCodesToNames​(java.util.Map<java.lang.String,​java.lang.String> propertyAliases)
      • addUnicodeBlocksToNames

        private static void addUnicodeBlocksToNames​(java.util.Map<java.lang.String,​java.lang.String> propertyAliases)
      • addUnicodeIntPropertyCodesToNames

        private static void addUnicodeIntPropertyCodesToNames​(java.util.Map<java.lang.String,​java.lang.String> propertyAliases)