Interface EmojiAnnotationJoin

Functional Interface:
This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.

@FunctionalInterface public interface EmojiAnnotationJoin
The joined-facts layer of the emoji annotation record store: a hook through which facts that live in user-installed data, typically a gazetteer (coordinates, containment chain, GeoNames or Who's On First identifiers), are resolved at run time and merged into an EmojiAnnotation. Register an implementation on an EmojiAnnotator; no implementation is shipped.

The stable join key is the ISO 3166 code decoded by EmojiFlags: a flag emoji resolves against whatever region data the user has installed. Foreign identifiers (for example GeoNames or Who's On First) and the check that a decoded code is an assigned region live in the join, not in the bundled or derived data.

  • Method Details

    • join

      Map<String,EmojiAnnotation.Value> join(String symbol, String isoRegion)
      Resolves joined attribute values for one symbol. Called by EmojiAnnotator only while an annotation is being assembled, that is when the symbol already has bundled or derived facts; the join augments records, it never creates them.
      Parameters:
      symbol - The annotated code point sequence, without the U+FE0F presentation selector.
      isoRegion - The ISO 3166 code decoded from the symbol, or null when the symbol is not a flag.
      Returns:
      The joined attribute values keyed by attribute name, empty when there is nothing to add; never null. Keys must not collide with attributes already on the record (the annotator fails loud on a collision), and every value carries its own provenance in EmojiAnnotation.Value.source().