code: private static List<String> parse(String value) {
          List<String> parts = new ArrayList<String>();
          StringBuilder buffer = null; // buffer that accumulates escaped parts
          for (int length = value.length(), start = 0, comma = value.indexOf(',', 0); // split on commas
          start >= 0; // break out of the loop when no parts remain
          start = comma < 0 ? -1 : (comma + 1), comma = comma == length ? -1 : value.indexOf(',', comma + 1)) {
  
              String part = value.substring(start, comma < 0 ? length : comma);
              if (part.length() > 0 && part.charAt(part.length() - 1) == '\\') {
                  if (buffer == null)
                      buffer = new StringBuilder();
                  buffer.append(part.substring(0, part.length() - 1)).append(',');
              } else {
                  parts.add(buffer == null ? part : buffer.append(part).toString());
                  buffer = null;
              }
          }
          if (buffer != null)
              parts.add(buffer.toString());
          return parts;
      }
docs: Parse a default value which might be delimited by commas (unless escaped by \) into a list.
  
  @param value default value
  @return a list of values