package com.constellio.app.services.importExport.records.writers;
import java.io.File;
import java.util.HashMap;
import java.util.Map;
public class ImportRecordWriter {
File outputFolder;
Map<String, ImportRecordOfSameCollectionWriter> writers = new HashMap<>();
ImportedRecordFilter filter;
public ImportRecordWriter(File outputFolder) {
this.outputFolder = outputFolder;
}
public ImportRecordWriter(File outputFolder, ImportedRecordFilter filter) {
this.outputFolder = outputFolder;
this.filter = filter;
}
public void write(ModifiableImportRecord importRecord) {
if (importRecord.getCollection() == null) {
throw new RuntimeException("Collection is required!");
}
if (importRecord.getSchemaType() == null) {
throw new RuntimeException("Schema type is required!");
}
if (filter == null || filter.isImported(importRecord)) {
ImportRecordOfSameCollectionWriter collectionWriter = writers.get(importRecord.getCollection());
if (collectionWriter == null) {
File collectionFolder = new File(outputFolder, importRecord.getCollection());
collectionFolder.mkdirs();
collectionWriter = new ImportRecordOfSameCollectionWriter(collectionFolder);
writers.put(importRecord.getCollection(), collectionWriter);
}
collectionWriter.write(importRecord);
}
}
public void close() {
for (ImportRecordOfSameCollectionWriter writer : writers.values()) {
writer.close();
}
}
}