From bd172c4abcc6e07f2326b4bfe5912da5cc0347af Mon Sep 17 00:00:00 2001
From: Marco Zanon <info@marcozanon.com>
Date: Wed, 1 Feb 2012 18:28:03 +0000
Subject: [PATCH] Paradigm shift: json Objects only accept json strings as
 constructors' arguments and return "jsonValue"(s) instead of
 "formattedValue"(s).

---
 .../marcozanon/macaco/json/MJsonArray.java    |  6 ++--
 .../marcozanon/macaco/json/MJsonBoolean.java  |  8 +++---
 .../com/marcozanon/macaco/json/MJsonNull.java | 12 ++------
 .../marcozanon/macaco/json/MJsonNumber.java   | 28 +++----------------
 .../marcozanon/macaco/json/MJsonObject.java   |  6 ++--
 .../marcozanon/macaco/json/MJsonString.java   |  4 +--
 .../marcozanon/macaco/json/MJsonValue.java    |  2 +-
 .../macaco/web/ui/MWebApplicationServlet.java |  8 +++---
 .../macaco/web/ui/MWebDownloader.java         |  2 +-
 .../marcozanon/macaco/web/ui/MWebMessage.java | 12 ++++----
 10 files changed, 31 insertions(+), 57 deletions(-)

diff --git a/src/java/com/marcozanon/macaco/json/MJsonArray.java b/src/java/com/marcozanon/macaco/json/MJsonArray.java
index 57aef0b..030d499 100644
--- a/src/java/com/marcozanon/macaco/json/MJsonArray.java
+++ b/src/java/com/marcozanon/macaco/json/MJsonArray.java
@@ -53,7 +53,7 @@ public class MJsonArray extends MJsonValue {
     public MJsonArray clone() {
         MJsonArray tmpMJsonArray = null;
         try {
-            tmpMJsonArray = new MJsonArray(this.getFormattedValue());
+            tmpMJsonArray = new MJsonArray(this.getJsonValue());
         }
         catch (MInvalidValueJsonException exception) { // cannot happen
         }
@@ -210,14 +210,14 @@ public class MJsonArray extends MJsonValue {
 
     /* Formatter */
 
-    public String getFormattedValue() {
+    public String getJsonValue() {
         StringBuilder s = new StringBuilder("");
         s.append("[");
         for (int i = 0; i < this.countValues(); i++) {
             if (i > 0) {
                 s.append(", ");
             }
-            s.append(this.getValuesReference().get(i).getFormattedValue());
+            s.append(this.getValuesReference().get(i).getJsonValue());
         }
         s.append("]");
         return s.toString();
diff --git a/src/java/com/marcozanon/macaco/json/MJsonBoolean.java b/src/java/com/marcozanon/macaco/json/MJsonBoolean.java
index eb9aa51..d02fa7d 100644
--- a/src/java/com/marcozanon/macaco/json/MJsonBoolean.java
+++ b/src/java/com/marcozanon/macaco/json/MJsonBoolean.java
@@ -31,8 +31,8 @@ public class MJsonBoolean extends MJsonValue {
 
     /* */
 
-    public MJsonBoolean(boolean x) throws MInvalidValueJsonException {
-        this((new Boolean(x)).toString());
+    public MJsonBoolean() throws MInvalidValueJsonException {
+        this("false");
     }
 
     public MJsonBoolean(String x) throws MInvalidValueJsonException {
@@ -44,7 +44,7 @@ public class MJsonBoolean extends MJsonValue {
     public MJsonBoolean clone() {
         MJsonBoolean tmpMJsonBoolean = null;
         try {
-            tmpMJsonBoolean = new MJsonBoolean(this.getFormattedValue());
+            tmpMJsonBoolean = new MJsonBoolean(this.getJsonValue());
         }
         catch (MInvalidValueJsonException exception) { // cannot happen
         }
@@ -94,7 +94,7 @@ public class MJsonBoolean extends MJsonValue {
 
     /* Formatter */
 
-    public String getFormattedValue() {
+    public String getJsonValue() {
         return this.getValue().toString();
     }
 
diff --git a/src/java/com/marcozanon/macaco/json/MJsonNull.java b/src/java/com/marcozanon/macaco/json/MJsonNull.java
index 162efdb..7d10b20 100644
--- a/src/java/com/marcozanon/macaco/json/MJsonNull.java
+++ b/src/java/com/marcozanon/macaco/json/MJsonNull.java
@@ -42,19 +42,13 @@ public class MJsonNull extends MJsonValue {
     public MJsonNull clone() {
         MJsonNull tmpMJsonNull = null;
         try {
-            tmpMJsonNull = new MJsonNull(this.getFormattedValue());
+            tmpMJsonNull = new MJsonNull(this.getJsonValue());
         }
         catch (MInvalidValueJsonException exception) { // cannot happen
         }
         return tmpMJsonNull;
     }
 
-    /* Value handler */
-
-    public String getValue() {
-        return "null";
-    }
-
     /* Parsers */
 
     protected static int getTokenLength(String x) {
@@ -80,8 +74,8 @@ public class MJsonNull extends MJsonValue {
 
     /* Formatter */
 
-    public String getFormattedValue() {
-        return this.getValue();
+    public String getJsonValue() {
+        return "null";
     }
 
 }
diff --git a/src/java/com/marcozanon/macaco/json/MJsonNumber.java b/src/java/com/marcozanon/macaco/json/MJsonNumber.java
index f4a49f5..d4d2302 100644
--- a/src/java/com/marcozanon/macaco/json/MJsonNumber.java
+++ b/src/java/com/marcozanon/macaco/json/MJsonNumber.java
@@ -33,28 +33,8 @@ public class MJsonNumber extends MJsonValue {
 
     /* */
 
-    public MJsonNumber(byte x) throws MInvalidValueJsonException {
-        this((new Byte(x)).toString());
-    }
-
-    public MJsonNumber(double x) throws MInvalidValueJsonException {
-        this((new Double(x)).toString());
-    }
-
-    public MJsonNumber(float x) throws MInvalidValueJsonException {
-        this((new Float(x)).toString());
-    }
-
-    public MJsonNumber(int x) throws MInvalidValueJsonException {
-        this((new Integer(x)).toString());
-    }
-
-    public MJsonNumber(long x) throws MInvalidValueJsonException {
-        this((new Long(x)).toString());
-    }
-
-    public MJsonNumber(short x) throws MInvalidValueJsonException {
-        this((new Short(x)).toString());
+    public MJsonNumber() throws MInvalidValueJsonException {
+        this("0");
     }
 
     public MJsonNumber(String x) throws MInvalidValueJsonException {
@@ -66,7 +46,7 @@ public class MJsonNumber extends MJsonValue {
     public MJsonNumber clone() {
         MJsonNumber tmpMJsonNumber = null;
         try {
-            tmpMJsonNumber = new MJsonNumber(this.getFormattedValue());
+            tmpMJsonNumber = new MJsonNumber(this.getJsonValue());
         }
         catch (MInvalidValueJsonException exception) { // cannot happen
         }
@@ -139,7 +119,7 @@ public class MJsonNumber extends MJsonValue {
 
     /* Formatter */
 
-    public String getFormattedValue() {
+    public String getJsonValue() {
         return this.getValueReference().toString();
     }
 
diff --git a/src/java/com/marcozanon/macaco/json/MJsonObject.java b/src/java/com/marcozanon/macaco/json/MJsonObject.java
index 439e320..b52af60 100644
--- a/src/java/com/marcozanon/macaco/json/MJsonObject.java
+++ b/src/java/com/marcozanon/macaco/json/MJsonObject.java
@@ -56,7 +56,7 @@ public class MJsonObject extends MJsonValue {
     public MJsonObject clone() {
         MJsonObject tmpMJsonObject = null;
         try {
-            tmpMJsonObject = new MJsonObject(this.getFormattedValue());
+            tmpMJsonObject = new MJsonObject(this.getJsonValue());
         }
         catch (MInvalidValueJsonException exception) { // cannot happen
         }
@@ -260,7 +260,7 @@ public class MJsonObject extends MJsonValue {
 
     /* Formatter */
 
-    public String getFormattedValue() {
+    public String getJsonValue() {
         StringBuilder s = new StringBuilder("");
         s.append("{");
         int k = 0;
@@ -270,7 +270,7 @@ public class MJsonObject extends MJsonValue {
             }
             s.append("\"" + MJsonString.getEscapedString(key, false) + "\"");
             s.append(": ");
-            s.append(this.getValuesReference().get(key).getFormattedValue());
+            s.append(this.getValuesReference().get(key).getJsonValue());
             k++;
         }
         s.append("}");
diff --git a/src/java/com/marcozanon/macaco/json/MJsonString.java b/src/java/com/marcozanon/macaco/json/MJsonString.java
index 1071267..99762e8 100644
--- a/src/java/com/marcozanon/macaco/json/MJsonString.java
+++ b/src/java/com/marcozanon/macaco/json/MJsonString.java
@@ -51,7 +51,7 @@ public class MJsonString extends MJsonValue {
     public MJsonString clone() {
         MJsonString tmpMJsonString = null;
         try {
-            tmpMJsonString = new MJsonString(this.getFormattedValue());
+            tmpMJsonString = new MJsonString(this.getJsonValue());
         }
         catch (MInvalidValueJsonException exception) { // cannot happen
         }
@@ -302,7 +302,7 @@ public class MJsonString extends MJsonValue {
 
     /* Formatter */
 
-    public String getFormattedValue() {
+    public String getJsonValue() {
         return "\"" + MJsonString.getEscapedString(this.getValue(), this.getExtendedEscapeMode()) + "\"";
     }
 
diff --git a/src/java/com/marcozanon/macaco/json/MJsonValue.java b/src/java/com/marcozanon/macaco/json/MJsonValue.java
index f2ed685..5823304 100644
--- a/src/java/com/marcozanon/macaco/json/MJsonValue.java
+++ b/src/java/com/marcozanon/macaco/json/MJsonValue.java
@@ -57,6 +57,6 @@ public abstract class MJsonValue extends MObject {
 
     /* Formatter */
 
-    public abstract String getFormattedValue();
+    public abstract String getJsonValue();
 
 }
diff --git a/src/java/com/marcozanon/macaco/web/ui/MWebApplicationServlet.java b/src/java/com/marcozanon/macaco/web/ui/MWebApplicationServlet.java
index 9aeef9b..c04a63c 100644
--- a/src/java/com/marcozanon/macaco/web/ui/MWebApplicationServlet.java
+++ b/src/java/com/marcozanon/macaco/web/ui/MWebApplicationServlet.java
@@ -204,14 +204,14 @@ public abstract class MWebApplicationServlet extends MHttpServlet {
             MJsonObject returnValue = null;
             try {
                 returnValue = new MJsonObject();
-                returnValue.setValue("errorMode", new MJsonNumber(MWebApplicationServlet.ErrorMode.CLEAN.ordinal()));
+                returnValue.setValue("errorMode", new MJsonNumber("" + MWebApplicationServlet.ErrorMode.CLEAN.ordinal()));
                 MJsonString jsonParameter = new MJsonString();
                 jsonParameter.setValue(new String(content, MInformation.TEXT_ENCODING));
                 returnValue.setValue("parameter", jsonParameter);
             }
             catch (MInvalidValueJsonException exception) { // cannot happen
             }
-            responseContent = returnValue.getFormattedValue().getBytes(MInformation.TEXT_ENCODING);
+            responseContent = returnValue.getJsonValue().getBytes(MInformation.TEXT_ENCODING);
         }
         else {
             responseContent = content;
@@ -244,7 +244,7 @@ public abstract class MWebApplicationServlet extends MHttpServlet {
                     MJsonObject returnValue = null;
                     try {
                         returnValue = new MJsonObject();
-                        returnValue.setValue("errorMode", new MJsonNumber(errorMode.ordinal()));
+                        returnValue.setValue("errorMode", new MJsonNumber("" + errorMode.ordinal()));
                         MJsonString jsonParameter = new MJsonString();
                         if (null != content.getMessage()) {
                             jsonParameter.setValue(content.getClass().getName() + ": " + content.getMessage());
@@ -256,7 +256,7 @@ public abstract class MWebApplicationServlet extends MHttpServlet {
                     }
                     catch (MInvalidValueJsonException exception) { // should not happen
                     }
-                    responseContent = returnValue.getFormattedValue().getBytes(MInformation.TEXT_ENCODING);
+                    responseContent = returnValue.getJsonValue().getBytes(MInformation.TEXT_ENCODING);
                 }
                 else {
                     if (null != content.getMessage()) {
diff --git a/src/java/com/marcozanon/macaco/web/ui/MWebDownloader.java b/src/java/com/marcozanon/macaco/web/ui/MWebDownloader.java
index 5e26931..52ea501 100644
--- a/src/java/com/marcozanon/macaco/web/ui/MWebDownloader.java
+++ b/src/java/com/marcozanon/macaco/web/ui/MWebDownloader.java
@@ -53,7 +53,7 @@ public class MWebDownloader extends MWebWidget {
         //
         MWebBrowserPage browserPage = this.getViewReference().getBrowserPageReference();
         String destinationUrl = this.getApplicationContextReference().getRequestReference().getRequestURL().toString();
-        String parameters = "securityId=" + browserPage.getSecurityId() + "&message=" + downloadMessage.getFormattedValue();
+        String parameters = "securityId=" + browserPage.getSecurityId() + "&message=" + downloadMessage.getJsonValue();
         //
         this.getApplicationContextReference().addPlainTextResponseContent(String.format("$('m_downloader').src = '%s?%s';", destinationUrl, parameters));
     }
diff --git a/src/java/com/marcozanon/macaco/web/ui/MWebMessage.java b/src/java/com/marcozanon/macaco/web/ui/MWebMessage.java
index 7949d9a..7ad9bf7 100644
--- a/src/java/com/marcozanon/macaco/web/ui/MWebMessage.java
+++ b/src/java/com/marcozanon/macaco/web/ui/MWebMessage.java
@@ -96,25 +96,25 @@ public class MWebMessage extends MObject {
     public MWebMessage clone() {
         try {
             MJsonString tmpString = null;
-            MJsonObject tmpMessage = new MJsonObject("{}");
+            MJsonObject tmpMessage = new MJsonObject();
             //
-            tmpString = new MJsonString("\"\"");
+            tmpString = new MJsonString();
             tmpString.setValue(this.getWidgetId());
             tmpMessage.setValue("widgetId", tmpString);
             //
-            tmpString = new MJsonString("\"\"");
+            tmpString = new MJsonString();
             tmpString.setValue(this.getEvent());
             tmpMessage.setValue("event", tmpString);
             //
-            MJsonObject tmpMessageParameters = new MJsonObject("{}");
+            MJsonObject tmpMessageParameters = new MJsonObject();
             for (String parameterKey: this.getParametersReference().keySet()) {
-                tmpString = new MJsonString("\"\"");
+                tmpString = new MJsonString();
                 tmpString.setValue(this.getParameters().get(parameterKey));
                 tmpMessageParameters.setValue(parameterKey, tmpString);
             }
             tmpMessage.setValue("parameters", tmpMessageParameters);
             //
-            return new MWebMessage(tmpMessage.getFormattedValue());
+            return new MWebMessage(tmpMessage.getJsonValue());
         }
         catch (MInvalidValueJsonException exception) { // cannot happen
             return null; // necessary to avoid Java compilation errors
-- 
2.30.2