code: public String getName(int ch, int choice)
      {
          if (ch < UCharacter.MIN_VALUE || ch > UCharacter.MAX_VALUE ||
              choice > UCharacterNameChoice.CHAR_NAME_CHOICE_COUNT) {
              return null;
          }
  
          String result = null;
  
          result = getAlgName(ch, choice);
  
          // getting normal character name
          if (result == null || result.length() == 0) {
              if (choice == UCharacterNameChoice.EXTENDED_CHAR_NAME) {
                  result = getExtendedName(ch);
              } else {
                  result = getGroupName(ch, choice);
              }
          }
  
          return result;
      }
docs: Retrieve the name of a Unicode code point.
  Depending on <code>choice</code>, the character name written into the
  buffer is the "modern" name or the name that was defined in Unicode
  version 1.0.
  The name contains only "invariant" characters
  like A-Z, 0-9, space, and '-'.
  
  @param ch the code point for which to get the name.
  @param choice Selector for which name to get.
  @return if code point is above 0x1fff, null is returned