package com.constellio.app.services.schemas.bulkImport;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import com.constellio.app.services.schemas.bulkImport.data.ImportData;
import com.constellio.app.services.schemas.bulkImport.data.ImportDataIterator;
import com.constellio.app.services.schemas.bulkImport.data.ImportDataOptions;
import com.constellio.app.services.schemas.bulkImport.data.ImportDataProvider;
import com.constellio.app.services.schemas.bulkImport.data.builder.ImportDataBuilder;
public class DummyImportDataProvider implements ImportDataProvider {
public Map<String, ImportDataOptions> dataOptionsMap = new HashMap<>();
private Map<String, List<ImportDataBuilder>> data;
public DummyImportDataProvider(
Map<String, List<ImportDataBuilder>> data) {
this.data = data;
}
@Override
public void initialize() {
}
@Override
public void close() {
}
@Override
public int size(String schemaType) {
return data.get(schemaType).size();
}
@Override
public List<String> getAvailableSchemaTypes() {
return new ArrayList<>(data.keySet());
}
public ImportDataOptions getDataOptions(String schemaType) {
if (dataOptionsMap.containsKey(schemaType)) {
return dataOptionsMap.get(schemaType);
} else {
return new ImportDataOptions();
}
}
@Override
public ImportDataIterator newDataIterator(final String schemaType) {
final Iterator<ImportDataBuilder> nestedIterator = data.get(schemaType).iterator();
return new ImportDataIterator() {
private boolean closed;
private int index;
@Override
public ImportDataOptions getOptions() {
return getDataOptions(schemaType);
}
@Override
public void close() {
closed = true;
}
public boolean isClosed() {
return closed;
}
@Override
public boolean hasNext() {
return nestedIterator.hasNext();
}
@Override
public ImportData next() {
return nestedIterator.next().build(index++);
}
@Override
public void remove() {
}
};
}
}