+ /**
+ * Return the {@link List} of sep-listed values from this {@link String}
+ * data.
+ *
+ * @param value
+ * the data
+ *
+ * @param the
+ * separator
+ *
+ * @return the {@link List} of values
+ */
+ private List<String> getList(char sep) {
+ List<String> rep = new LinkedList<String>();
+
+ if (value != null && value.length() > 0) {
+ int last = 0;
+ for (int i = 0; i < value.length(); i++) {
+ if (value.charAt(i) == sep
+ && (i == 0 || value.charAt(i - 1) != '\\')) {
+ rep.add(value.substring(last, i));
+ last = i + 1;
+ }
+ }
+
+ if (last < value.length())
+ rep.add(value.substring(last));
+ }
+
+ return rep;
+ }
+
+ /**
+ * Create the {@link String}-encoded {@link List} of sep-listed values from
+ * the given values.
+ *
+ * @param values
+ * the {@link List} of values
+ *
+ * @param sep
+ * the separator
+ *
+ * @return the {@link String}
+ */
+ private void setList(List<String> values, char sep) {
+ StringBuilder builder = new StringBuilder();
+ boolean first = true;
+ for (String value : values) {
+ if (!first)
+ builder.append(sep);
+
+ builder.append(escape(value));
+
+ first = false;
+ }
+
+ value = builder.toString();
+ }
+
+ @Override
+ public String getId() {
+ return "" + name;