@Override
 ExpectedKeyOutput toUpperCase(final Locale locale) {
   if (Constants.isLetterCode(mCode)) {
     final String codeString = StringUtils.newSingleCodePointString(mCode);
     // A letter may have an upper case counterpart that consists of multiple code
     // points, for instance the upper case of "ß" is "SS".
     return newInstance(codeString.toUpperCase(locale));
   }
   // A special negative value has no upper case.
   return this;
 }
 @Override
 public String toString() {
   return Constants.isLetterCode(mCode)
       ? StringUtils.newSingleCodePointString(mCode)
       : Constants.printableCode(mCode);
 }