docs: protected String replace(String source) {
      StringBuffer tmp = new StringBuffer();
      StringTokenizer stringTokenizer = new StringTokenizer(source, specialString, true);
      String previous = "";
      while (stringTokenizer.hasMoreTokens()) {
        String current = stringTokenizer.nextToken();
        if (special.containsKey(current) && !previous.endsWith("&")) {
          current = (String) special.get(current);
        }
        tmp.append(current);
        previous = current;
      }
      return tmp.toString();
    }