You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by an...@apache.org on 2012/04/25 17:06:04 UTC
svn commit: r1330329 - in /jackrabbit/oak/trunk/oak-core/src:
main/java/org/apache/jackrabbit/oak/util/CoreValueUtil.java
test/java/org/apache/jackrabbit/oak/util/CoreValueUtilTest.java
Author: angela
Date: Wed Apr 25 15:06:03 2012
New Revision: 1330329
URL: http://svn.apache.org/viewvc?rev=1330329&view=rev
Log:
OAK-33 : Values in oak-core (WIP)
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/util/CoreValueUtil.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/util/CoreValueUtilTest.java
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/util/CoreValueUtil.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/util/CoreValueUtil.java?rev=1330329&r1=1330328&r2=1330329&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/util/CoreValueUtil.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/util/CoreValueUtil.java Wed Apr 25 15:06:03 2012
@@ -94,15 +94,20 @@ public class CoreValueUtil {
CoreValue value;
if (reader.matches(JsopTokenizer.NUMBER)) {
String number = reader.getToken();
- value = fromJsonString(number, JsopTokenizer.NUMBER, valueFactory);
+ value = valueFactory.createValue(Long.valueOf(number));
} else if (reader.matches(JsopTokenizer.TRUE)) {
value = valueFactory.createValue(true);
} else if (reader.matches(JsopTokenizer.FALSE)) {
value = valueFactory.createValue(false);
} else if (reader.matches(JsopTokenizer.STRING)) {
- String strValue = reader.getToken();
- value = fromJsonString(strValue, JsopTokenizer.STRING, valueFactory);
- } else {
+ String jsonString = reader.getToken();
+ if (startsWithHint(jsonString)) {
+ int type = HINT2TYPE.get(jsonString.substring(0,3));
+ value = valueFactory.createValue(jsonString.substring(4), type);
+ } else {
+ value = valueFactory.createValue(jsonString);
+ }
+ } else {
throw new IllegalArgumentException("Unexpected token: " + reader.getToken());
}
return value;
@@ -121,34 +126,6 @@ public class CoreValueUtil {
}
}
- // TODO remove again
- public static CoreValue fromJsonString(String jsonString, int jsopType, CoreValueFactory valueFactory) {
- CoreValue value;
- switch (jsopType) {
- case JsopTokenizer.NUMBER:
- value = valueFactory.createValue(Long.valueOf(jsonString));
- break;
- case JsopTokenizer.FALSE:
- value = valueFactory.createValue(false);
- break;
- case JsopTokenizer.TRUE:
- value = valueFactory.createValue(true);
- break;
- case JsopTokenizer.STRING:
- if (startsWithHint(jsonString)) {
- int type = HINT2TYPE.get(jsonString.substring(0,3));
- value = valueFactory.createValue(jsonString.substring(4), type);
- } else {
- value = valueFactory.createValue(jsonString);
- }
- break;
- default:
- throw new IllegalArgumentException("Invalid jsop type: " + jsopType);
- }
- return value;
- }
-
-
private static String buildJsonStringWithType(CoreValue value) {
StringBuilder sb = new StringBuilder();
sb.append(TYPE2HINT.get(value.getType()));
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/util/CoreValueUtilTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/util/CoreValueUtilTest.java?rev=1330329&r1=1330328&r2=1330329&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/util/CoreValueUtilTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/util/CoreValueUtilTest.java Wed Apr 25 15:06:03 2012
@@ -17,6 +17,7 @@
package org.apache.jackrabbit.oak.util;
import org.apache.jackrabbit.mk.api.MicroKernel;
+import org.apache.jackrabbit.mk.json.JsopReader;
import org.apache.jackrabbit.mk.json.JsopTokenizer;
import org.apache.jackrabbit.mk.simple.SimpleKernelImpl;
import org.apache.jackrabbit.oak.api.CoreValue;
@@ -101,17 +102,8 @@ public class CoreValueUtilTest {
public void testFromJsonValue() throws IOException {
for (CoreValue v : map.keySet()) {
String json = map.get(v);
- int jsopType;
- if (v.getType() == PropertyType.BOOLEAN) {
- jsopType = (v.getBoolean()) ? JsopTokenizer.TRUE : JsopTokenizer.FALSE;
- } else if (v.getType() == PropertyType.LONG) {
- jsopType = JsopTokenizer.NUMBER;
- } else {
- jsopType = JsopTokenizer.STRING;
- // remove quotes
- json = json.substring(1, json.length()-1);
- }
- assertEquals(v, CoreValueUtil.fromJsonString(json, jsopType, valueFactory));
+ JsopReader reader = new JsopTokenizer(json);
+ assertEquals(v, CoreValueUtil.fromJsopReader(reader, valueFactory));
}
}
}
\ No newline at end of file