2.17.2: 2011-06-17

net.sf.basedb.plugins
Class BfsExporterPlugin

java.lang.Object
  extended by net.sf.basedb.core.plugin.AbstractPlugin
      extended by net.sf.basedb.plugins.BfsExporterPlugin
All Implemented Interfaces:
InteractivePlugin, Plugin, SignalTarget

public class BfsExporterPlugin
extends AbstractPlugin
implements InteractivePlugin, SignalTarget

Exports bioassay set data to BFS format.

Since:
2.15
Author:
Nicklas
Last modified
$Date: 2010-11-08 14:49:35 +0100 (Mon, 08 Nov 2010) $

Nested Class Summary
static class BfsExporterPlugin.ExtendedExportableField
           
 
Nested classes/interfaces inherited from interface net.sf.basedb.core.plugin.Plugin
Plugin.MainType
 
Field Summary
private static About about
           
private  BioAssaySet bas
           
private  RequestInformation configureJob
           
private  DbControl dc
           
private  Map<String,BfsExporterPlugin.ExtendedExportableField> exportableFields
           
private static Set<GuiContext> guiContexts
           
static String PARAMETER_FILEFORMAT
           
static String PARAMETER_FILENAMEGENERATOR
           
private  ThreadSignalHandler signalHandler
           
 
Fields inherited from class net.sf.basedb.core.plugin.AbstractPlugin
annotationSection, configuration, COPY_ANNOTATIONS, job, OVERWRITE_ANNOTATIONS, sc
 
Constructor Summary
BfsExporterPlugin()
           
 
Method Summary
private  BfsExporterPlugin.ExtendedExportableField assayField(String property, String guiTitle, Type type)
           
protected  void begin(DbControl dc)
           
 void configure(GuiContext context, Request request, Response response)
          Configure the plugin.
private  File createFile(DbControl dc, Directory dir, String name)
           
private  File createFile(File dir, String name)
           
protected  void end(boolean success)
           
 About getAbout()
          Get information about the plugin, such as name, version, authors, etc.
private  List<BfsExporterPlugin.ExtendedExportableField> getAssayFields(DbControl dc, BioAssaySet source)
           
private  RequestInformation getConfigureJobParameters(GuiContext context)
           
 Map<String,BfsExporterPlugin.ExtendedExportableField> getExportableFields(DbControl dc, BioAssaySet source)
           
private  Collection<BfsExporterPlugin.ExtendedExportableField> getExtraValueFields(DbControl dc, BioAssaySet source)
           
static PluginParameter<String> getFileFormatParameter()
          Create a plug-in parameter that asks for the BFS subtype to use in the export.
static PluginParameter<String> getFileNameGeneratorParameter()
          Create a plug-in parameter that asks for the file name generation strategy.
private  List<BfsExporterPlugin.ExtendedExportableField> getFormulaFields(DbControl dc, BioAssaySet source)
           
 Set<GuiContext> getGuiContexts()
          Get a set containing all items that the plugin handles.
 Plugin.MainType getMainType()
          Get the type of the plugin.
private  List<BfsExporterPlugin.ExtendedExportableField> getRawdataFields(BioAssaySet source)
           
static Collection<BfsExporterPlugin.ExtendedExportableField> getReporterFields()
           
 RequestInformation getRequestInformation(GuiContext context, String command)
          This method will return the RequestInformation for a given command, i.e.
 SignalHandler getSignalHandler()
          Get the signal handler that is handling signals on behalf of this object.
private  Collection<BfsExporterPlugin.ExtendedExportableField> getSpotFields(BioAssaySet source)
           
protected  String getSuccessMessage()
           
 String isInContext(GuiContext context, Object item)
          Check if the plugin can be used on the specified object.
protected  void performExport(ProgressReporter progress)
           
private  BfsExporterPlugin.ExtendedExportableField rawField(String property, String title, Type type, Formula.AverageMethod averageMethod)
           
private static BfsExporterPlugin.ExtendedExportableField 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.
 void run(Request request, Response response, ProgressReporter progress)
          Run the plugin.
 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.AbstractPlugin
checkInterrupted, cloneParameterWithDefaultValue, closeLogFile, createLogFile, done, getCopyAnnotationsParmeter, getCurrentConfiguration, getCurrentJob, getJobOrConfigurationValue, getOverwriteAnnotationsParameters, getPermissions, 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, getPermissions, init
 

Field Detail

about

private static final About about

guiContexts

private static final Set<GuiContext> guiContexts

signalHandler

private ThreadSignalHandler signalHandler

configureJob

private RequestInformation configureJob

dc

private DbControl dc

bas

private BioAssaySet bas

exportableFields

private Map<String,BfsExporterPlugin.ExtendedExportableField> exportableFields

PARAMETER_FILEFORMAT

public static final String PARAMETER_FILEFORMAT
See Also:
Constant Field Values

PARAMETER_FILENAMEGENERATOR

public static final String PARAMETER_FILENAMEGENERATOR
See Also:
Constant Field Values
Constructor Detail

BfsExporterPlugin

public BfsExporterPlugin()
Method Detail

getMainType

public Plugin.MainType getMainType()
Description copied from interface: Plugin
Get the type of the plugin. This method must always return the same value.

Specified by:
getMainType in interface Plugin
Returns:
MainType.EXPORT

getAbout

public About getAbout()
Description copied from interface: Plugin
Get information about the plugin, such as name, version, authors, etc.

Specified by:
getAbout in interface Plugin
Returns:
An About object

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 interface Plugin
Overrides:
supportsConfigurations in class AbstractPlugin
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 interface Plugin
Overrides:
requiresConfiguration in class AbstractPlugin
Returns:
TRUE or FALSE

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 containing Item.REPORTER. This information is used by client applications to put the plugin in the proper place in the user interface.

Specified by:
getGuiContexts in interface InteractivePlugin
Returns:
A Set containing Item: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 a BasicItem or BasicData 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 the InteractivePlugin.getGuiContexts() method. For GuiContext.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 interface InteractivePlugin
Parameters:
context - The current context of the client application, it is one of the values found in set returned by InteractivePlugin.getGuiContexts()
item - The currently active item, it's type should match the GuiContext.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 the RequestInformation for a given command, i.e. the list of parameters and some nice help text.

Specified by:
getRequestInformation in interface InteractivePlugin
Parameters:
context - The current context of the client application, it is one of the values found in set returned by InteractivePlugin.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 by InteractivePlugin.getRequestInformation(GuiContext, String).

Specified by:
configure in interface InteractivePlugin
Parameters:
context - The current context of the client application, it is one of the values found in set returned by InteractivePlugin.getGuiContexts()
request - Request object with the command and parameters
response - Response object in for the plugin to response through

run

public void run(Request request,
                Response response,
                ProgressReporter progress)
Description copied from interface: Plugin
Run the plugin. If a progress reporter object is passed it is recommended that the plugin makes use of it.

Specified by:
run in interface Plugin
Parameters:
request - Request object with the command and parameters
response - Response object in for the plugin to response through
progress - A ProgressReporter where the plugin can report its progess, can be null

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 interface SignalTarget
Returns:
A SignalHandler object, or null if the current instance doesn't support signals

begin

protected void begin(DbControl dc)

performExport

protected void performExport(ProgressReporter progress)
                      throws IOException
Throws:
IOException

end

protected void end(boolean success)

getSuccessMessage

protected String getSuccessMessage()

getConfigureJobParameters

private RequestInformation getConfigureJobParameters(GuiContext context)

getExportableFields

public Map<String,BfsExporterPlugin.ExtendedExportableField> getExportableFields(DbControl dc,
                                                                                 BioAssaySet source)

getFormulaFields

private List<BfsExporterPlugin.ExtendedExportableField> getFormulaFields(DbControl dc,
                                                                         BioAssaySet source)

getRawdataFields

private List<BfsExporterPlugin.ExtendedExportableField> getRawdataFields(BioAssaySet source)

rawField

private BfsExporterPlugin.ExtendedExportableField rawField(String property,
                                                           String title,
                                                           Type type,
                                                           Formula.AverageMethod averageMethod)

getReporterFields

public static Collection<BfsExporterPlugin.ExtendedExportableField> getReporterFields()

reporterField

private static BfsExporterPlugin.ExtendedExportableField reporterField(String property,
                                                                       String guiTitle,
                                                                       Type type,
                                                                       Formula.AverageMethod averageMethod)

getExtraValueFields

private Collection<BfsExporterPlugin.ExtendedExportableField> getExtraValueFields(DbControl dc,
                                                                                  BioAssaySet source)

getSpotFields

private Collection<BfsExporterPlugin.ExtendedExportableField> getSpotFields(BioAssaySet source)

getAssayFields

private List<BfsExporterPlugin.ExtendedExportableField> getAssayFields(DbControl dc,
                                                                       BioAssaySet source)

assayField

private BfsExporterPlugin.ExtendedExportableField assayField(String property,
                                                             String guiTitle,
                                                             Type type)

createFile

private File createFile(File dir,
                        String name)
                 throws IOException
Throws:
IOException

createFile

private File createFile(DbControl dc,
                        Directory dir,
                        String name)

getFileFormatParameter

public static PluginParameter<String> getFileFormatParameter()
Create a plug-in parameter that asks for the BFS subtype to use in the export.


getFileNameGeneratorParameter

public static PluginParameter<String> getFileNameGeneratorParameter()
Create a plug-in parameter that asks for the file name generation strategy.


2.17.2: 2011-06-17