@@ -0,0 +1,1471 @@
+package io.spacedog.client.data;%0A%0Aimport java.io.BufferedReader;%0Aimport java.io.IOException;%0Aimport java.nio.file.Files;%0Aimport java.nio.file.Path;%0Aimport java.util.Iterator;%0A%0Aimport com.fasterxml.jackson.databind.node.ObjectNode;%0Aimport com.google.common.base.Strings;%0A%0Aimport io.spacedog.client.http.SpaceFields;%0Aimport io.spacedog.utils.Exceptions;%0Aimport io.spacedog.utils.Json;%0A%0Apublic class DataExportFile%3CK%3E implements Iterator%3CDataWrap%3CK%3E%3E, Iterable%3CDataWrap%3CK%3E%3E %7B%0A%0A%09private String json;%0A%09private BufferedReader reader;%0A%09private Class%3CK%3E sourceClass;%0A%0A%09public static %3CK%3E DataExportFile%3CK%3E of(Class%3CK%3E sourceClass, Path path) %7B%0A%09%09try %7B%0A%09%09%09DataExportFile%3CK%3E iterator = new DataExportFile%3CK%3E();%0A%09%09%09iterator.sourceClass = sourceClass;%0A%09%09%09iterator.reader = Files.newBufferedReader(path);%0A%09%09%09return iterator;%0A%09%09%7D catch (IOException e) %7B%0A%09%09%09throw Exceptions.runtime(e);%0A%09%09%7D%0A%09%7D%0A%0A%09@Override%0A%09public boolean hasNext() %7B%0A%09%09try %7B%0A%09%09%09json = reader.readLine();%0A%09%09%09return !Strings.isNullOrEmpty(json);%0A%09%09%7D catch (IOException e) %7B%0A%09%09%09throw Exceptions.runtime(e);%0A%09%09%7D%0A%09%7D%0A%0A%09@Override%0A%09public DataWrap%3CK%3E next() %7B%0A%09%09ObjectNode object = Json.readObject(json);%0A%09%09K source = Json.toPojo(object.get(%22source%22), sourceClass);%0A%09%09return DataWrap.wrap(source)//%0A%09%09%09%09.id(object.get(SpaceFields.ID_FIELD).asText())//%0A%09%09%09%09.version(object.path(SpaceFields.VERSION_FIELD)//%0A%09%09%09%09%09%09.asLong(DataWrap.MATCH_ANY_VERSIONS));%0A%09%7D%0A%0A%09@Override%0A%09public Iterator%3CDataWrap%3CK%3E%3E iterator() %7B%0A%09%09return this;%0A%09%7D%0A%7D

Add DataExportFile class