package ru.net.jimm.config;
/**
* Created with IntelliJ IDEA.
* <p/>
* Date: 28.12.12 15:22
*
* @author vladimir
*/
class IniBuilder {
private final StringBuilder sb = new StringBuilder();
public void comment() {
sb.append(";; ");
}
public void line(String key, Object value) {
sb.append(key).append(" = ").append(toString(value)).append("\n");
}
private String toString(Object o) {
if (o instanceof String) {
return "'" + IniBuilder.escape(o.toString()) + "'";
}
if (o instanceof Long) {
return o.toString();
}
return o.toString();
}
public String toString() {
return sb.toString();
}
static String extract(String s) {
s = s.trim();
if (1 < s.length()) {
char mark = s.charAt(0);
if ((mark == s.charAt(s.length() - 1)) && (-1 != "\"\'".indexOf(mark))) {
s = unescape(s.substring(1, s.length() - 1));
}
}
return s;
}
private static String escape(String s) {
return s.replace("\\", "\\\\").replace("\n", "\\n");
}
private static String unescape(String s) {
return s.replace("\\n", "\n").replace("\\\\", "\\");
}
}