2.17.2: 2011-06-17

net.sf.basedb.plugins
Class PlateFlatFileImporter

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

public class PlateFlatFileImporter
extends AbstractFlatFileImporter
implements InteractivePlugin, ConfigureByExample

Version:
2.0
Author:
Enell
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  List<PluginParameter<String>> allColumnMappings
           
private static PluginParameter<String> barcodeColumnMapping
           
private  Mapper barcodeMapper
           
private static PluginParameter<String> columnColumnMapping
           
private  Mapper columnMapper
           
private  RequestInformation configureJob
           
private  RequestInformation configurePlugin
           
private  DbControl dc
           
private  boolean errorIfNotFound
           
private  FlatFileParser ffp
           
private static Set<GuiContext> guiContexts
           
protected static PluginParameter<String> missingReporterErrorParameter
           
private static PluginParameter<String> nameColumnMapping
           
private  Mapper nameMapper
           
private  PluginParameter<Integer> namePaddingParameter
           
private  int numPlates
           
private  int numWells
           
private static Set<Permissions> permissions
           
private  Integer plateNamePadding
           
private  String plateNamePrefix
           
private  PluginParameter<String> plateNamePrefixParameter
           
private  HashMap<String,Plate> plates
           
private  PlateType plateType
           
private  PluginParameter<PlateType> plateTypeParameter
           
private  ItemParameterType<PlateType> plateTypeType
           
private  ReporterBatcher reporterBatcher
           
private static PluginParameter<String> reporterColumnMapping
           
private  Mapper reporterMapper
           
private  String reporterPrefix
           
private  PluginParameter<String> reporterPrefixParameter
           
private static PluginParameter<String> rowColumnMapping
           
private  Mapper rowMapper
           
 
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
PlateFlatFileImporter()
           
 
Method Summary
protected  void begin(FlatFileParser ffp)
          Create a DbControl and a RawDataBatcher.
protected  void beginData()
          Initialise column Mapper:s.
 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 and DbControl.
 About getAbout()
          Get information about the plugin, such as name, version, authors, etc.
private  List<PluginParameter<String>> getAllColumnMappings()
           
private  RequestInformation getConfigureJobParameters(GuiContext context)
           
private  RequestInformation getConfigurePluginParameters(GuiContext context)
           
 Set<GuiContext> getGuiContexts()
          Get a set containing all items that the plugin handles.
 Collection<Permissions> getPermissions()
          Request create access to Plate:s, use access to PlateType:s and read access to Reporter:s, PlateGeometry: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)
          Return x plates inserted.
protected  void handleData(FlatFileParser.Data data)
          Called by the parser for every line in the file that is a data line.
 String isInContext(GuiContext context, Object item)
          Always null, since plugin doesn't operate on individual items.
 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, getInitializedFlatFileParser, 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

columnColumnMapping

private static final PluginParameter<String> columnColumnMapping

rowColumnMapping

private static final PluginParameter<String> rowColumnMapping

reporterColumnMapping

private static final PluginParameter<String> reporterColumnMapping

nameColumnMapping

private static final PluginParameter<String> nameColumnMapping

barcodeColumnMapping

private static final PluginParameter<String> barcodeColumnMapping

plateNamePrefixParameter

private PluginParameter<String> plateNamePrefixParameter

reporterPrefixParameter

private PluginParameter<String> reporterPrefixParameter

namePaddingParameter

private PluginParameter<Integer> namePaddingParameter

missingReporterErrorParameter

protected static final PluginParameter<String> missingReporterErrorParameter

plateTypeType

private ItemParameterType<PlateType> plateTypeType

plateTypeParameter

private PluginParameter<PlateType> plateTypeParameter

allColumnMappings

private List<PluginParameter<String>> allColumnMappings

configurePlugin

private RequestInformation configurePlugin

configureJob

private RequestInformation configureJob

dc

private DbControl dc

ffp

private FlatFileParser ffp

numPlates

private int numPlates

numWells

private int numWells

plateType

private PlateType plateType

plateNamePrefix

private String plateNamePrefix

plateNamePadding

private Integer plateNamePadding

reporterPrefix

private String reporterPrefix

reporterMapper

private Mapper reporterMapper

nameMapper

private Mapper nameMapper

barcodeMapper

private Mapper barcodeMapper

rowMapper

private Mapper rowMapper

columnMapper

private Mapper columnMapper

reporterBatcher

private ReporterBatcher reporterBatcher

errorIfNotFound

private boolean errorIfNotFound

plates

private HashMap<String,Plate> plates
Constructor Detail

PlateFlatFileImporter

public PlateFlatFileImporter()
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 access to Plate:s, use access to PlateType:s and read access to Reporter:s, PlateGeometry: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

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)
Always null, since plugin doesn't operate on individual items.

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
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 what PlateType the plates in the file has.

Specified by:
getRequestInformation in interface InteractivePlugin
Parameters:
command -
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

begin

protected void begin(FlatFileParser ffp)
              throws BaseException
Create a DbControl and a RawDataBatcher. Load the RawBioAssay that has been specified.

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

beginData

protected void beginData()
Initialise column Mapper:s.

Overrides:
beginData in class AbstractFlatFileImporter

end

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

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

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

getSuccessMessage

protected String getSuccessMessage(int skippedLines)
Return x plates inserted.

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

getConfigurePluginParameters

private RequestInformation getConfigurePluginParameters(GuiContext context)

getConfigureJobParameters

private RequestInformation getConfigureJobParameters(GuiContext context)

getAllColumnMappings

private List<PluginParameter<String>> getAllColumnMappings()

2.17.2: 2011-06-17