2.17.2: 2011-06-17

net.sf.basedb.plugins
Class ReporterMapFlatFileImporter

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

public class ReporterMapFlatFileImporter
extends AbstractFlatFileImporter
implements InteractivePlugin, ConfigureByExample

A plugin that imports features to an ArrayDesign from a flat file. The ArrayDesign will not have any connections to plates.

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  ArrayDesign arrayDesign
           
private  PluginParameter<ArrayDesign> arrayDesignParameter
           
private  ItemParameterType<ArrayDesign> arrayDesignType
           
private  FeatureBatcher batcher
           
private static PluginParameter<String> blockColumnMapping
           
private  Mapper blockMapper
           
private  Map<BlockInfo,ArrayDesignBlock> blocks
           
private static PluginParameter<String> columnColumnMapping
           
private  Mapper columnMapper
           
private  RequestInformation configureJob
           
private  RequestInformation configurePlugin
           
private  DbControl dc
           
protected static PluginParameter<String> duplicateFeatureErrorParameter
           
private  boolean errorIfNotFound
           
private static PluginParameter<String> featureIdColumnMapping
           
private static PluginParameter<String> featureIdentificationParameter
           
private  Mapper featureIdMapper
           
private  FlatFileParser ffp
           
private static Set<GuiContext> guiContexts
           
private static PluginParameter<String> metaGridXColumnMapping
           
private  Mapper metaGridXMapper
           
private static PluginParameter<String> metaGridYColumnMapping
           
private  Mapper metaGridYMapper
           
protected static PluginParameter<String> missingReporterErrorParameter
           
private  int numBlocks
           
private  int numFeatures
           
private static StringParameterType optionalColumnMapping
           
private static Set<Permissions> permissions
           
private static PluginParameter<String> positionColumnMapping
           
private  Mapper positionMapper
           
private  ReporterBatcher reporterBatcher
           
private static PluginParameter<String> reporterIdColumnMapping
           
private  FileSetMember reporterMapMember
           
private  Mapper reporterMapper
           
private static StringParameterType requiredColumnMapping
           
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
ReporterMapFlatFileImporter()
          Create a new importer.
 
Method Summary
protected  void begin(FlatFileParser ffp)
          Create a DbControl and a FeatureBatcher.
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 the FeatureBatcher 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()
          Return a set containing the element [ARRAYDESIGN, ITEM].
 Collection<Permissions> getPermissions()
          Request write access to ArrayDesign:s, read access to 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)
          Return x features inserted; y blocks 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)
          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.
 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

requiredColumnMapping

private static final StringParameterType requiredColumnMapping

optionalColumnMapping

private static final StringParameterType optionalColumnMapping

featureIdentificationParameter

private static final PluginParameter<String> featureIdentificationParameter

reporterIdColumnMapping

private static final PluginParameter<String> reporterIdColumnMapping

featureIdColumnMapping

private static final PluginParameter<String> featureIdColumnMapping

positionColumnMapping

private static final PluginParameter<String> positionColumnMapping

blockColumnMapping

private static final PluginParameter<String> blockColumnMapping

metaGridXColumnMapping

private static final PluginParameter<String> metaGridXColumnMapping

metaGridYColumnMapping

private static final PluginParameter<String> metaGridYColumnMapping

columnColumnMapping

private static final PluginParameter<String> columnColumnMapping

rowColumnMapping

private static final PluginParameter<String> rowColumnMapping

missingReporterErrorParameter

protected static final PluginParameter<String> missingReporterErrorParameter

duplicateFeatureErrorParameter

protected static final PluginParameter<String> duplicateFeatureErrorParameter

configurePlugin

private RequestInformation configurePlugin

configureJob

private RequestInformation configureJob

dc

private DbControl dc

batcher

private FeatureBatcher batcher

reporterBatcher

private ReporterBatcher reporterBatcher

reporterMapMember

private FileSetMember reporterMapMember

arrayDesign

private ArrayDesign arrayDesign

blocks

private Map<BlockInfo,ArrayDesignBlock> blocks

ffp

private FlatFileParser ffp

arrayDesignType

private ItemParameterType<ArrayDesign> arrayDesignType

arrayDesignParameter

private PluginParameter<ArrayDesign> arrayDesignParameter

allColumnMappings

private List<PluginParameter<String>> allColumnMappings

errorIfNotFound

private boolean errorIfNotFound

reporterMapper

private Mapper reporterMapper

featureIdMapper

private Mapper featureIdMapper

positionMapper

private Mapper positionMapper

blockMapper

private Mapper blockMapper

columnMapper

private Mapper columnMapper

rowMapper

private Mapper rowMapper

metaGridXMapper

private Mapper metaGridXMapper

metaGridYMapper

private Mapper metaGridYMapper

numFeatures

private int numFeatures

numBlocks

private int numBlocks
Constructor Detail

ReporterMapFlatFileImporter

public ReporterMapFlatFileImporter()
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 write access to ArrayDesign:s, read access to 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

getGuiContexts

public Set<GuiContext> getGuiContexts()
Return a set containing the element [ARRAYDESIGN, ITEM].

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)
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
Throws:
PermissionDeniedException - If the array design already has features or if the logged in user doesn't have write permission

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:
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)
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 FeatureBatcher. Check that the ArrayDesign doesn't already have features.

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

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
Close and commit/rollback the FeatureBatcher 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)

getSuccessMessage

protected String getSuccessMessage(int skippedLines)
Return x features inserted; y blocks inserted.

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

getAllColumnMappings

private List<PluginParameter<String>> getAllColumnMappings()

getConfigureJobParameters

private RequestInformation getConfigureJobParameters(GuiContext context)

getConfigurePluginParameters

private RequestInformation getConfigurePluginParameters(GuiContext context)

2.17.2: 2011-06-17