// Path: javabank-core/src/main/java/org/mbtest/javabank/http/imposters/Imposter.java
// public class Imposter extends HashMap {
//     private static final String PORT = "port";
//     private static final String PROTOCOL = "protocol";
//     private static final String STUBS = "stubs";
// 
//     public Imposter() {
//         this.put(PROTOCOL, "http");
//         this.put(STUBS, newArrayList());
//     }
// 
//     public static Imposter fromJSON(JSONObject json) {
//         Imposter imposter = new Imposter();
//         imposter.putAll(json);
// 
//         return imposter;
//     }
// 
//     public static Imposter anImposter() {
//         return new Imposter();
//     }
// 
//     public Imposter onPort(int port) {
//         this.put(PORT, port);
//         return this;
//     }
// 
//     public Imposter addStub(Stub stub) {
//         getStubs().add(stub);
//         return this;
//     }
// 
//     public Imposter withStub(Stub stub) {
//         this.remove(STUBS);
//         this.put(STUBS, newArrayList());
//         addStub(stub);
//         return this;
//     }
// 
//     public List<Stub> getStubs() {
//         return ((List) get(STUBS));
//     }
// 
//     public Stub getStub(int index) {
//         return getStubs().get(index);
//     }
// 
//     public JSONObject toJSON() {
//         return new JSONObject(this);
//     }
// 
//     public String toString() {
//         return toJSON().toJSONString();
//     }
// 
//     public int getPort() {
//         return Integer.valueOf(String.valueOf(get(PORT)));
//     }
// }


import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
import org.mbtest.javabank.http.imposters.Imposter;
package org.mbtest.javabank;


public class ImposterParser {

    public static Imposter parse(String json) throws ParseException {
        JSONObject parsedJson = (JSONObject) new JSONParser().parse(json);

// Path: javabank-core/src/main/java/org/mbtest/javabank/http/imposters/Imposter.java
// public class Imposter extends HashMap {
//     private static final String PORT = "port";
//     private static final String PROTOCOL = "protocol";
//     private static final String STUBS = "stubs";
// 
//     public Imposter() {
//         this.put(PROTOCOL, "http");
//         this.put(STUBS, newArrayList());
//     }
// 
//     public static Imposter fromJSON(JSONObject json) {
//         Imposter imposter = new Imposter();
//         imposter.putAll(json);
// 
//         return imposter;
//     }
// 
//     public static Imposter anImposter() {
//         return new Imposter();
//     }
// 
//     public Imposter onPort(int port) {
//         this.put(PORT, port);
//         return this;
//     }
// 
//     public Imposter addStub(Stub stub) {
//         getStubs().add(stub);
//         return this;
//     }
// 
//     public Imposter withStub(Stub stub) {
//         this.remove(STUBS);
//         this.put(STUBS, newArrayList());
//         addStub(stub);
//         return this;
//     }
// 
//     public List<Stub> getStubs() {
//         return ((List) get(STUBS));
//     }
// 
//     public Stub getStub(int index) {
//         return getStubs().get(index);
//     }
// 
//     public JSONObject toJSON() {
//         return new JSONObject(this);
//     }
// 
//     public String toString() {
//         return toJSON().toJSONString();
//     }
// 
//     public int getPort() {
//         return Integer.valueOf(String.valueOf(get(PORT)));
//     }
// }


// Path: javabank-core/src/main/java/org/mbtest/javabank/ImposterParser.java
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
import org.mbtest.javabank.http.imposters.Imposter;

package org.mbtest.javabank;


public class ImposterParser {

    public static Imposter parse(String json) throws ParseException {
        JSONObject parsedJson = (JSONObject) new JSONParser().parse(json);

        return Imposter.fromJSON(parsedJson);