/* * */ package org.smartly.commons.io.serialization.json.utils; import org.json.JSONException; import org.json.JSONObject; import org.smartly.commons.util.ExceptionUtils; import org.smartly.commons.util.StringUtils; import java.util.Date; /** * @author angelo.geminiani */ public class JsonBeanUtils { public static final String TAG_VALUE = "jvalue"; public static final String TAG_CLASS = "jclass"; public static final String TAG_TYPE = "jtype"; public static final String TAG_MESSAGE = "jmessage"; public static final String TAG_CAUSE = "jcause"; // public static final String TYPE_OBJECT = "object"; public static final String TYPE_ERROR = "error"; public static String notEmpty(final Object value) { return StringUtils.notEmpty(value); } public static JSONObject addError(final JSONObject json, final Throwable t) { try { if (null != json && null != t) { json.put(TAG_TYPE, TYPE_ERROR); json.put(TAG_CLASS, t.getClass().getName()); json.put(TAG_VALUE, notEmpty(t.toString())); json.put(TAG_MESSAGE, notEmpty(ExceptionUtils.getMessage(t))); json.put(TAG_CAUSE, notEmpty(ExceptionUtils.getRealMessage(t))); } } catch (Throwable ex) { } return json; } public static JSONObject addObject(final JSONObject json, final String tagClass, final Object serialized) { try { if (null != json) { json.put(JsonBeanUtils.TAG_CLASS, notEmpty(tagClass)); json.put(JsonBeanUtils.TAG_TYPE, JsonBeanUtils.TYPE_OBJECT); json.put(JsonBeanUtils.TAG_VALUE, notEmpty(serialized)); json.put(JsonBeanUtils.TAG_MESSAGE, notEmpty("")); json.put(JsonBeanUtils.TAG_CAUSE, notEmpty("")); } } catch (Throwable ex) { } return json; } public static void putValues(final JSONObject json, final String tagType, final String tagClass, final String tagValue, final String tagMessage, final String tagCause) { if (null != json) { try { json.put(TAG_TYPE, notEmpty(tagType)); } catch (JSONException ex) { } try { json.put(TAG_CLASS, notEmpty(tagClass)); } catch (JSONException ex) { } try { json.put(TAG_VALUE, notEmpty(tagValue)); } catch (JSONException ex) { } try { json.put(TAG_MESSAGE, notEmpty(tagMessage)); } catch (JSONException ex) { } try { json.put(TAG_CAUSE, notEmpty(tagCause)); } catch (JSONException ex) { } } } public static boolean isNative(final Object object) { return null != object ? isNative(object.getClass().getName()) : false; } public static boolean isNative(final String className) { return className.equals(String.class.getName()) || className.equals(Boolean.class.getName()) || className.equals(Character.class.getName()) || className.equals(Long.class.getName()) || className.equals(Integer.class.getName()) || className.equals(Double.class.getName()) || className.equals(Byte.class.getName()) || className.equals(boolean.class.getName()) || className.equals(char.class.getName()) || className.equals(long.class.getName()) || className.equals(int.class.getName()) || className.equals(double.class.getName()) || className.equals(byte.class.getName()); } public static boolean isDate(final Object object) { return null != object ? isDate(object.getClass().getName()) : false; } public static boolean isDate(final String className) { return className.equals(Date.class.getName()); } }