Skip to content

Commit

Permalink
CLDR-11155 Pages too big; move some paths to new Pages (#3508)
Browse files Browse the repository at this point in the history
-New Travel_Places2 (Travel & Places 2) starting with subgroup transport-ground

-New Objects2 starting with subgroup money

-New EmojiSymbols, Punctuation, MathSymbols, OtherSymbols, replacing Symbols2

-New methods PathHeader.createNonEmojiMap, PathHeader.getCharacterPageId

-New unit test TestAnnotations.testSymbols

-Fix some compiler warnings including dead code

-Comments, including TODO for Volume/Volume2
  • Loading branch information
btangmu committed Feb 26, 2024
1 parent 960762b commit 1259519
Show file tree
Hide file tree
Showing 3 changed files with 205 additions and 183 deletions.
48 changes: 15 additions & 33 deletions tools/cldr-code/src/main/java/org/unicode/cldr/util/Emoji.java
Original file line number Diff line number Diff line change
Expand Up @@ -88,16 +88,10 @@ public class Emoji {
line = line.substring(1).trim();
if (line.startsWith("group:")) {
majorCategory = line.substring("group:".length()).trim();
Long oldMajorOrder = majorToOrder.get(majorCategory);
if (oldMajorOrder == null) {
majorToOrder.put(majorCategory, (long) majorToOrder.size());
}
majorToOrder.computeIfAbsent(majorCategory, k -> (long) majorToOrder.size());
} else if (line.startsWith("subgroup:")) {
minorCategory = line.substring("subgroup:".length()).trim();
Long oldMinorOrder = minorToOrder.get(minorCategory);
if (oldMinorOrder == null) {
minorToOrder.put(minorCategory, (long) minorToOrder.size());
}
minorToOrder.computeIfAbsent(minorCategory, k -> (long) minorToOrder.size());
}
continue;
}
Expand Down Expand Up @@ -312,14 +306,6 @@ public static String getMajorCategory(String emoji) {
return majorCat;
}

public static Set<String> getMajorCategories() {
return emojiToMajorCategory.values();
}

public static Set<String> getMinorCategories() {
return emojiToMinorCategory.values();
}

public static Set<String> getMinorCategoriesWithExtras() {
Set<String> result = new LinkedHashSet<>(emojiToMinorCategory.values());
result.addAll(EXTRA_SYMBOL_MINOR_CATEGORIES.getAvailableValues());
Expand All @@ -337,17 +323,12 @@ public static UnicodeSet getNonConstructed() {
}

private static Set<String> NAME_PATHS = null;
private static Set<String> KEYWORD_PATHS = null;
public static final String TYPE_TTS = "[@type=\"tts\"]";

public static synchronized Set<String> getNamePaths() {
return NAME_PATHS != null ? NAME_PATHS : (NAME_PATHS = buildPaths(TYPE_TTS));
}

public static synchronized Set<String> getKeywordPaths() {
return KEYWORD_PATHS != null ? KEYWORD_PATHS : (KEYWORD_PATHS = buildPaths(""));
}

private static ImmutableSet<String> buildPaths(String suffix) {
ImmutableSet.Builder<String> builder = ImmutableSet.builder();
for (String s : Emoji.getNonConstructed()) {
Expand All @@ -368,21 +349,22 @@ public static PageId getPageId(String emoji) {
final String major = getMajorCategory(emoji);
final String minor = getMinorCategory(emoji);
final PageId pageId = PageId.forString(major);
final Long minorOrder = minorToOrder.get(minor);
switch (pageId) {
case Objects:
return (minorOrder < minorToOrder.get("money")) ? PageId.Objects : PageId.Objects2;
case People:
if (minorToOrder.get(minor) < minorToOrder.get("person-fantasy")) {
return PageId.People;
} else {
return PageId.People2;
}
return (minorOrder < minorToOrder.get("person-fantasy"))
? PageId.People
: PageId.People2;
case Symbols:
if (minorToOrder.get(minor) < minorToOrder.get("transport-sign")) {
return PageId.Symbols;
} else if (minorToOrder.get(minor) < minorToOrder.get("other-symbol")) {
return PageId.Symbols2;
} else {
return PageId.Symbols3;
}
return (minorOrder < minorToOrder.get("transport-sign"))
? PageId.Symbols
: PageId.EmojiSymbols;
case Travel_Places:
return (minorOrder < minorToOrder.get("transport-ground"))
? PageId.Travel_Places
: PageId.Travel_Places2;
default:
return pageId;
}
Expand Down
Loading

0 comments on commit 1259519

Please sign in to comment.