package de.vanmar.android.yarrn.sentry; import org.acra.ACRA; import org.json.JSONException; import org.json.JSONObject; import java.util.Map; abstract public class BaseObject { protected JSONObject jsonObject = new JSONObject(); public JSONObject getJsonObject() { return jsonObject; } protected void put(String key, String value) { try { jsonObject.put(key, value); } catch (JSONException e) { ACRA.log.w(getTag(), "Failed to set value on JSON Object", e); } } protected void put(String key, Object object) { try { jsonObject.put(key, object); } catch (JSONException e) { ACRA.log.w(getTag(), "Failed to set value on JSON Object", e); } } protected void put(String key, Integer integer) { try { jsonObject.put(key, integer); } catch (JSONException e) { ACRA.log.w(getTag(), "Failed to set value on JSON Object", e); } } protected void put(String key, Boolean bool) { try { jsonObject.put(key, bool); } catch (JSONException e) { ACRA.log.w(getTag(), "Failed to set value on JSON Object", e); } } protected String getString(String key) { return getString(key, null); } protected String getString(String key, String defaultValue) { try { return jsonObject.getString(key); } catch (JSONException e) { return defaultValue; } } protected JSONObject getMappedObject(Map<String, ?> map) { JSONObject mappedObject = new JSONObject(); for (Map.Entry<String, ?> entry : map.entrySet()) { try { mappedObject.put(entry.getKey(), entry.getValue()); } catch (JSONException e) { ACRA.log.w(getTag(), String.format("Failed to set value %s for tag %s", entry.getValue(), entry.getKey()), e); } catch (NoSuchMethodError e) { ACRA.log.e(getTag(), String.format("There is no method to add value for type %s", entry.getValue().getClass().getSimpleName())); } } return mappedObject; } abstract public String getTag(); }