Ejemplo n.º 1
0
 /**
  * Get the enum value associated with a key.
  *
  * @param clazz The type of enum to retrieve.
  * @param index The index must be between 0 and length() - 1.
  * @param defaultValue The default in case the value is not found
  * @return The enum value at the index location or defaultValue if the value is not found or
  *     cannot be assigned to clazz
  */
 public <E extends Enum<E>> E optEnum(Class<E> clazz, int index, E defaultValue) {
   try {
     Object val = this.opt(index);
     if (JSONObject.NULL.equals(val)) {
       return defaultValue;
     }
     if (clazz.isAssignableFrom(val.getClass())) {
       // we just checked it!
       @SuppressWarnings("unchecked")
       E myE = (E) val;
       return myE;
     }
     return Enum.valueOf(clazz, val.toString());
   } catch (IllegalArgumentException | NullPointerException e) {
     return defaultValue;
   }
 }
Ejemplo n.º 2
0
  /**
   * Wrap an object, if necessary. If the object is null, return the NULL object. If it is an array
   * or collection, wrap it in a JSONArray. If it is a map, wrap it in a JSONObject. If it is a
   * standard property (Double, String, et al) then it is already wrapped. Otherwise, if it comes
   * from one of the java packages, turn it into a string. And if it doesn't, try to wrap it in a
   * JSONObject. If the wrapping fails, then null is returned.
   *
   * @param object The object to wrap
   * @return The wrapped value
   */
  public static Object wrap(Object object) {
    try {
      if (object == null) {
        return JSONObject.NULL;
      }
      if ((object instanceof JSONObject)
          || (object instanceof JSONArray)
          || JSONObject.NULL.equals(object)
          || (object instanceof JSONString)
          || (object instanceof Byte)
          || (object instanceof Character)
          || (object instanceof Short)
          || (object instanceof Integer)
          || (object instanceof Long)
          || (object instanceof Boolean)
          || (object instanceof Float)
          || (object instanceof Double)
          || (object instanceof String)) {
        return object;
      }

      if (object instanceof Collection) {
        return new JSONArray((Collection) object);
      }
      if (object.getClass().isArray()) {
        return new JSONArray(object);
      }
      if (object instanceof Map) {
        return new JSONObject((Map) object);
      }
      final Package objectPackage = object.getClass().getPackage();
      final String objectPackageName = (objectPackage != null ? objectPackage.getName() : "");
      if (objectPackageName.startsWith("java.")
          || objectPackageName.startsWith("javax.")
          || (object.getClass().getClassLoader() == null)) {
        return object.toString();
      }
      return new JSONObject(object);
    } catch (final Exception exception) {
      return null;
    }
  }
Ejemplo n.º 3
0
 /**
  * Determine if the value associated with the key is null or if there is no value.
  *
  * @param key A key string.
  * @return true if there is no value associated with the key or if the value is the
  *     JSONObject.NULL object.
  */
 public boolean isNull(String key) {
   return JSONObject.NULL.equals(opt(key));
 }
Ejemplo n.º 4
0
 /**
  * Get the optional string associated with an index. The defaultValue is returned if the key is
  * not found.
  *
  * @param index The index must be between 0 and length() - 1.
  * @param defaultValue The default value.
  * @return A String value.
  */
 public String optString(int index, String defaultValue) {
   Object object = this.opt(index);
   return JSONObject.NULL.equals(object) ? defaultValue : object.toString();
 }
Ejemplo n.º 5
0
 /**
  * Determine if the value is null.
  *
  * @param index The index must be between 0 and length() - 1.
  * @return true if the value at the index is null, or if there is no value.
  */
 public boolean isNull(int index) {
   return JSONObject.NULL.equals(this.opt(index));
 }
Ejemplo n.º 6
0
 /**
  * Get an optional string associated with a key. It returns the defaultValue if there is no such
  * key.
  *
  * @param key A key string.
  * @param defaultValue The default.
  * @return A string which is the value.
  */
 public String optString(String key, String defaultValue) {
   final Object object = this.opt(key);
   return JSONObject.NULL.equals(object) ? defaultValue : object.toString();
 }
Ejemplo n.º 7
0
 /**
  * Determine if the value is null.
  *
  * @param index The index must be between 0 and length() - 1.
  * @return true if the value at the index is null, or if there is no value.
  */
 public boolean isNull(final int index) {
   return JSONObject.NULL.equals(opt(index));
 }
Ejemplo n.º 8
0
 public boolean isNull(int paramInt) {
   return JSONObject.NULL.equals(opt(paramInt));
 }