Skip to content

Commit 0a03c64

Browse files
committed
fixed Emoji_Modifier_Base is missing 1F46D; cleaned up for easier testing
git-svn-id: https://unicode.org/repos/unicodetools/trunk@1565 13e8329f-0b23-4da4-9fe8-d0f6fe080806
1 parent a6ec4fa commit 0a03c64

File tree

7 files changed

+222
-145
lines changed

7 files changed

+222
-145
lines changed

unicodetools/org/unicode/tools/emoji/CandidateData.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
package org.unicode.tools.emoji;
22

3+
import java.io.File;
34
import java.text.Collator;
45
import java.util.ArrayList;
56
import java.util.Collections;
67
import java.util.Comparator;
8+
import java.util.Date;
79
import java.util.LinkedHashSet;
810
import java.util.List;
911
import java.util.Locale;
@@ -34,9 +36,11 @@
3436
import com.ibm.icu.lang.CharSequences;
3537
import com.ibm.icu.lang.UCharacter;
3638
import com.ibm.icu.lang.UProperty;
39+
import com.ibm.icu.text.DateFormat;
3740
import com.ibm.icu.text.Transform;
3841
import com.ibm.icu.text.UnicodeSet;
3942
import com.ibm.icu.util.ICUException;
43+
import com.ibm.icu.util.ULocale;
4044
import com.ibm.icu.util.VersionInfo;
4145

4246
public class CandidateData implements Transform<String, String>, EmojiDataSource {
@@ -139,6 +143,7 @@ private CandidateData(String sourceFile) {
139143
String proposalItem = null;
140144
Status status = null;
141145

146+
date = new File(FileUtilities.getRelativeFileName(CandidateData.class, sourceFile)).lastModified();
142147
for (String line : FileUtilities.in(CandidateData.class, sourceFile)) {
143148
line = line.trim();
144149
try {
@@ -491,6 +496,7 @@ public int compare(String o1, String o2) {
491496
return EmojiOrder.FULL_COMPARATOR.compare(o1, o2);
492497
}
493498
};
499+
private long date;
494500

495501
/**
496502
* @return the characters
@@ -944,4 +950,19 @@ public UnicodeSet getAllCharacters(Status status) {
944950
default: throw new IllegalArgumentException();
945951
}
946952
}
953+
954+
@Override
955+
public UnicodeSet getKeycapSequences() {
956+
return UnicodeSet.EMPTY;
957+
}
958+
959+
@Override
960+
public String addEmojiVariants(String s1) {
961+
throw new UnsupportedOperationException();
962+
}
963+
964+
@Override
965+
public String getVersionString() {
966+
return "candidates:" + DateFormat.getInstanceForSkeleton("yyyyMMdd", ULocale.ROOT).format(date);
967+
}
947968
}

unicodetools/org/unicode/tools/emoji/EmojiData.java

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -778,7 +778,7 @@ public UnicodeSet getModifierSequences() {
778778
return modifierSequences;
779779
}
780780

781-
public UnicodeSet getModifiers() {
781+
public static UnicodeSet getModifiers() {
782782
return MODIFIERS;
783783
}
784784

@@ -959,7 +959,7 @@ public boolean skipEmojiSequence(String string) {
959959

960960
private static Pattern EMOJI_VARIANTs = Pattern.compile("[" + Emoji.EMOJI_VARIANT + Emoji.TEXT_VARIANT + "]");
961961

962-
enum VariantStatus {
962+
public enum VariantStatus {
963963
/** All characters that need them have emoji-variants */
964964
full("fully-qualified"),
965965
/** The first character has an emoji-variant, if needed */
@@ -969,10 +969,18 @@ enum VariantStatus {
969969
/** Neither full nor partial */
970970
component("component")
971971
;
972-
final String name;
972+
public final String name;
973973
private VariantStatus(String name) {
974974
this.name = name;
975975
}
976+
public static final VariantStatus forString(String name) {
977+
for (VariantStatus item : values()) {
978+
if (name.equals(item.name)) {
979+
return item;
980+
}
981+
}
982+
return valueOf(name);
983+
}
976984
}
977985

978986
public VariantStatus getVariantStatus(String emoji) {
@@ -1729,6 +1737,10 @@ public UnicodeSet getEmojiWithVariants() {
17291737
public VersionInfo getVersion() {
17301738
return version;
17311739
}
1740+
1741+
public String getVersionString() {
1742+
return version.getVersionString(2, 2);
1743+
}
17321744

17331745
public UnicodeSet getRegionalIndicators() {
17341746
// TODO Auto-generated method stub

unicodetools/org/unicode/tools/emoji/EmojiDataSource.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ public interface EmojiDataSource {
1313
public UnicodeSet getExtendedPictographic();
1414
public UnicodeSet getTagSequences();
1515
public UnicodeSet getModifierSequences();
16+
public UnicodeSet getKeycapSequences();
1617
public UnicodeSet getFlagSequences();
1718
public UnicodeSet getZwjSequencesNormal();
1819
public UnicodeSet getEmojiWithVariants();
@@ -28,6 +29,7 @@ public default String getName(int codepoint) {
2829
return getName(UTF16.valueOf(codepoint));
2930
}
3031
public UnicodeMap<String> getRawNames();
32+
3133
public default UnicodeSet getBasicSequences() {
3234
UnicodeSet result = new UnicodeSet();
3335
for (String s : getSingletonsWithDefectives()) {
@@ -42,5 +44,16 @@ public default UnicodeSet getBasicSequences() {
4244
}
4345
return result.freeze();
4446
}
47+
48+
public default UnicodeSet getEmojiForSortRules() {
49+
return new UnicodeSet()
50+
.addAll(getAllEmojiWithoutDefectives())
51+
.removeAll(Emoji.DEFECTIVE)
52+
.addAll(getZwjSequencesNormal())
53+
.addAll(getKeycapSequences());
54+
}
55+
56+
public String addEmojiVariants(String s1);
57+
public String getVersionString();
4558
}
4659

unicodetools/org/unicode/tools/emoji/EmojiDataSourceCombined.java

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -120,14 +120,29 @@ public UnicodeMap<String> getRawNames() {
120120
return add(emojiData.getRawNames(), candidates.getRawNames());
121121
}
122122

123-
public static void main(String[] args) {
124-
UnicodeSet allChars = EMOJI_DATA.getAllEmojiWithDefectives();
125-
126-
}
127-
128123
@Override
129124
public UnicodeSet getTakesSign() {
130125
return add(emojiData.getTakesSign(),
131126
candidates.getTakesSign());
132127
}
128+
129+
@Override
130+
public UnicodeSet getKeycapSequences() {
131+
return emojiData.getKeycapSequences();
132+
}
133+
134+
@Override
135+
public String addEmojiVariants(String s1) {
136+
return emojiData.addEmojiVariants(s1);
137+
}
138+
139+
@Override
140+
public String getVersionString() {
141+
return emojiData.getVersion() + " + " + candidates.getVersionString();
142+
}
143+
144+
// public static void main(String[] args) {
145+
// UnicodeSet allChars = EMOJI_DATA.getAllEmojiWithDefectives();
146+
//
147+
// }
133148
}

0 commit comments

Comments
 (0)