Interface IOSupport
- All Superinterfaces:
InteractivePlugin
,Plugin
- All Known Implementing Classes:
AbstractIOSupport
,BaseFileExporterSupport
,BaseFileImporterSupport
,BfsExporterSupport
,BfsImporterSupport
,FileOnlyImporterSupport
The communication between the external executor and the importer/exporter
uses the regular plug-in API. Eg.
InteractivePlugin.getRequestInformation(GuiContext, String)
,
InteractivePlugin.configure(GuiContext, Request, Response)
and Plugin.run(Request, Response, ProgressReporter)
.
But we use a different set of commands than what is used in the
normal plug-in execution sequence, so it is possible for the import/export
plug-ins to know if they are invoked by the executor or by the
regular plug-in execution sequence.
Note! The external executor doesn't check the return values of methods such
as Plugin.supportsConfigurations()
, Plugin.requiresConfiguration()
,
InteractivePlugin.getGuiContexts()
, etc. By implementing this interface
a plug-in is assumed to work with the external executor. This also means that
a plug-in may use the above mentioned methods to "hide" itself as a regular
plug-in (eg. if the getGuiContexts()
returns null it will never
show up in the interface). See AbstractIOSupport
which can be used as
a base class for such plug-ins.
The external program executor has a three-step configuration sequence.
- Select external program, exporter and importer and specify pre-conditions for the bioassay set such as raw data type, number of channels etc.
- Configure the exporter and importer. This step is forwarded
to the importer/exporter plug-ins selected in the first step
with the command
COMMAND_CONFIGURE_IO_PLUGIN
. The configuration parameters are proxied from the external executor which means that the exporter/importer has access to the options selected in the first step. The import/export plug-ins may only respond withResponse.Status.DONE
orResponse.Status.ERROR
. Other responses are treated as an error. Configuration settings that are stored by the importer and exporter are merged with the external executors configuration and stored in the database. - Define parameters for the external program.
- Since:
- 2.15
- Author:
- nicklas
- See Also:
- Last modified
- $Date $
-
Nested Class Summary
Nested classes/interfaces inherited from interface net.sf.basedb.core.plugin.Plugin
Plugin.MainType
-
Field Summary
Modifier and TypeFieldDescriptionstatic final String
This command is sent to import and export plug-ins in the job configuration sequence:InteractivePlugin.getRequestInformation(GuiContext, String)
andInteractivePlugin.configure(GuiContext, Request, Response)
static final String
This command is sent to import and export plug-ins in the plug-in configuration sequence:InteractivePlugin.getRequestInformation(GuiContext, String)
andInteractivePlugin.configure(GuiContext, Request, Response)
static final String
This command is sent to import and export plug-ins in the job execution sequence:Plugin.run(Request, Response, ProgressReporter)
-
Method Summary
Modifier and TypeMethodDescriptionGet a short name of the plug-in.void
init
(SessionControl sc, ParameterValues configuration, ParameterValues job, ExternalProgramExecutor executor) Replaces the regular plug-in initialisation method.Methods inherited from interface net.sf.basedb.core.plugin.InteractivePlugin
configure, getGuiContexts, getRequestInformation, isInContext
Methods inherited from interface net.sf.basedb.core.plugin.Plugin
done, getMainType, getPermissions, init, requiresConfiguration, run, supportsConfigurations
-
Field Details
-
COMMAND_CONFIGURE_IO_PLUGIN
This command is sent to import and export plug-ins in the plug-in configuration sequence:InteractivePlugin.getRequestInformation(GuiContext, String)
andInteractivePlugin.configure(GuiContext, Request, Response)
- See Also:
-
COMMAND_CONFIGURE_IO_JOB
This command is sent to import and export plug-ins in the job configuration sequence:InteractivePlugin.getRequestInformation(GuiContext, String)
andInteractivePlugin.configure(GuiContext, Request, Response)
- See Also:
-
COMMAND_EXECUTE_IO_JOB
This command is sent to import and export plug-ins in the job execution sequence:Plugin.run(Request, Response, ProgressReporter)
- See Also:
-
-
Method Details
-
getShortName
String getShortName()Get a short name of the plug-in. This is used by the external program executor in the plug-in selection lists during the configuration phase.- Since:
- 2.16
-
init
void init(SessionControl sc, ParameterValues configuration, ParameterValues job, ExternalProgramExecutor executor) Replaces the regular plug-in initialisation method. When the plug-in is used as part of the external executor this method is used instead ofPlugin.init(SessionControl, ParameterValues, ParameterValues)
.- Parameters:
executor
- The external executor plug-in
-