package com.door43.translationstudio.core; import android.util.Log; import com.door43.tools.reporting.Logger; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import java.util.ArrayList; import java.util.List; /** * Created by blm on 4/14/16. */ public class MissingNameItem { public static final String TAG = MissingNameItem.class.getSimpleName(); public String description; public String invalidName; public String contents; public MissingNameItem(String description, String invalidName, String contents) { this.description = description; this.invalidName = invalidName; this.contents = contents; } public JSONObject toJson() { try { JSONObject jsonObject = new JSONObject(); jsonObject.putOpt("description", description); jsonObject.putOpt("invalidName", invalidName); jsonObject.putOpt("contents", contents); return jsonObject; } catch (Exception e) { e.printStackTrace(); return null; } } static MissingNameItem generate(JSONObject jsonObject) { try { String description = (String) getOpt(jsonObject,"description"); String invalidName = (String) getOpt(jsonObject,"invalidName"); String contents = (String) getOpt(jsonObject,"contents"); return new MissingNameItem(description, invalidName, contents); } catch (Exception e) { e.printStackTrace(); return null; } } static JSONArray toJsonArray(List<MissingNameItem> array) { JSONArray jsonArray = new JSONArray(); for (MissingNameItem item : array) { jsonArray.put(item.toJson()); } return jsonArray; } static List<MissingNameItem> fromJsonArray(String jsonStr) { try { JSONArray jsonArray = new JSONArray(jsonStr); return fromJsonArray(jsonArray); } catch (Exception e) { e.printStackTrace(); } return null; } static List<MissingNameItem> fromJsonArray(JSONArray jsonArray) throws JSONException { List<MissingNameItem> array = new ArrayList<>(); try { for (int i = 0; i < jsonArray.length(); i++) { JSONObject json = jsonArray.getJSONObject(i); MissingNameItem item = generate(json); array.add(item); } } catch (Exception e) { Logger.e(TAG,"could not parse item",e); } return array; } static Object getOpt(JSONObject json, String key) { try { if(json.has(key)) { return json.get(key); } } catch (Exception e) { e.printStackTrace(); } return null; } }