package com.opendoorlogistics.api;
import java.io.File;
import com.opendoorlogistics.api.components.ProcessingApi;
import com.opendoorlogistics.api.io.ImportFileType;
import com.opendoorlogistics.api.tables.ODLDatastore;
import com.opendoorlogistics.api.tables.ODLDatastoreAlterable;
import com.opendoorlogistics.api.tables.ODLTableAlterable;
import com.opendoorlogistics.api.tables.ODLTableReadOnly;
public interface IO {
/**
* Get the standard data directory in the ODL Studio installation
* @return
*/
File getStandardDataDirectory();
File getStandardConfigDirectory();
File getStandardScriptsDir();
/**
* If we're in ODL Studio this returns the file that the current datastore was loaded from.
* Unlikely to work in ODL Connect...
* @return
*/
File getLoadedExcelFile();
boolean exportDatastore(ODLDatastore<? extends ODLTableReadOnly> ds, File file, boolean xlsx,ProcessingApi processing, ExecutionReport report);
ODLDatastoreAlterable<ODLTableAlterable> importFile(File file, ImportFileType type,ProcessingApi processingApi, ExecutionReport report);
/**
* Import a supported file, using its extension to identify the type
* @param file
* @param processingApi
* @param report
* @return
*/
ODLDatastoreAlterable<ODLTableAlterable> importFile(File file ,ProcessingApi processingApi, ExecutionReport report);
/**
* Normalise a file path, internally calling Apache commons-io FilenameUtils.Normalize
* @param s
* @return
*/
String normalisePath(String s);
}