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 re...@apache.org on 2015/08/31 13:15:07 UTC

svn commit: r1700231 - in /jackrabbit/oak/trunk/oak-core/src: main/java/org/apache/jackrabbit/oak/plugins/document/UpdateOp.java test/java/org/apache/jackrabbit/oak/plugins/document/LastRevRecoveryTest.java

Author: reschke
Date: Mon Aug 31 11:15:07 2015
New Revision: 1700231

URL: http://svn.apache.org/r1700231
Log:
OAK-3288: clarify DocumentStore contract with respect to number formats by making the UpdateOp method signatures more specific

Modified:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/UpdateOp.java
    jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/LastRevRecoveryTest.java

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/UpdateOp.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/UpdateOp.java?rev=1700231&r1=1700230&r2=1700231&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/UpdateOp.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/document/UpdateOp.java Mon Aug 31 11:15:07 2015
@@ -171,14 +171,33 @@ public final class UpdateOp {
     }
 
     /**
-     * Set the property to the given value.
+     * Set the property to the given long value.
      *
      * @param property the property name
      * @param value the value
      */
-    public void set(String property, Object value) {
-        Operation op = new Operation(Operation.Type.SET, value);
-        changes.put(new Key(property, null), op);
+    public void set(String property, long value) {
+        internalSet(property, value);
+    }
+
+    /**
+     * Set the property to the given boolean value.
+     *
+     * @param property the property name
+     * @param value the value
+     */
+    public void set(String property, boolean value) {
+        internalSet(property, value);
+    }
+
+    /**
+     * Set the property to the given String value.
+     *
+     * @param property the property name
+     * @param value the value
+     */
+    public void set(String property, String value) {
+        internalSet(property, value);
     }
 
     /**
@@ -281,6 +300,11 @@ public final class UpdateOp {
         return conditions;
     }
 
+    private void internalSet(String property, Object value) {
+        Operation op = new Operation(Operation.Type.SET, value);
+        changes.put(new Key(property, null), op);
+    }
+
     /**
      * A DocumentStore operation for a given key within a document.
      */

Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/LastRevRecoveryTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/LastRevRecoveryTest.java?rev=1700231&r1=1700230&r2=1700231&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/LastRevRecoveryTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/document/LastRevRecoveryTest.java Mon Aug 31 11:15:07 2015
@@ -179,7 +179,13 @@ public class LastRevRecoveryTest {
                     op.setMapEntry(key, entry.getKey(), entry.getValue());
                 }
             } else {
-                op.set(key, obj);
+                if (obj instanceof Boolean) {
+                    op.set(key, ((Boolean) obj).booleanValue());
+                } else if (obj instanceof Number) {
+                    op.set(key, ((Number) obj).longValue());
+                } else {
+                    op.set(key, obj.toString());
+                }
             }
         }
         return op;