From 45a7decba4f2d606bf6df9028a11dc7955079f01 Mon Sep 17 00:00:00 2001 From: Sean Leary Date: Tue, 9 Aug 2016 14:22:06 -0500 Subject: [PATCH] Revert "reduces the use of unnecessary exceptions" --- JSONArray.java | 107 +++++++++++------------------------------------ JSONObject.java | 109 ++++++++++++------------------------------------ 2 files changed, 52 insertions(+), 164 deletions(-) diff --git a/JSONArray.java b/JSONArray.java index 8ac58441b..776a2bd05 100644 --- a/JSONArray.java +++ b/JSONArray.java @@ -78,7 +78,7 @@ of this software and associated documentation files (the "Software"), to deal * * * @author JSON.org - * @version 2016-07-19 + * @version 2016-05-20 */ public class JSONArray implements Iterable { @@ -156,9 +156,9 @@ public JSONArray(String source) throws JSONException { public JSONArray(Collection collection) { this.myArrayList = new ArrayList(); if (collection != null) { - for (Object o : collection) { - this.myArrayList.add(JSONObject.wrap(o)); - } + for (Object o: collection){ + this.myArrayList.add(JSONObject.wrap(o)); + } } } @@ -241,15 +241,11 @@ public boolean getBoolean(int index) throws JSONException { public double getDouble(int index) throws JSONException { Object object = this.get(index); try { - if (object instanceof Number) { - return ((Number) object).doubleValue(); - } else if (object instanceof String) { - return Double.parseDouble((String) object); - } + return object instanceof Number ? ((Number) object).doubleValue() + : Double.parseDouble((String) object); } catch (Exception e) { - + throw new JSONException("JSONArray[" + index + "] is not a number."); } - throw new JSONException("JSONArray[" + index + "] is not a number."); } /** @@ -329,15 +325,11 @@ public BigInteger getBigInteger (int index) throws JSONException { public int getInt(int index) throws JSONException { Object object = this.get(index); try { - if (object instanceof Number) { - return ((Number) object).intValue(); - } else if (object instanceof String) { - return Integer.parseInt((String) object); - } + return object instanceof Number ? ((Number) object).intValue() + : Integer.parseInt((String) object); } catch (Exception e) { - + throw new JSONException("JSONArray[" + index + "] is not a number."); } - throw new JSONException("JSONArray[" + index + "] is not a number."); } /** @@ -389,15 +381,11 @@ public JSONObject getJSONObject(int index) throws JSONException { public long getLong(int index) throws JSONException { Object object = this.get(index); try { - if (object instanceof Number) { - return ((Number) object).longValue(); - } else if (object instanceof String) { - return Long.parseLong((String) object); - } + return object instanceof Number ? ((Number) object).longValue() + : Long.parseLong((String) object); } catch (Exception e) { - + throw new JSONException("JSONArray[" + index + "] is not a number."); } - throw new JSONException("JSONArray[" + index + "] is not a number."); } /** @@ -498,20 +486,11 @@ public boolean optBoolean(int index) { * @return The truth. */ public boolean optBoolean(int index, boolean defaultValue) { - Object object = this.opt(index); - if (JSONObject.NULL.equals(object)) { + try { + return this.getBoolean(index); + } catch (Exception e) { return defaultValue; } - if (object.equals(Boolean.FALSE) - || (object instanceof String && ((String) object) - .equalsIgnoreCase("false"))) { - return false; - } else if (object.equals(Boolean.TRUE) - || (object instanceof String && ((String) object) - .equalsIgnoreCase("true"))) { - return true; - } - return defaultValue; } /** @@ -539,20 +518,11 @@ public double optDouble(int index) { * @return The value. */ public double optDouble(int index, double defaultValue) { - Object object = this.opt(index); - if (JSONObject.NULL.equals(object)) { - return defaultValue; - } try { - if (object instanceof Number) { - return ((Number) object).doubleValue(); - } else if (object instanceof String) { - return Double.parseDouble((String) object); - } + return this.getDouble(index); } catch (Exception e) { - + return defaultValue; } - return defaultValue; } /** @@ -580,20 +550,11 @@ public int optInt(int index) { * @return The value. */ public int optInt(int index, int defaultValue) { - Object object = this.opt(index); - if (JSONObject.NULL.equals(object)) { - return defaultValue; - } try { - if (object instanceof Number) { - return ((Number) object).intValue(); - } else if (object instanceof String) { - return Integer.parseInt((String) object); - } + return this.getInt(index); } catch (Exception e) { - + return defaultValue; } - return defaultValue; } /** @@ -654,12 +615,8 @@ public > E optEnum(Class clazz, int index, E defaultValue) * @return The value. */ public BigInteger optBigInteger(int index, BigInteger defaultValue) { - Object object = this.opt(index); - if (JSONObject.NULL.equals(object)) { - return defaultValue; - } try { - return new BigInteger(object.toString()); + return this.getBigInteger(index); } catch (Exception e) { return defaultValue; } @@ -677,12 +634,8 @@ public BigInteger optBigInteger(int index, BigInteger defaultValue) { * @return The value. */ public BigDecimal optBigDecimal(int index, BigDecimal defaultValue) { - Object object = this.opt(index); - if (JSONObject.NULL.equals(object)) { - return defaultValue; - } try { - return new BigDecimal(object.toString()); + return this.getBigDecimal(index); } catch (Exception e) { return defaultValue; } @@ -740,20 +693,11 @@ public long optLong(int index) { * @return The value. */ public long optLong(int index, long defaultValue) { - Object object = this.opt(index); - if (JSONObject.NULL.equals(object)) { - return defaultValue; - } try { - if (object instanceof Number) { - return ((Number) object).longValue(); - } else if (object instanceof String) { - return Long.parseLong((String) object); - } + return this.getLong(index); } catch (Exception e) { - + return defaultValue; } - return defaultValue; } /** @@ -1017,7 +961,7 @@ public JSONArray put(int index, Object value) throws JSONException { } /** - * Creates a JSONPointer using an initialization string and tries to + * Creates a JSONPointer using an intialization string and tries to * match it to an item within this JSONArray. For example, given a * JSONArray initialized with this document: *
@@ -1137,7 +1081,6 @@ public JSONObject toJSONObject(JSONArray names) throws JSONException {
      * @return a printable, displayable, transmittable representation of the
      *         array.
      */
-    @Override
     public String toString() {
         try {
             return this.toString(0);
diff --git a/JSONObject.java b/JSONObject.java
index 8fb0a2569..aa227ff09 100644
--- a/JSONObject.java
+++ b/JSONObject.java
@@ -93,7 +93,7 @@ of this software and associated documentation files (the "Software"), to deal
  * 
  *
  * @author JSON.org
- * @version 2016-07-19
+ * @version 2016-05-20
  */
 public class JSONObject {
     /**
@@ -132,7 +132,6 @@ public boolean equals(Object object) {
          *
          * @return The string "null".
          */
-        @Override
         public String toString() {
             return "null";
         }
@@ -243,7 +242,7 @@ public JSONObject(JSONTokener x) throws JSONException {
     public JSONObject(Map map) {
         this.map = new HashMap();
         if (map != null) {
-            for (final Entry e : map.entrySet()) {
+        	for (final Entry e : map.entrySet()) {
                 final Object value = e.getValue();
                 if (value != null) {
                     this.map.put(String.valueOf(e.getKey()), wrap(value));
@@ -577,15 +576,12 @@ public BigDecimal getBigDecimal(String key) throws JSONException {
     public double getDouble(String key) throws JSONException {
         Object object = this.get(key);
         try {
-            if (object instanceof Number) {
-                return ((Number) object).doubleValue();
-            } else if (object instanceof String) {
-                return Double.parseDouble((String) object);
-            }
+            return object instanceof Number ? ((Number) object).doubleValue()
+                    : Double.parseDouble((String) object);
         } catch (Exception e) {
+            throw new JSONException("JSONObject[" + quote(key)
+                    + "] is not a number.");
         }
-        throw new JSONException("JSONObject[" + quote(key)
-                + "] is not a number.");
     }
 
     /**
@@ -601,15 +597,12 @@ public double getDouble(String key) throws JSONException {
     public int getInt(String key) throws JSONException {
         Object object = this.get(key);
         try {
-            if (object instanceof Number) {
-                return ((Number) object).intValue();
-            } else if (object instanceof String) {
-                return Integer.parseInt((String) object);
-            }
+            return object instanceof Number ? ((Number) object).intValue()
+                    : Integer.parseInt((String) object);
         } catch (Exception e) {
-
+            throw new JSONException("JSONObject[" + quote(key)
+                    + "] is not an int.");
         }
-        throw new JSONException("JSONObject[" + quote(key) + "] is not an int.");
     }
 
     /**
@@ -661,15 +654,12 @@ public JSONObject getJSONObject(String key) throws JSONException {
     public long getLong(String key) throws JSONException {
         Object object = this.get(key);
         try {
-            if (object instanceof Number) {
-                return ((Number) object).longValue();
-            } else if (object instanceof String) {
-                return Long.parseLong((String) object);
-            }
+            return object instanceof Number ? ((Number) object).longValue()
+                    : Long.parseLong((String) object);
         } catch (Exception e) {
-
+            throw new JSONException("JSONObject[" + quote(key)
+                    + "] is not a long.");
         }
-        throw new JSONException("JSONObject[" + quote(key) + "] is not a long.");
     }
 
     /**
@@ -942,20 +932,11 @@ public boolean optBoolean(String key) {
      * @return The truth.
      */
     public boolean optBoolean(String key, boolean defaultValue) {
-        Object object = this.get(key);
-        if (NULL.equals(object)) {
+        try {
+            return this.getBoolean(key);
+        } catch (Exception e) {
             return defaultValue;
         }
-        if (object.equals(Boolean.FALSE)
-                || (object instanceof String && ((String) object)
-                        .equalsIgnoreCase("false"))) {
-            return false;
-        } else if (object.equals(Boolean.TRUE)
-                || (object instanceof String && ((String) object)
-                        .equalsIgnoreCase("true"))) {
-            return true;
-        }
-        return defaultValue;
     }
 
     /**
@@ -983,12 +964,8 @@ public double optDouble(String key) {
      * @return An object which is the value.
      */
     public BigInteger optBigInteger(String key, BigInteger defaultValue) {
-        Object object = this.get(key);
-        if (NULL.equals(object)) {
-            return defaultValue;
-        }
         try {
-            return new BigInteger(object.toString());
+            return this.getBigInteger(key);
         } catch (Exception e) {
             return defaultValue;
         }
@@ -1006,12 +983,8 @@ public BigInteger optBigInteger(String key, BigInteger defaultValue) {
      * @return An object which is the value.
      */
     public BigDecimal optBigDecimal(String key, BigDecimal defaultValue) {
-        Object object = this.opt(key);
-        if (NULL.equals(object)) {
-            return defaultValue;
-        }
         try {
-            return new BigDecimal(object.toString());
+            return this.getBigDecimal(key);
         } catch (Exception e) {
             return defaultValue;
         }
@@ -1029,20 +1002,11 @@ public BigDecimal optBigDecimal(String key, BigDecimal defaultValue) {
      * @return An object which is the value.
      */
     public double optDouble(String key, double defaultValue) {
-        Object object = this.get(key);
-        if (NULL.equals(object)) {
-            return defaultValue;
-        }
         try {
-            if (object instanceof Number) {
-                return ((Number) object).doubleValue();
-            } else if (object instanceof String) {
-                return Double.parseDouble((String) object);
-            }
+            return this.getDouble(key);
         } catch (Exception e) {
-
+            return defaultValue;
         }
-        return defaultValue;
     }
 
     /**
@@ -1070,20 +1034,11 @@ public int optInt(String key) {
      * @return An object which is the value.
      */
     public int optInt(String key, int defaultValue) {
-        Object object = this.get(key);
-        if (NULL.equals(object)) {
-            return defaultValue;
-        }
         try {
-            if (object instanceof Number) {
-                return ((Number) object).intValue();
-            } else if (object instanceof String) {
-                return Integer.parseInt((String) object);
-            }
+            return this.getInt(key);
         } catch (Exception e) {
-
+            return defaultValue;
         }
-        return defaultValue;
     }
 
     /**
@@ -1137,20 +1092,11 @@ public long optLong(String key) {
      * @return An object which is the value.
      */
     public long optLong(String key, long defaultValue) {
-        Object object = this.get(key);
-        if (NULL.equals(object)) {
-            return defaultValue;
-        }
         try {
-            if (object instanceof Number) {
-                return ((Number) object).longValue();
-            } else if (object instanceof String) {
-                return Long.parseLong((String) object);
-            }
+            return this.getLong(key);
         } catch (Exception e) {
-
+            return defaultValue;
         }
-        return defaultValue;
     }
 
     /**
@@ -1675,7 +1621,6 @@ public JSONArray toJSONArray(JSONArray names) throws JSONException {
      *         brace) and ending with } (right
      *         brace).
      */
-    @Override
     public String toString() {
         try {
             return this.toString(0);
@@ -1935,13 +1880,13 @@ public Writer write(Writer writer, int indentFactor, int indent)
     }
 
     /**
-     * Returns a java.util.Map containing all of the entries in this object.
+     * Returns a java.util.Map containing all of the entrys in this object.
      * If an entry in the object is a JSONArray or JSONObject it will also
      * be converted.
      * 

* Warning: This method assumes that the data structure is acyclical. * - * @return a java.util.Map containing the entries of this object + * @return a java.util.Map containing the entrys of this object */ public Map toMap() { Map results = new HashMap();