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 th...@apache.org on 2012/05/31 16:38:16 UTC

svn commit: r1344749 - in /jackrabbit/oak/trunk/oak-mk: pom.xml src/main/java/org/apache/jackrabbit/mk/json/JsopReader.java src/main/java/org/apache/jackrabbit/mk/json/JsopTokenizer.java src/test/java/org/apache/jackrabbit/mk/json/JsopTest.java

Author: thomasm
Date: Thu May 31 14:38:16 2012
New Revision: 1344749

URL: http://svn.apache.org/viewvc?rev=1344749&view=rev
Log:
OAK-19 JSON utilities: javadocs, CheckForNull annotation

Modified:
    jackrabbit/oak/trunk/oak-mk/pom.xml
    jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/json/JsopReader.java
    jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/json/JsopTokenizer.java
    jackrabbit/oak/trunk/oak-mk/src/test/java/org/apache/jackrabbit/mk/json/JsopTest.java

Modified: jackrabbit/oak/trunk/oak-mk/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-mk/pom.xml?rev=1344749&r1=1344748&r2=1344749&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-mk/pom.xml (original)
+++ jackrabbit/oak/trunk/oak-mk/pom.xml Thu May 31 14:38:16 2012
@@ -121,6 +121,14 @@
       <version>2.7.1</version>
       <optional>true</optional>
     </dependency>
+    
+    <!-- Findbugs annotations -->
+    <dependency>
+      <groupId>com.google.code.findbugs</groupId>
+      <artifactId>jsr305</artifactId>
+      <version>2.0.0</version>
+      <scope>provided</scope>
+    </dependency>
 
     <!--Test Dependencies-->
     <dependency>

Modified: jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/json/JsopReader.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/json/JsopReader.java?rev=1344749&r1=1344748&r2=1344749&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/json/JsopReader.java (original)
+++ jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/json/JsopReader.java Thu May 31 14:38:16 2012
@@ -16,6 +16,8 @@
  */
 package org.apache.jackrabbit.mk.json;
 
+import javax.annotation.CheckForNull;
+
 /**
  * A reader for Json and Jsop strings.
  */
@@ -24,7 +26,7 @@ public interface JsopReader {
     /**
      * The token type that signals the end of the stream.
      */
-    public static final int END = 0;
+    static final int END = 0;
 
     /**
      * The token type of a string value.
@@ -70,7 +72,7 @@ public interface JsopReader {
      * Read a token which must match a given token type.
      *
      * @param type the token type
-     * @return the token (a null object when reading a null value)
+     * @return the token (null when reading a null value)
      * @throws IllegalStateException if the token type doesn't match
      */
     String read(int type);
@@ -78,9 +80,10 @@ public interface JsopReader {
     /**
      * Read a string.
      *
-     * @return the de-escaped string
+     * @return the de-escaped string (null when reading a null value)
      * @throws IllegalStateException if the token type doesn't match
      */
+    @CheckForNull
     String readString();
 
     /**
@@ -98,6 +101,12 @@ public interface JsopReader {
      */
     boolean matches(int type);
 
+    /**
+     * Return the row (escaped) token.
+     *
+     * @return the escaped string (null when reading a null value)
+     */
+    @CheckForNull
     String readRawValue();
 
     /**
@@ -107,6 +116,7 @@ public interface JsopReader {
      *
      * @return the token
      */
+    @CheckForNull
     String getToken();
 
     /**

Modified: jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/json/JsopTokenizer.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/json/JsopTokenizer.java?rev=1344749&r1=1344748&r2=1344749&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/json/JsopTokenizer.java (original)
+++ jackrabbit/oak/trunk/oak-mk/src/main/java/org/apache/jackrabbit/mk/json/JsopTokenizer.java Thu May 31 14:38:16 2012
@@ -262,10 +262,13 @@ public class JsopTokenizer implements Js
                     }
                     String s = jsop.substring(start, pos);
                     if ("null".equals(s)) {
+                        currentToken = null;
                         return NULL;
                     } else if ("true".equals(s)) {
+                        currentToken = s;
                         return TRUE;
                     } else if ("false".equals(s)) {
+                        currentToken = s;
                         return FALSE;
                     } else {
                         currentToken = s;

Modified: jackrabbit/oak/trunk/oak-mk/src/test/java/org/apache/jackrabbit/mk/json/JsopTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-mk/src/test/java/org/apache/jackrabbit/mk/json/JsopTest.java?rev=1344749&r1=1344748&r2=1344749&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-mk/src/test/java/org/apache/jackrabbit/mk/json/JsopTest.java (original)
+++ jackrabbit/oak/trunk/oak-mk/src/test/java/org/apache/jackrabbit/mk/json/JsopTest.java Thu May 31 14:38:16 2012
@@ -63,8 +63,16 @@ public class JsopTest extends TestCase {
     }
 
     public void testNull() {
-        JsopTokenizer t = new JsopTokenizer("null");
+        JsopTokenizer t = new JsopTokenizer("null, 1, null, true, false");
         assertEquals(null, t.read(JsopReader.NULL));
+        assertEquals(",", t.read(','));
+        assertEquals("1", t.read(JsopReader.NUMBER));
+        assertEquals(",", t.read(','));
+        assertEquals(null, t.read(JsopReader.NULL));
+        assertEquals(",", t.read(','));
+        assertEquals("true", t.read(JsopReader.TRUE));
+        assertEquals(",", t.read(','));
+        assertEquals("false", t.read(JsopReader.FALSE));
     }
 
     public void testLineLength() {