// Path: GerritStats/src/main/java/com/holmsted/gerrit/GerritStatParser.java
// public static class ParserContext {
//     final GerritVersion version;
// 
//     ParserContext(@Nonnull GerritVersion version) {
//         this.version = version;
//     }
// }
// 
// 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 com.google.common.base.Strings;
import com.google.common.collect.ImmutableList;
import com.holmsted.gerrit.GerritStatParser.ParserContext;
import com.holmsted.json.JsonUtils;
import org.json.JSONArray;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Objects;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
            this.username = username;
        }

        public static Identity fromJson(JSONObject ownerJson) {
            return new Identity(ownerJson.optString("name"),
                    ownerJson.optString("email"),
                    ownerJson.optString("username"));
        }

        @Nonnull
        static List<Identity> fromJsonArray(@Nullable JSONArray identitiesJson) {
            List<Identity> result = new ArrayList<>();
            if (identitiesJson != null) {
                for (int i = 0; i < identitiesJson.length(); ++i) {
                    JSONObject identityJson = identitiesJson.getJSONObject(i);
                    result.add(Identity.fromJson(identityJson));
                }
            }
            return result;
        }

        public String getName() {
            return name;
        }

        public String getEmail() {
            return email;
        }

        public String getUsername() {
// Path: GerritStats/src/main/java/com/holmsted/gerrit/GerritStatParser.java
// public static class ParserContext {
//     final GerritVersion version;
// 
//     ParserContext(@Nonnull GerritVersion version) {
//         this.version = version;
//     }
// }
// 
// 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/Commit.java
import com.google.common.base.Strings;
import com.google.common.collect.ImmutableList;
import com.holmsted.gerrit.GerritStatParser.ParserContext;
import com.holmsted.json.JsonUtils;
import org.json.JSONArray;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Objects;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;

            this.username = username;
        }

        public static Identity fromJson(JSONObject ownerJson) {
            return new Identity(ownerJson.optString("name"),
                    ownerJson.optString("email"),
                    ownerJson.optString("username"));
        }

        @Nonnull
        static List<Identity> fromJsonArray(@Nullable JSONArray identitiesJson) {
            List<Identity> result = new ArrayList<>();
            if (identitiesJson != null) {
                for (int i = 0; i < identitiesJson.length(); ++i) {
                    JSONObject identityJson = identitiesJson.getJSONObject(i);
                    result.add(Identity.fromJson(identityJson));
                }
            }
            return result;
        }

        public String getName() {
            return name;
        }

        public String getEmail() {
            return email;
        }

        public String getUsername() {
            return username;