code: static String[] decode(String filename) {
          int i = filename.indexOf("+");
          if (i == -1) return new String[] { decodePart(filename), null, null };
          int j = filename.lastIndexOf("+");
          return new String[] { decodePart(filename.substring(0, i)),
                  decodePart(filename.substring(i + 1, j)),
                  decodePart(filename.substring(j + 1)) };
      }
docs: reverses the encoding