package ch.elexis.core.ui.importer.div.importers.multifile.strategy; import java.io.File; import java.util.List; import java.util.Map; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import ch.elexis.core.importer.div.importers.multifile.strategy.BasicFileImportStrategyFactory; import ch.elexis.core.importer.div.importers.multifile.strategy.DefaultHL7ImportStrategy; import ch.elexis.core.importer.div.importers.multifile.strategy.IFileImportStrategy; import ch.rgw.io.FileTool; /** * Contains strategies for HL7Files ({@link DefaultHL7ImportStrategy}) and their matching PDFFiles ( * {@link DefaultPDFImportStrategy})<br> * Matching of HL7File to PDF takes place via the filename (need to be identical apart from file * suffix). * * @author lucia * */ public class DefaultImportStrategyFactory extends BasicFileImportStrategyFactory { private static final Logger log = LoggerFactory.getLogger(DefaultImportStrategyFactory.class); @Override public Map<File, IFileImportStrategy> createImportStrategyMap(File hl7File){ Map<File, IFileImportStrategy> ret = super.createImportStrategyMap(hl7File); List<File> matchingFiles = getMatchingFiles(hl7File); // no matching files for this hl7 file if (matchingFiles.isEmpty()) return ret; DefaultPDFImportStrategy pdfImportStrategy = new DefaultPDFImportStrategy(); for (File mFile : matchingFiles) { String type = FileTool.getExtension(mFile.getName()).toLowerCase(); if ("pdf".equals(type)) { log.debug("... adding [" + mFile.getName() + "] with DefaultPDFImportStrategy"); ret.put(mFile, pdfImportStrategy); } } return ret; } }