code: public String getExtendedOr10Name(int ch)
      {
          String result = null;
          // TODO: Return Name_Alias/control names for control codes 0..1F & 7F..9F.
          if (result == null) {
              int type = getType(ch);
              // Return unknown if the table of names above is not up to
              // date.
              if (type >= TYPE_NAMES_.length) {
                  result = UNKNOWN_TYPE_NAME_;
              }
              else {
                  result = TYPE_NAMES_[type];
              }
              synchronized (m_utilStringBuffer_) {
                  m_utilStringBuffer_.setLength(0);
                  m_utilStringBuffer_.append('<');
                  m_utilStringBuffer_.append(result);
                  m_utilStringBuffer_.append('-');
                  String chStr = Integer.toHexString(ch).toUpperCase(Locale.ENGLISH);
                  int zeros = 4 - chStr.length();
                  while (zeros > 0) {
                      m_utilStringBuffer_.append('0');
                      zeros --;
                  }
                  m_utilStringBuffer_.append(chStr);
                  m_utilStringBuffer_.append('>');
                  result = m_utilStringBuffer_.toString();
              }
          }
          return result;
      }
docs: Gets the extended and 1.0 name when the most current unicode names
  fail
  @param ch codepoint
  @return name of codepoint extended or 1.0