net.sf.basedb.core.plugin
Interface ImmediateDownloadExporter
- All Superinterfaces:
- Plugin
- All Known Implementing Classes:
- AbstractExporterPlugin, BaseFileExporterPlugin, BioAssaySetExporter, GalExporter, HelpExporter, PackedFileExporter, PlateMappingExporter, PluginConfigurationExporter, SimpleExport
public interface ImmediateDownloadExporter
- extends Plugin
This interface should be implemented by export plugins
that supports immediate download to the client application.
The plugin will be loaded and initialised normally and a
job configuration sequence is started by a call to
InteractivePlugin.configure(GuiContext, Request, Response)
.
When the configuration is complete the plugin may respond with
a Response.setDownloadImmediately(String, Job.ExecutionTime, boolean)
instead of a Response.setDone(String, Job.ExecutionTime)
. This will prevent the
core from saving a job in the job queue. Instead it will call the
doExport(ExportOutputStream, ProgressReporter)
method to let the plugin
generate it's output. The Plugin.run(Request, Response, ProgressReporter)
method is never called.
Note that this feature requires that the plugin is executed in the same
virtual machine and prevents the use of job agents. Plugins should not use
immediate export if they use a lot of memory, requires long running times or
consumes other resources that may cause problems for other code.
- Version:
- 2.2
- Author:
- Nicklas
- Last modified
- $Date: 2008-09-11 22:09:17 +0200 (Thu, 11 Sep 2008) $
doExport
void doExport(ExportOutputStream out,
ProgressReporter progress)
throws IOException
- Perform the export.
- Parameters:
out
- The output stream that the exported data should be written toprogress
- An optional progress reporter, may be null
- Throws:
IOException
- If there is an error writing to the export stream