Author: reschke
Date: Wed Oct 8 16:26:33 2014
New Revision: 1630166
URL: http://svn.apache.org/r1630166
Log:
OAK-1941 - code cleanup
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java?rev=1630166&r1=1630165&r2=1630166&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java
(original)
+++
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java
Wed Oct 8 16:26:33 2014
@@ -1256,25 +1256,7 @@ public class RDBDocumentStore implements
if (needComma) {
sb.append(",");
}
- Object value = doc.get(key);
- sb.append("\"");
- appendEscapedString(sb, key);
- sb.append("\":");
- if (value == null) {
- sb.append("null");
- } else if (value instanceof Number) {
- sb.append(value.toString());
- } else if (value instanceof Boolean) {
- sb.append(value.toString());
- } else if (value instanceof String) {
- sb.append("\"");
- appendEscapedString(sb, (String) value);
- sb.append("\"");
- } else if (value instanceof Map) {
- serializeMap(sb, (Map<Object, Object>) value);
- } else {
- throw new RuntimeException("unexpected type: " +
value.getClass());
- }
+ appendMember(sb, key, doc.get(key));
needComma = true;
}
}
@@ -1282,32 +1264,36 @@ public class RDBDocumentStore implements
return sb.toString();
}
- private static void serializeMap(StringBuilder sb, Map<Object, Object>
map) {
+ private static void appendMember(StringBuilder sb, String key, Object
value) {
+ appendString(sb, key);
+ sb.append(":");
+ appendValue(sb, value);
+ }
+
+ private static void appendValue(StringBuilder sb, Object value) {
+ if (value == null) {
+ sb.append("null");
+ } else if (value instanceof Number) {
+ sb.append(value.toString());
+ } else if (value instanceof Boolean) {
+ sb.append(value.toString());
+ } else if (value instanceof String) {
+ appendString(sb, (String) value);
+ } else if (value instanceof Map) {
+ appendMap(sb, (Map<Object, Object>) value);
+ } else {
+ throw new RuntimeException("unexpected type: " + value.getClass());
+ }
+ }
+
+ private static void appendMap(StringBuilder sb, Map<Object, Object> map) {
sb.append("{");
boolean needComma = false;
for (Map.Entry<Object, Object> e : map.entrySet()) {
if (needComma) {
sb.append(",");
}
- Object value = e.getValue();
- sb.append("\"");
- appendEscapedString(sb, e.getKey().toString());
- sb.append("\":");
- if (value == null) {
- sb.append("null");
- } else if (value instanceof Number) {
- sb.append(value.toString());
- } else if (value instanceof String) {
- sb.append("\"");
- appendEscapedString(sb, (String) value);
- sb.append("\"");
- } else if (value instanceof Boolean) {
- sb.append(value.toString());
- } else if (value instanceof Map) {
- serializeMap(sb, (Map) value);
- } else {
- throw new RuntimeException("unexpected type");
- }
+ appendMember(sb, e.getKey().toString(), e.getValue());
needComma = true;
}
sb.append("}");
@@ -1318,10 +1304,11 @@ public class RDBDocumentStore implements
"\\u0012", "\\u0013", "\\u0014", "\\u0015", "\\u0016", "\\u0017",
"\\u0018", "\\u0019", "\\u001a", "\\u001b",
"\\u001c", "\\u001d", "\\u001e", "\\u001f" };
- private static void appendEscapedString(StringBuilder sb, String s) {
+ private static void appendString(StringBuilder sb, String s) {
+ sb.append('"');
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
- if (c == '\"') {
+ if (c == '"') {
sb.append("\\\"");
} else if (c == '\\') {
sb.append("\\\\");
@@ -1331,6 +1318,7 @@ public class RDBDocumentStore implements
sb.append(c);
}
}
+ sb.append('"');
}
// JSON simple serializer