Return-Path: X-Original-To: apmail-jackrabbit-commits-archive@www.apache.org Delivered-To: apmail-jackrabbit-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id BC6164C14 for ; Fri, 10 Jun 2011 13:46:58 +0000 (UTC) Received: (qmail 74899 invoked by uid 500); 10 Jun 2011 13:46:58 -0000 Delivered-To: apmail-jackrabbit-commits-archive@jackrabbit.apache.org Received: (qmail 74872 invoked by uid 500); 10 Jun 2011 13:46:58 -0000 Mailing-List: contact commits-help@jackrabbit.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@jackrabbit.apache.org Delivered-To: mailing list commits@jackrabbit.apache.org Received: (qmail 74858 invoked by uid 99); 10 Jun 2011 13:46:58 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 10 Jun 2011 13:46:58 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 10 Jun 2011 13:46:55 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id DA1D12388994; Fri, 10 Jun 2011 13:46:33 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1134325 - in /jackrabbit/sandbox/microkernel/src: main/java/org/apache/jackrabbit/mk/ main/java/org/apache/jackrabbit/mk/json/ main/java/org/apache/jackrabbit/mk/mem/ test/java/org/apache/jackrabbit/mk/json/ Date: Fri, 10 Jun 2011 13:46:33 -0000 To: commits@jackrabbit.apache.org From: thomasm@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20110610134633.DA1D12388994@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: thomasm Date: Fri Jun 10 13:46:33 2011 New Revision: 1134325 URL: http://svn.apache.org/viewvc?rev=1134325&view=rev Log: JsopBuilder: use the same method names as JSONWriter / JSONStringer. Modified: jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/MicroKernelImpl.java jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/json/JsopBuilder.java jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/mem/NodeImpl.java jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/mem/Val.java jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/json/JsopTest.java Modified: jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/MicroKernelImpl.java URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/MicroKernelImpl.java?rev=1134325&r1=1134324&r2=1134325&view=diff ============================================================================== --- jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/MicroKernelImpl.java (original) +++ jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/MicroKernelImpl.java Fri Jun 10 13:46:33 2011 @@ -457,16 +457,14 @@ public class MicroKernelImpl implements static class JSONObject extends LinkedHashMap{}; static class JSONArray extends LinkedList { public String toString() { - JsopBuilder buff = new JsopBuilder(); - buff.arrayBegin(); + JsopBuilder buff = new JsopBuilder().array(); for (Object o : this) { if (o instanceof String) { o = JsopBuilder.encode(o.toString()); } buff.value(o.toString()); } - buff.arrayEnd(); - return buff.toString(); + return buff.endArray().toString(); } } } Modified: jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/json/JsopBuilder.java URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/json/JsopBuilder.java?rev=1134325&r1=1134324&r2=1134325&view=diff ============================================================================== --- jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/json/JsopBuilder.java (original) +++ jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/json/JsopBuilder.java Fri Jun 10 13:46:33 2011 @@ -20,27 +20,45 @@ import org.apache.jackrabbit.mk.mem.Cons /** * A builder for Json and Jsop strings. It encodes string values, and knows when - * a comma is needed. + * a comma is needed. A comma is appended before '{', '[', a value, or a key; + * but only if the last appended token was '}', ']', or a value. There is no + * limit to the number of nesting levels. */ public class JsopBuilder { private StringBuilder buff = new StringBuilder(); private boolean needComma; - public JsopBuilder append(String token) { - buff.append(token); + /** + * Append an already formatted string, comment, or whitespace. + * + * @param string the string to append + * @return this + */ + public JsopBuilder append(String string) { + buff.append(string); needComma = false; return this; } - public JsopBuilder objectBegin() { + /** + * Append '{'. A comma is appended first if needed. + * + * @return this + */ + public JsopBuilder object() { optionalComma(); buff.append('{'); needComma = false; return this; } - public JsopBuilder objectEnd() { + /** + * Append '}'. + * + * @return this + */ + public JsopBuilder endObject() { if (Constants.JSON_NEWLINES) { buff.append("\n}"); } else { @@ -50,44 +68,86 @@ public class JsopBuilder { return this; } - public JsopBuilder arrayBegin() { + /** + * Append '['. A comma is appended first if needed. + * + * @return this + */ + public JsopBuilder array() { optionalComma(); buff.append('['); needComma = false; return this; } - public JsopBuilder arrayEnd() { + /** + * Append ']'. + * + * @return this + */ + public JsopBuilder endArray() { buff.append("]"); needComma = true; return this; } - public JsopBuilder key(String propertyName) { + /** + * Append the key (in quotes) plus a colon. A comma is appended first if + * needed. + * + * @param name the key + * @return this + */ + public JsopBuilder key(String name) { optionalComma(); if (Constants.JSON_NEWLINES) { buff.append('\n'); } - buff.append(encode(propertyName)).append(':'); + buff.append(encode(name)).append(':'); needComma = false; return this; } + /** + * Append a number. A comma is appended first if needed. + * + * @param value the value + * @return this + */ public JsopBuilder value(long value) { return encodedValue(Long.toString(value)); } + /** + * Append the boolean value 'true' or 'false'. A comma is appended first if + * needed. + * + * @param value the value + * @return this + */ public JsopBuilder value(boolean value) { return encodedValue(Boolean.toString(value)); } + /** + * Append a string or null. A comma is appended first if needed. + * + * @param value the value + * @return this + */ public JsopBuilder value(String value) { return encodedValue(encode(value)); } - public JsopBuilder encodedValue(String encodedValue) { + /** + * Append an already encoded value. A comma is appended first if needed. + * + * @param value the value + * @return this + */ + public JsopBuilder encodedValue(String value) { optionalComma(); - buff.append(encodedValue); + buff.append(value); needComma = true; return this; } @@ -98,6 +158,9 @@ public class JsopBuilder { } } + /** + * Get the generated string. + */ public String toString() { return buff.toString(); } Modified: jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/mem/NodeImpl.java URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/mem/NodeImpl.java?rev=1134325&r1=1134324&r2=1134325&view=diff ============================================================================== --- jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/mem/NodeImpl.java (original) +++ jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/mem/NodeImpl.java Fri Jun 10 13:46:33 2011 @@ -147,7 +147,7 @@ public class NodeImpl { public String toString(boolean includeProperties, int depth, int childOffset, int childCount) { JsopBuilder json = new JsopBuilder(); if (includeProperties) { - json.objectBegin(); + json.object(); if (properties != null) { for (Entry e : properties.entrySet()) { json.key(e.getKey()).encodedValue(e.getValue().toString()); @@ -167,7 +167,7 @@ public class NodeImpl { } } if (includeProperties) { - json.objectEnd(); + json.endObject(); } return json.toString(); } Modified: jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/mem/Val.java URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/mem/Val.java?rev=1134325&r1=1134324&r2=1134325&view=diff ============================================================================== --- jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/mem/Val.java (original) +++ jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/mem/Val.java Fri Jun 10 13:46:33 2011 @@ -294,14 +294,14 @@ public class Val implements Comparable