package com.opendoorlogistics.api.tables;
import java.io.File;
import com.opendoorlogistics.api.ExecutionReport;
import com.opendoorlogistics.api.ODLApi;
import com.opendoorlogistics.api.app.ODLAppInitListener;
import com.opendoorlogistics.api.app.ODLAppLoadedState;
import com.opendoorlogistics.api.components.ProcessingApi;
/**
* Provides plugin functionality for managing datastores.
* @author Phil
*
*/
public interface DatastoreManagerPlugin extends net.xeoh.plugins.base.Plugin , ODLAppInitListener{
int getPriority();
ProcessDatastoreResult processNewDatastore(File datastoreFileLocation,ODLDatastoreUndoable<? extends ODLTableAlterable> datastore,ProcessingApi processingApi, ExecutionReport report);
/**
* For a datastore which is wrapped by the plugin, get the datastore which should be saved to a file
* @param ds Datastore wrapped by the plugin
* @return
*/
ODLDatastore<? extends ODLTableReadOnly> getDatastore2Save(ODLApi api,ODLAppLoadedState state);
public interface ProcessDatastoreResult{
ODLDatastoreUndoable<? extends ODLTableAlterable> getDs();
DatastoreManagerPluginState getState();
}
public interface DatastoreManagerPluginState{
}
}