2.17.2: 2011-06-17

net.sf.basedb.plugins
Class PrintMapFlatFileImporter

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

public class PrintMapFlatFileImporter
extends AbstractFlatFileImporter
implements InteractivePlugin

A plugin that imports an ArrayDesign from a printmap. The formats supported are TAM and MwBr

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

Nested Class Summary
private static class PrintMapFlatFileImporter.FormatType
           
private static class PrintMapFlatFileImporter.MetaBlock
           
private static class PrintMapFlatFileImporter.Section
           
 
Nested classes/interfaces inherited from interface net.sf.basedb.core.plugin.Plugin
Plugin.MainType
 
Field Summary
private static About about
           
private  ArrayDesign arrayDesign
           
private  PluginParameter<ArrayDesign> arrayDesignParameter
           
private  ItemParameterType<ArrayDesign> arrayDesignType
           
private  FeatureBatcher batcher
           
private  Map<BlockInfo,ArrayDesignBlock> blocks
           
private  RequestInformation configureJob
           
private  DbControl dc
           
private  int expectedNumBlocks
           
private  PrintMapFlatFileImporter.FormatType formatType
           
private static Set<GuiContext> guiContexts
           
private  Map<Integer,PrintMapFlatFileImporter.MetaBlock> metaBlocks
           
protected static PluginParameter<String> missingWellErrorParameter
           
private  int numBlocks
           
private  int numFeatures
           
private static Set<Permissions> permissions
           
private  FileSetMember printMapMember
           
private  PrintMapFlatFileImporter.Section section
           
private  int spotSize
           
 
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
PrintMapFlatFileImporter()
           
 
Method Summary
protected  void begin(FlatFileParser ffp)
          Create a DbControl and a FeatureBatcher.
 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)
          Called just after the last line of the file has been parsed, or immediately after an error has ocurred.
private  Well findWell(int platePosition, int row, int column)
           
 About getAbout()
          Get information about the plugin, such as name, version, authors, etc.
private  RequestInformation getConfigureJobParameters(GuiContext context)
           
 Set<GuiContext> getGuiContexts()
          Get a set containing all items that the plugin handles.
protected  FlatFileParser getInitializedFlatFileParser()
          Create and initialise a flat file parser by setting all regular expressions and other options.
 Collection<Permissions> getPermissions()
          Request write access to ArrayDesign:s, read access to Plate:s, Reporter:s, DataFileType:s, Platform:s and File:s.
 RequestInformation getRequestInformation(GuiContext context, String command)
          The Request.COMMAND_CONFIGURE_PLUGIN command will ask for parser regular expressions and column mappings.
protected  String getSuccessMessage(int skippedLines)
          Called if the parsing was successful to let the subclass generate a simple message that is sent back to the core and user interface.
protected  void handleData(FlatFileParser.Data data)
          Called by the parser for every line in the file that is a data line.
protected  void handleHeader(FlatFileParser.Line line)
          Called by the parser for every line in the file that is a header line.
protected  void handleSection(FlatFileParser.Line line)
          Called by the parser for every line in the file that is a section line.
protected  boolean isImportable(FlatFileParser ffp)
          Check that the file is a TAM or MwBr file.
 String isInContext(GuiContext context, Object item)
          Returns null if the item is a ArrayDesign that doesn't already have any features and isn't an affy design.
 boolean requiresConfiguration()
          Return TRUE, since the implementation requires it for finding the regular expressions used by the FlatFileParser.
private  void setBlockValue(PrintMapFlatFileImporter.MetaBlock block, FlatFileParser.Line line)
           
 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, beginData, checkColumnMapping, checkColumnMapping, continueWithNextFileAfterError, doImport, finish, getCharset, getCharset, getCharsetParameter, getDecimalSeparator, getDecimalSeparatorParameter, getErrorHandler, getErrorOption, getFileIterator, getMainType, getMapper, getNumberFormat, getNumBytes, getPrimaryLocationFilter, getProgress, getSignalHandler, getTotalFileSize, 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

missingWellErrorParameter

protected static final PluginParameter<String> missingWellErrorParameter

configureJob

private RequestInformation configureJob

dc

private DbControl dc

batcher

private FeatureBatcher batcher

blocks

private Map<BlockInfo,ArrayDesignBlock> blocks

metaBlocks

private Map<Integer,PrintMapFlatFileImporter.MetaBlock> metaBlocks

arrayDesign

private ArrayDesign arrayDesign

printMapMember

private FileSetMember printMapMember

arrayDesignType

private ItemParameterType<ArrayDesign> arrayDesignType

arrayDesignParameter

private PluginParameter<ArrayDesign> arrayDesignParameter

numFeatures

private int numFeatures

numBlocks

private int numBlocks

section

private PrintMapFlatFileImporter.Section section

formatType

private PrintMapFlatFileImporter.FormatType formatType

expectedNumBlocks

private int expectedNumBlocks

spotSize

private int spotSize
Constructor Detail

PrintMapFlatFileImporter

public PrintMapFlatFileImporter()
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 write access to ArrayDesign:s, read access to Plate:s, Reporter:s, DataFileType:s, Platform:s and File:s.

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

isInContext

public String isInContext(GuiContext context,
                          Object item)
Returns null if the item is a ArrayDesign that doesn't already have any features and isn't an affy design.

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

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

getRequestInformation

public RequestInformation getRequestInformation(GuiContext context,
                                                String command)
                                         throws BaseException
The Request.COMMAND_CONFIGURE_PLUGIN command will ask for parser regular expressions and column mappings. The Request.COMMAND_CONFIGURE_JOB command will ask for a file and the array design that features should be added to.

Specified by:
getRequestInformation in interface InteractivePlugin
Parameters:
command - the command for the request
context - The current context of the client application, it is one of the values found in set returned by InteractivePlugin.getGuiContexts()
Returns:
The RequestInformation for the command
Throws:
BaseException - if there is an error

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

isImportable

protected boolean isImportable(FlatFileParser ffp)
Check that the file is a TAM or MwBr file.

Overrides:
isImportable in class AbstractFlatFileImporter
Parameters:
ffp - The FlatFileParser object used to parse the file
Returns:
TRUE if a FormatName header is present and contains "TAM" or "MwBr", FALSE otherwise

begin

protected void begin(FlatFileParser ffp)
              throws BaseException
Create a DbControl and a FeatureBatcher. Check that the ArrayDesign doesn't already have features.

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

handleHeader

protected void handleHeader(FlatFileParser.Line line)
                     throws BaseException
Description copied from class: AbstractFlatFileImporter
Called by the parser for every line in the file that is a header line.

Overrides:
handleHeader in class AbstractFlatFileImporter
Throws:
BaseException

handleSection

protected void handleSection(FlatFileParser.Line line)
                      throws BaseException
Description copied from class: AbstractFlatFileImporter
Called by the parser for every line in the file that is a section line.

Overrides:
handleSection in class AbstractFlatFileImporter
Throws:
BaseException

handleData

protected void handleData(FlatFileParser.Data data)
                   throws BaseException
Description copied from class: AbstractFlatFileImporter
Called by the parser for every line in the file that is a data line.

Specified by:
handleData in class AbstractFlatFileImporter
Throws:
BaseException

end

protected void end(boolean success)
            throws BaseException
Description copied from class: AbstractFlatFileImporter
Called just after the last line of the file has been parsed, or immediately after an error has ocurred. A subclass should clean up any resources aquired in the AbstractFlatFileImporter.begin(FlatFileParser) method here. Note that this metod is called once for every file returned by the AbstractFlatFileImporter.getFileIterator() iterator.

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)
Description copied from class: AbstractFlatFileImporter
Called if the parsing 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 imported successfully. The default implementation always return null. Note that this method is called once for every file returned by AbstractFlatFileImporter.getFileIterator().

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)

findWell

private Well findWell(int platePosition,
                      int row,
                      int column)

setBlockValue

private void setBlockValue(PrintMapFlatFileImporter.MetaBlock block,
                           FlatFileParser.Line line)
                    throws BaseException
Throws:
BaseException

2.17.2: 2011-06-17