package com.opendoorlogistics.core.api.impl; import java.io.File; import org.apache.commons.io.FilenameUtils; import com.opendoorlogistics.api.ExecutionReport; import com.opendoorlogistics.api.IO; import com.opendoorlogistics.api.ODLApi; import com.opendoorlogistics.api.components.ProcessingApi; import com.opendoorlogistics.api.io.ImportFileType; import com.opendoorlogistics.api.scripts.ScriptOption; import com.opendoorlogistics.api.tables.ODLDatastore; import com.opendoorlogistics.api.tables.ODLDatastoreAlterable; import com.opendoorlogistics.api.tables.ODLTableAlterable; import com.opendoorlogistics.api.tables.ODLTableReadOnly; import com.opendoorlogistics.core.AppConstants; import com.opendoorlogistics.core.api.impl.scripts.ScriptOptionImpl; import com.opendoorlogistics.core.components.ODLGlobalComponents; import com.opendoorlogistics.core.scripts.elements.Script; import com.opendoorlogistics.core.scripts.io.ScriptIO; import com.opendoorlogistics.core.tables.io.PoiIO; import com.opendoorlogistics.core.tables.io.TableIOUtils; import com.opendoorlogistics.core.utils.strings.Strings; public class IOImpl implements IO{ @Override public File getStandardDataDirectory() { return getAbsFile(AppConstants.DATA_DIRECTORY); } private File getAbsFile(String s) { File ret = new File(s); ret = ret.getAbsoluteFile(); return ret; } @Override public File getStandardConfigDirectory() { return getAbsFile(AppConstants.ODL_CONFIG_DIR); } @Override public File getStandardScriptsDir() { return getAbsFile(AppConstants.SCRIPTS_DIRECTORY); } @Override public boolean exportDatastore(ODLDatastore<? extends ODLTableReadOnly> ds, File file, boolean xlsx, ProcessingApi processing, ExecutionReport report) { return PoiIO.exportDatastore(ds, file, xlsx, processing, report); } @Override public ODLDatastoreAlterable<ODLTableAlterable> importFile(File file, ImportFileType type, ProcessingApi processingApi, ExecutionReport report) { return TableIOUtils.importFile(file, type, processingApi, report); } @Override public ODLDatastoreAlterable<ODLTableAlterable> importFile(File file, ProcessingApi processingApi, ExecutionReport report) { String fileExt = FilenameUtils.getExtension(file.getAbsolutePath()); for(ImportFileType ift : ImportFileType.values()){ for(String ext:ift.getFilter().getExtensions()){ if(Strings.equalsStd(ext,fileExt )){ return importFile(file, ift, processingApi, report); } } } return null; } @Override public String normalisePath(String s) { return FilenameUtils.normalize(s); } @Override public File getLoadedExcelFile() { // This gets overridden within the ODL Studio project return null; } }