class JsonReader {

    private Optional<Coordinate> mapCoordinates(JsonObject object) {
        JsonObject objComponentIdentifier = (JsonObject) object.get("componentIdentifier");
        if (objComponentIdentifier != null) {
            String format = (String) objComponentIdentifier.get("format");
            switch (format) {
                case "a-name":
                    return mapJavaScriptCoordinates((JsonObject) objComponentIdentifier.get(JSON_OBJ_COORDINATES));
                case "maven":
                    return mapMavenCoordinates((JsonObject) objComponentIdentifier.get(JSON_OBJ_COORDINATES));
                case "nuget":
                    return mapDotNetCoordinates((JsonObject) objComponentIdentifier.get(JSON_OBJ_COORDINATES));
            }
        }
        return Optional.empty();
    }

    public  JsonReader(Path recordingFile, Path dependencyDir, Charset encoding);

}