2.17.2: 2011-06-17

net.sf.basedb.plugins
Class PlateMappingImporter

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

public class PlateMappingImporter
extends AbstractFlatFileImporter
implements InteractivePlugin

Importer for plate mappings. It has a fixed file format:

Source plates=1
Source rows=3
Source columns=3
Destination plates=1
Destination rows=3
Destination columns=3
Source plate    Source row      Source column   Destination plate       Destination row Destination column
0       0       0       0       0       0
0       0       1       0       1       0
0       0       2       0       2       0
0       1       0       0       0       1
0       1       1       0       1       1
0       1       2       0       2       1
0       2       0       0       0       2
0       2       1       0       1       2
0       2       2       0       2       2

Version:
2.0
Author:
nicklas
Last modified
$Date: 2010-11-08 14:49:35 +0100 (Mon, 08 Nov 2010) $

Nested Class Summary
 
Nested classes/interfaces inherited from interface net.sf.basedb.core.plugin.Plugin
Plugin.MainType
 
Field Summary
private static About about
           
private  RequestInformation configureJob
           
private  DbControl dc
           
private static PluginParameter<String> descriptionParameter
           
private  Mapper destColumnMapper
           
private  Mapper destPlateMapper
           
private  Mapper destRowMapper
           
private  FlatFileParser ffp
           
private static Set<GuiContext> guiContexts
           
private static PluginParameter<String> nameParameter
           
private static Set<Permissions> permissions
           
private  PlateMapping pm
           
private static StringParameterType requiredStringParameter
           
private  Mapper sourceColumnMapper
           
private  Mapper sourcePlateMapper
           
private  Mapper sourceRowMapper
           
 
Fields inherited from class net.sf.basedb.plugins.AbstractFlatFileImporter
CHARSET, charsetType, complexMappings, dataFooterRegexpParameter, dataHeaderRegexpParameter, dataSplitterRegexpParameter, DECIMAL_SEPARATOR, decimalSeparatorType, defaultErrorParameter, errorSection, fileParameter, fileType, headerRegexpParameter, ignoreRegexpParameter, invalidUseOfNullErrorParameter, mappingSection, maxDataColumnsParameter, minDataColumnsParameter, numberFormatErrorParameter, numberOutOfRangeErrorParameter, numDataColumnsType, optionalRegexpType, parserSection, requiredRegexpType, sectionRegexpParameter, stringTooLongErrorParameter, trimQuotesParameter
 
Fields inherited from class net.sf.basedb.core.plugin.AbstractPlugin
annotationSection, configuration, COPY_ANNOTATIONS, job, OVERWRITE_ANNOTATIONS, sc
 
Constructor Summary
PlateMappingImporter()
          Create a new importer.
 
Method Summary
protected  void begin(FlatFileParser ffp)
          Save reference to parser.
protected  void beginData()
          Create a DbControl and a new PlateMapping.
 void configure(GuiContext context, Request request, Response response)
          Store configuration settings for Request.COMMAND_CONFIGURE_PLUGIN and Request.COMMAND_CONFIGURE_JOB.
protected  void end(boolean success)
          Close and commit/rollback the DbControl.
private  PlateGeometry findGeometry(DbControl dc, int rows, int columns)
           
 About getAbout()
          Get information about the plugin, such as name, version, authors, etc.
private  RequestInformation getConfigureJobParameters(GuiContext context)
           
 Set<GuiContext> getGuiContexts()
          Return a set containing the context:s [PLATEMAPPING, LIST].
protected  FlatFileParser getInitializedFlatFileParser()
          Create and initialise a flat file parser by setting all regular expressions and other options.
 Collection<Permissions> getPermissions()
          Request create and write access to PlateMapping:s, create and use access to PlateGeometries and read access to File:s.
 RequestInformation getRequestInformation(GuiContext context, String command)
          This method will return the RequestInformation for a given command, i.e.
protected  String getSuccessMessage(int skippedLines)
          Return Platemapping 'name' created.
protected  void handleData(FlatFileParser.Data data)
          Add a mapping detail.
 String isInContext(GuiContext context, Object item)
          Always null.
 boolean requiresConfiguration()
          Return TRUE, since the implementation requires it for finding the regular expressions used by the FlatFileParser.
 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.plugins.AbstractFlatFileImporter
addErrorHandler, checkColumnMapping, checkColumnMapping, continueWithNextFileAfterError, doImport, finish, getCharset, getCharset, getCharsetParameter, getDecimalSeparator, getDecimalSeparatorParameter, getErrorHandler, getErrorOption, getFileIterator, getMainType, getMapper, getNumberFormat, getNumBytes, getPrimaryLocationFilter, getProgress, getSignalHandler, getTotalFileSize, handleHeader, handleSection, isImportable, isImportable, log, log, log, log, run, setUpErrorHandling, start, wrapInputStream
 
Methods inherited from class net.sf.basedb.core.plugin.AbstractPlugin
checkInterrupted, 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

about

private static final About about

guiContexts

private static final Set<GuiContext> guiContexts

permissions

private static final Set<Permissions> permissions

requiredStringParameter

private static final StringParameterType requiredStringParameter

configureJob

private RequestInformation configureJob

nameParameter

private static final PluginParameter<String> nameParameter

descriptionParameter

private static final PluginParameter<String> descriptionParameter

dc

private DbControl dc

pm

private PlateMapping pm

sourcePlateMapper

private Mapper sourcePlateMapper

sourceRowMapper

private Mapper sourceRowMapper

sourceColumnMapper

private Mapper sourceColumnMapper

destPlateMapper

private Mapper destPlateMapper

destRowMapper

private Mapper destRowMapper

destColumnMapper

private Mapper destColumnMapper

ffp

private FlatFileParser ffp
Constructor Detail

PlateMappingImporter

public PlateMappingImporter()
Create a new importer.

Method Detail

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: AbstractFlatFileImporter
Return TRUE, since the implementation requires it for finding the regular expressions used by the FlatFileParser. If this method is overridden and returns FALSE, the subclass must also override the AbstractFlatFileImporter.getInitializedFlatFileParser() method and provide a parser with all regular expressions and other options set.

Specified by:
requiresConfiguration in interface Plugin
Overrides:
requiresConfiguration in class AbstractFlatFileImporter
Returns:
TRUE or FALSE

getPermissions

public Collection<Permissions> getPermissions()
Request create and write access to PlateMapping:s, create and use access to PlateGeometries and read access to File:s.

Specified by:
getPermissions in interface Plugin
Overrides:
getPermissions in class AbstractPlugin
Returns:
A collection of permissions or null to not use permissions

getGuiContexts

public Set<GuiContext> getGuiContexts()
Return a set containing the context:s [PLATEMAPPING, LIST].

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)
Always null.

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

configure

public void configure(GuiContext context,
                      Request request,
                      Response response)
Store configuration settings for Request.COMMAND_CONFIGURE_PLUGIN and Request.COMMAND_CONFIGURE_JOB.

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

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

begin

protected void begin(FlatFileParser ffp)
              throws BaseException
Save reference to parser.

Overrides:
begin in class AbstractFlatFileImporter
Throws:
BaseException
See Also:
AbstractFlatFileImporter.end(boolean)

beginData

protected void beginData()
Create a DbControl and a new PlateMapping. Initialise column Mapper:s.

Overrides:
beginData in class AbstractFlatFileImporter

handleData

protected void handleData(FlatFileParser.Data data)
                   throws BaseException
Add a mapping detail.

Specified by:
handleData in class AbstractFlatFileImporter
Throws:
BaseException

end

protected void end(boolean success)
            throws BaseException
Close and commit/rollback the DbControl.

Overrides:
end in class AbstractFlatFileImporter
Parameters:
success - TRUE if the file was parsed successfully, FALSE otherwise
Throws:
BaseException
See Also:
AbstractFlatFileImporter.begin(FlatFileParser)

getSuccessMessage

protected String getSuccessMessage(int skippedLines)
Return Platemapping 'name' created..

Overrides:
getSuccessMessage in class AbstractFlatFileImporter
Parameters:
skippedLines - The number of data lines that were skipped due to errors

getInitializedFlatFileParser

protected FlatFileParser getInitializedFlatFileParser()
                                               throws BaseException
Description copied from class: AbstractFlatFileImporter
Create and initialise a flat file parser by setting all regular expressions and other options. This implementation gets all parameters from the AbstractPlugin.job or AbstractPlugin.configuration settings. If a subclass doesn't store the parameters there it must override this method and initialise the parser. Note that this method is called once for each file returned by the AbstractFlatFileImporter.getFileIterator() and that a new parser is needed for each file.

Overrides:
getInitializedFlatFileParser in class AbstractFlatFileImporter
Returns:
An intialised flat file parser
Throws:
BaseException

getConfigureJobParameters

private RequestInformation getConfigureJobParameters(GuiContext context)

findGeometry

private PlateGeometry findGeometry(DbControl dc,
                                   int rows,
                                   int columns)

2.17.2: 2011-06-17