class JsonReader {

    @SuppressWarnings("WeakerAccess")
    protected List<Artifact> createArtifactsList(InputStream stream, List<String> filterStrings) {
        LOGGER.debug("Create artifacts list from input stream.");
        List<Artifact> artifacts = new ArrayList<>();
        List<JsonObject> objects = readJsonObjects(stream);
        for (JsonObject obj : objects) {
            if (filterObject(obj, Optional.ofNullable(filterStrings))) {
                continue;
            }
            Artifact artifact = mapArtifact(obj);
            artifacts.add(artifact);
        }
        LOGGER.debug("Creation of artifacts list finished.");
        try {
            stream.close();
        } catch (IOException e) {
            LOGGER.debug("Failed to close stream. Ignored.");
        }
        return artifacts;
    }

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

}