// Path: GerritCommon/src/main/java/com/holmsted/json/JsonUtils.java
// public final class JsonUtils {
// 
//     @Nonnull
//     public static JSONObject readJsonString(String jsonString) {
//         return new JSONObject(new JSONTokener(jsonString));
//     }
// 
//     @Nonnull
//     public static List<String> readStringArray(JSONArray array) {
//         List<String> list = new ArrayList<>();
//         for (int i = 0; i < array.length(); ++i) {
//             list.add(array.getString(i));
//         }
//         return list;
//     }
// 
//     private JsonUtils() {
//     }
// }


import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.List;
import com.holmsted.json.JsonUtils;
import javax.annotation.Nonnull;
package com.holmsted.gerrit;





public class GerritStatParser {

    public static class ParserContext {
        final GerritVersion version;

        ParserContext(@Nonnull GerritVersion version) {
            this.version = version;
        }
    }

    public static class GerritData {
        @Nonnull
        final GerritVersion version;
        @Nonnull
        final List<Commit> commits = new ArrayList<>();

        GerritData(@Nonnull GerritVersion version) {
            this.version = version;
        }
    }


    @Nonnull
    public GerritData parseJsonData(@Nonnull String jsonFileData) {
        GerritData data;
        try {
// Path: GerritCommon/src/main/java/com/holmsted/json/JsonUtils.java
// public final class JsonUtils {
// 
//     @Nonnull
//     public static JSONObject readJsonString(String jsonString) {
//         return new JSONObject(new JSONTokener(jsonString));
//     }
// 
//     @Nonnull
//     public static List<String> readStringArray(JSONArray array) {
//         List<String> list = new ArrayList<>();
//         for (int i = 0; i < array.length(); ++i) {
//             list.add(array.getString(i));
//         }
//         return list;
//     }
// 
//     private JsonUtils() {
//     }
// }


// Path: GerritStats/src/main/java/com/holmsted/gerrit/GerritStatParser.java
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.List;
import com.holmsted.json.JsonUtils;
import javax.annotation.Nonnull;

package com.holmsted.gerrit;





public class GerritStatParser {

    public static class ParserContext {
        final GerritVersion version;

        ParserContext(@Nonnull GerritVersion version) {
            this.version = version;
        }
    }

    public static class GerritData {
        @Nonnull
        final GerritVersion version;
        @Nonnull
        final List<Commit> commits = new ArrayList<>();

        GerritData(@Nonnull GerritVersion version) {
            this.version = version;
        }
    }


    @Nonnull
    public GerritData parseJsonData(@Nonnull String jsonFileData) {
        GerritData data;
        try {
            JSONObject object = JsonUtils.readJsonString(jsonFileData);