package fr.inria.diversify.persistence.json.output; import fr.inria.diversify.persistence.PersistenceException; import fr.inria.diversify.transformation.Transformation; import org.json.JSONException; import org.json.JSONObject; import java.util.HashMap; /** * Created by marodrig on 15/01/2015. */ public class JsonFailuresOutput extends JsonSectionOutput { public static final String FAILURES = "failures"; public static final String FAILURES_DICTIONARY = "failureDictionary"; private HashMap<String, Integer> failuresDict; public HashMap<String, Integer> getFailuresDict() { if (failuresDict == null) failuresDict = new HashMap<>(); return failuresDict; } @Override public void write(JSONObject object) { super.write(object); failuresDict = new HashMap<>(); int id = 0; for (Transformation t : getTransformations()) { if (t.getFailures() != null && t.getFailures().size() > 0) { for (String s : t.getFailures()) if (!failuresDict.containsKey(s) && s != null) { failuresDict.put(s, id++); } } } try { object.put(FAILURES_DICTIONARY, failuresDict); } catch (JSONException e) { throw new PersistenceException(e); } } }