package systems.sdw.basetech.json;

/**
 * The JSONException is thrown by the JSON.org classes when things are amiss.
 * @author JSON.org
 * @version 2008-09-18
 */
public class JSONException extends Exception {
	/**
	 * 
	 */
	private static final long serialVersionUID=0;
	private Throwable cause;

	/**
	 * Constructs a JSONException with an explanatory message.
	 * @param message Detail about the reason for the exception.
	 */
	public JSONException(String message) {
		super(message);
	}

	public JSONException(Throwable t) {
		super(t.getMessage());
		this.cause=t;
	}

	public Throwable getCause() {
		return this.cause;
	}

	public JSONObject get(JSONArray jsonParams, JSONObject jsonData) {
		JSONObject json=new JSONObject();
		try {
			json.put(systems.sdw.baseapps.Protokoll.exception, "systems.sdw.basetech.json.JSONException");
			json.put("jsonParams", jsonParams);
			json.put("jsonData", jsonData);
			json.put(systems.sdw.baseapps.Protokoll.klasse, this.getClass().getCanonicalName());
			json.put(systems.sdw.baseapps.Protokoll.beschreibung, "Der API-Call dieses Clients war fehlerhaft, da bestimmte Parameter erwartet, aber nicht geliefert wurden. Bitte öffnen Sie auf der Supportplattform ein neues Ticket.");
			json.put(systems.sdw.baseapps.Protokoll.name, "systems.sdw.basetech.json.JSONException\njsonParams:"+jsonParams+"\njsonData:"+jsonData+"\nStacktrace:"+this.getStackTrace());
		} catch (JSONException e) {
			e.printStackTrace();
		}
		return json;
	}
}
