Package net.sf.basedb.plugins
Class BaseFileExporterPlugin
- java.lang.Object
-
- net.sf.basedb.core.plugin.AbstractPlugin
-
- net.sf.basedb.core.plugin.AbstractExporterPlugin
-
- net.sf.basedb.plugins.BaseFileExporterPlugin
-
- All Implemented Interfaces:
ImmediateDownloadExporter
,InteractivePlugin
,Plugin
,SignalTarget
public class BaseFileExporterPlugin extends AbstractExporterPlugin implements InteractivePlugin, SignalTarget
Exports bioassay set data as serial or matrix BASEfile:s.- Version:
- 2.12
- Author:
- Nicklas
- Last modified
- $Date: 2019-02-26 11:10:15 +0100 (tis, 26 feb. 2019) $
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
BaseFileExporterPlugin.ExtendedDynamicField
-
Nested classes/interfaces inherited from interface net.sf.basedb.core.plugin.Plugin
Plugin.MainType
-
-
Field Summary
Fields Modifier and Type Field Description private BioAssaySet
bas
private RequestInformation
configureJob
private DbControl
dc
private Map<String,BaseFileExporterPlugin.ExtendedDynamicField>
exportableFields
private static String
FORMAT_BASEFILE_MATRIX
private static String
FORMAT_BASEFILE_SERIAL
private static Set<GuiContext>
guiContexts
static String
PARAMETER_FILEFORMAT
private static Set<Permissions>
permissions
private ThreadSignalHandler
signalHandler
-
Fields inherited from class net.sf.basedb.core.plugin.AbstractExporterPlugin
optionalSaveAsType, OVERWRITE, overwriteType, requiredSaveAsType, SAVE_AS
-
Fields inherited from class net.sf.basedb.core.plugin.AbstractPlugin
annotationSection, configuration, COPY_ANNOTATIONS, job, OVERWRITE_ANNOTATIONS, sc
-
-
Constructor Summary
Constructors Constructor Description BaseFileExporterPlugin()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
begin(DbControl dc)
Called just before the export starts.void
configure(GuiContext context, Request request, Response response)
Configure the plugin.protected void
end(boolean success)
Called just after everything has been committed to the database, or immediately after an error has ocurred.private RequestInformation
getConfigureJobParameters(GuiContext context, Boolean requireFile)
Map<String,BaseFileExporterPlugin.ExtendedDynamicField>
getExportableFields(DbControl dc, BioAssaySet source)
private Collection<BaseFileExporterPlugin.ExtendedDynamicField>
getExtraValueFields(DbControl dc, BioAssaySet source)
static PluginParameter<String>
getFileFormatParameter()
Create a plug-in parameter that asks for the BASEFile subtype to use in the export.private List<BaseFileExporterPlugin.ExtendedDynamicField>
getFormulaFields(DbControl dc, BioAssaySet source)
Set<GuiContext>
getGuiContexts()
Get a set containing all items that the plugin handles.Collection<Permissions>
getPermissions()
Request create and write access to File:s and Directory:s and read access to Experiment:s and User:s.private List<BaseFileExporterPlugin.ExtendedDynamicField>
getRawdataFields(BioAssaySet source)
private Collection<BaseFileExporterPlugin.ExtendedDynamicField>
getReporterFields()
RequestInformation
getRequestInformation(GuiContext context, String command)
This method will return theRequestInformation
for a given command, i.e.SignalHandler
getSignalHandler()
Get the signal handler that is handling signals on behalf of this object.private Collection<BaseFileExporterPlugin.ExtendedDynamicField>
getSpotFields(BioAssaySet source)
protected String
getSuccessMessage()
Called if the export was successful to let the subclass generate a simple message that is sent back to the core and user interface.String
isInContext(GuiContext context, Object item)
Check if the plugin can be used on the specified object.protected void
performExport(ExportOutputStream out, ProgressReporter progress)
Perform the export.private BaseFileExporterPlugin.ExtendedDynamicField
rawField(String property, String guiTitle, Type type, Formula.AverageMethod averageMethod)
private BaseFileExporterPlugin.ExtendedDynamicField
reporterField(String property, String guiTitle, Type type, Formula.AverageMethod averageMethod)
boolean
requiresConfiguration()
Returns FALSE, since that is how the plugins used to work before this method was introduced.boolean
supportsConfigurations()
Returns TRUE, since that is how the plugins used to work before this method was introduced.-
Methods inherited from class net.sf.basedb.core.plugin.AbstractExporterPlugin
doExport, getMainType, getOverwrite, getOverwriteParameter, getSaveAsParameter, getSaveAsPath, getSaveTo, pathCanBeUsed, run
-
Methods inherited from class net.sf.basedb.core.plugin.AbstractPlugin
cloneParameterWithDefaultValue, closeLogFile, createLogFile, done, getCopyAnnotationsParmeter, getCurrentConfiguration, getCurrentJob, getJobOrConfigurationValue, getOverwriteAnnotationsParameters, init, log, log, storeValue, storeValue, storeValues, validateRequestParameters
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface net.sf.basedb.core.plugin.Plugin
done, getMainType, init, run
-
-
-
-
Field Detail
-
guiContexts
private static final Set<GuiContext> guiContexts
-
permissions
private static final Set<Permissions> permissions
-
FORMAT_BASEFILE_SERIAL
private static final String FORMAT_BASEFILE_SERIAL
- See Also:
- Constant Field Values
-
FORMAT_BASEFILE_MATRIX
private static final String FORMAT_BASEFILE_MATRIX
- See Also:
- Constant Field Values
-
signalHandler
private ThreadSignalHandler signalHandler
-
configureJob
private RequestInformation configureJob
-
dc
private DbControl dc
-
bas
private BioAssaySet bas
-
exportableFields
private Map<String,BaseFileExporterPlugin.ExtendedDynamicField> exportableFields
-
PARAMETER_FILEFORMAT
public static final String PARAMETER_FILEFORMAT
- See Also:
- Constant Field Values
-
-
Method Detail
-
supportsConfigurations
public boolean supportsConfigurations()
Description copied from class:AbstractPlugin
Returns TRUE, since that is how the plugins used to work before this method was introduced.- Specified by:
supportsConfigurations
in interfacePlugin
- Overrides:
supportsConfigurations
in classAbstractPlugin
- Returns:
- TRUE or FALSE
-
requiresConfiguration
public boolean requiresConfiguration()
Description copied from class:AbstractPlugin
Returns FALSE, since that is how the plugins used to work before this method was introduced.- Specified by:
requiresConfiguration
in interfacePlugin
- Overrides:
requiresConfiguration
in classAbstractPlugin
- Returns:
- TRUE or FALSE
-
getPermissions
public Collection<Permissions> getPermissions()
Request create and write access to File:s and Directory:s and read access to Experiment:s and User:s.- Specified by:
getPermissions
in interfacePlugin
- Overrides:
getPermissions
in classAbstractPlugin
- Returns:
- A collection of permissions or null to not use permissions
-
getGuiContexts
public Set<GuiContext> getGuiContexts()
Description copied from interface:InteractivePlugin
Get a set containing all items that the plugin handles. Ie. if the plugin imports reporters, return a set containingItem.REPORTER
. This information is used by client applications to put the plugin in the proper place in the user interface.- Specified by:
getGuiContexts
in interfaceInteractivePlugin
- Returns:
- A
Set
containingItem
:s, or null if the plugin is not concerned about items
-
isInContext
public String isInContext(GuiContext context, Object item)
Description copied from interface:InteractivePlugin
Check if the plugin can be used on the specified object. The item is either aBasicItem
orBasicData
object, or null if called from a list context. A client application should only call this method for contexts matching one of the contexts in the set returned by theInteractivePlugin.getGuiContexts()
method. ForGuiContext.Type.ITEM
contexts an item of the correct type should be passed as a parameter.The plug-in can response with a null value indicating success, a warning-level message or throw an exception to indicate an error-level message. Client application should normally only show error-level messages to users, unless the user has requested to see warning messages.
NOTE! Before BASE 2.4 all messages were treated as error-level messages.
- Specified by:
isInContext
in interfaceInteractivePlugin
- Parameters:
context
- The current context of the client application, it is one of the values found in set returned byInteractivePlugin.getGuiContexts()
item
- The currently active item, it's type should match theGuiContext.getItem()
type, or null if the context is a list context- Returns:
Null
if the plugin can use that item, or a warning-level message explaining why the plugin can't be used
-
getRequestInformation
public RequestInformation getRequestInformation(GuiContext context, String command) throws BaseException
Description copied from interface:InteractivePlugin
This method will return theRequestInformation
for a given command, i.e. the list of parameters and some nice help text.- Specified by:
getRequestInformation
in interfaceInteractivePlugin
- Parameters:
context
- The current context of the client application, it is one of the values found in set returned byInteractivePlugin.getGuiContexts()
command
- The command- Returns:
- The
RequestInformation
for the command - Throws:
BaseException
- if there is an error
-
configure
public void configure(GuiContext context, Request request, Response response)
Description copied from interface:InteractivePlugin
Configure the plugin. Hopefully the client is supplying values for the parameters specified byInteractivePlugin.getRequestInformation(GuiContext, String)
.- Specified by:
configure
in interfaceInteractivePlugin
- Parameters:
context
- The current context of the client application, it is one of the values found in set returned byInteractivePlugin.getGuiContexts()
request
- Request object with the command and parametersresponse
- Response object in for the plugin to response through
-
getSignalHandler
public SignalHandler getSignalHandler()
Description copied from interface:SignalTarget
Get the signal handler that is handling signals on behalf of this object. Multiple invokations of this method may receive the same or different objects. Null may be returned if, for some reason, the current object instance doesn't want to receive signals. Returning null is the same as not implementing this interface.- Specified by:
getSignalHandler
in interfaceSignalTarget
- Returns:
- A SignalHandler object, or null if the current instance doesn't support signals
-
begin
protected void begin(DbControl dc)
Description copied from class:AbstractExporterPlugin
Called just before the export starts. A subclass may override this method if it needs to initialise some resources.- Overrides:
begin
in classAbstractExporterPlugin
- Parameters:
dc
- The DbControl that is used to write to the database. A subclass may use this read from the database as well- See Also:
AbstractExporterPlugin.end(boolean)
-
performExport
protected void performExport(ExportOutputStream out, ProgressReporter progress) throws IOException
Description copied from class:AbstractExporterPlugin
Perform the export. This method replaces theImmediateDownloadExporter.doExport(ExportOutputStream, ProgressReporter)
method.- Specified by:
performExport
in classAbstractExporterPlugin
- Parameters:
out
- Output stream to write the exported data toprogress
- An optional progress reporter- Throws:
IOException
-
end
protected void end(boolean success)
Description copied from class:AbstractExporterPlugin
Called just after everything has been committed to the database, or immediately after an error has ocurred. A subclass should clean up any resources aquired in theAbstractExporterPlugin.begin(DbControl)
method here.- Overrides:
end
in classAbstractExporterPlugin
- Parameters:
success
- TRUE if the file was parsed successfully, FALSE otherwise- See Also:
AbstractExporterPlugin.begin(DbControl)
-
getSuccessMessage
protected String getSuccessMessage()
Description copied from class:AbstractExporterPlugin
Called if the export was successful to let the subclass generate a simple message that is sent back to the core and user interface. An example message might by:178 reporters exported successfully
. The default implementation always return null.- Overrides:
getSuccessMessage
in classAbstractExporterPlugin
-
getFileFormatParameter
public static PluginParameter<String> getFileFormatParameter()
Create a plug-in parameter that asks for the BASEFile subtype to use in the export.
-
getConfigureJobParameters
private RequestInformation getConfigureJobParameters(GuiContext context, Boolean requireFile)
-
getExportableFields
public Map<String,BaseFileExporterPlugin.ExtendedDynamicField> getExportableFields(DbControl dc, BioAssaySet source)
-
getFormulaFields
private List<BaseFileExporterPlugin.ExtendedDynamicField> getFormulaFields(DbControl dc, BioAssaySet source)
-
getRawdataFields
private List<BaseFileExporterPlugin.ExtendedDynamicField> getRawdataFields(BioAssaySet source)
-
rawField
private BaseFileExporterPlugin.ExtendedDynamicField rawField(String property, String guiTitle, Type type, Formula.AverageMethod averageMethod)
-
getReporterFields
private Collection<BaseFileExporterPlugin.ExtendedDynamicField> getReporterFields()
-
reporterField
private BaseFileExporterPlugin.ExtendedDynamicField reporterField(String property, String guiTitle, Type type, Formula.AverageMethod averageMethod)
-
getExtraValueFields
private Collection<BaseFileExporterPlugin.ExtendedDynamicField> getExtraValueFields(DbControl dc, BioAssaySet source)
-
getSpotFields
private Collection<BaseFileExporterPlugin.ExtendedDynamicField> getSpotFields(BioAssaySet source)
-
-