docs: public StringBuffer getMessageKey(StringBuffer sb)
      {
          if ((this.getKeyInformation() & NOT_UNIQUE) == 0)
          {
              if (sb == null)
                  sb = new StringBuffer();
              boolean bCompoundDataAdded = false;
              if ((this.getKeyInformation() & COMPOUND_PARAM) != 0)
              {
                  String strSaveKey = this.getKey();
                  String strBaseParam = strSaveKey;
                  if (Character.isDigit(strSaveKey.charAt(strSaveKey.length() - 1)))
                      strBaseParam = strSaveKey.substring(0, strSaveKey.length() - 1);
                  int iMaxParam = this.getKeyInformation() & COMPOUND_MASK;
                  if (iMaxParam == 0)
                      iMaxParam = COMPOUND_MASK;
                  for (int i = 1; i <= iMaxParam; i++)
                  {
                      this.setKey(strBaseParam + Integer.toString(i));
                      String data = this.getString();
                      if (data != null)
                      {
                          if (sb.length() > 0)
                              sb.append('/');
                          sb.append(data);
                          if (data.length() > 0)
                              bCompoundDataAdded = true;
                      }
                      else
                          if (iMaxParam == COMPOUND_MASK)
                              break;  // If there are a unlimited number of params, stop on first null.
                  }
                  this.setKey(strSaveKey);
              }
              if (!bCompoundDataAdded)
              {
                  if (sb.length() > 0)
                      sb.append('/');
                  String data = this.getString();
                  if (data != null)
                      sb.append(data);
              }
          }
          return sb;
      }