package fr.inria.diversify.persistence.json.input;
import fr.inria.diversify.diversification.InputProgram;
import fr.inria.diversify.transformation.Transformation;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.UUID;
import static fr.inria.diversify.persistence.json.output.JsonFailuresOutput.FAILURES_DICTIONARY;
/**
* Created by marodrig on 16/01/2015.
*/
public class JsonFailuresInput extends JsonSectionInput {
private Map<Integer, String> failures;
public JsonFailuresInput(InputProgram inputProgram, JSONObject jsonObject) {
super(inputProgram, jsonObject);
}
@Override
public void read(Map<UUID, Transformation> transformations) {
failures = new HashMap<>();
try {
if ( getJsonObject().has(FAILURES_DICTIONARY) ) return;
JSONObject failuresJson = getJsonObject().getJSONObject(FAILURES_DICTIONARY);
Iterator<?> keys = failuresJson.keys();
while( keys.hasNext() ){
String n = (String)keys.next();
failures.put(failuresJson.getInt(n), n);
}
} catch (JSONException e) {
throwError("Unexpected JSON error ", e, true);
}
}
public Map<Integer, String> getFailures() {
return failures;
}
}