Package net.sf.basedb.plugins
Class PrintMapFlatFileImporter
- java.lang.Object
-
- net.sf.basedb.core.plugin.AbstractPlugin
-
- net.sf.basedb.plugins.AbstractFlatFileImporter
-
- net.sf.basedb.plugins.PrintMapFlatFileImporter
-
- All Implemented Interfaces:
AutoDetectingImporter
,InteractivePlugin
,Plugin
,SignalTarget
public class PrintMapFlatFileImporter extends AbstractFlatFileImporter implements InteractivePlugin
A plugin that imports anArrayDesign
from a printmap. The formats supported are TAM and MwBr- Version:
- 2.0
- Author:
- Enell
- Last modified
- $Date: 2019-03-20 14:31:03 +0100 (ons, 20 mars 2019) $
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description 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
Fields Modifier and Type Field Description 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
complexMappings, dataFooterRegexpParameter, dataHeaderRegexpParameter, dataSplitterRegexpParameter, defaultErrorParameter, errorSection, excelSheetParameter, 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
Constructors Constructor Description PrintMapFlatFileImporter()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
begin(FlatFileParser ffp)
Create aDbControl
and aFeatureBatcher
.void
configure(GuiContext context, Request request, Response response)
Store configuration settings forRequest.COMMAND_CONFIGURE_PLUGIN
andRequest.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)
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)
TheRequest.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 aArrayDesign
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 theFlatFileParser
.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, getDateFormatter, getDecimalSeparator, getErrorHandler, getErrorOption, getFileIterator, getMainType, getMapper, getMapper, getNumberFormat, getNumBytes, getPattern, getProgress, getSignalHandler, getTimestampFormatter, getTotalFileSize, isImportable, log, log, log, log, run, setUpErrorHandling, start, wrapInputStream
-
Methods inherited from class net.sf.basedb.core.plugin.AbstractPlugin
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
-
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
-
-
Method Detail
-
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 interfacePlugin
- Overrides:
supportsConfigurations
in classAbstractPlugin
- 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 theFlatFileParser
. If this method is overridden and returns FALSE, the subclass must also override theAbstractFlatFileImporter.getInitializedFlatFileParser()
method and provide a parser with all regular expressions and other options set.- Specified by:
requiresConfiguration
in interfacePlugin
- Overrides:
requiresConfiguration
in classAbstractFlatFileImporter
- 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 interfacePlugin
- Overrides:
getPermissions
in classAbstractPlugin
- 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 aArrayDesign
that doesn't already have any features and isn't an affy design.- Specified by:
isInContext
in interfaceInteractivePlugin
- Parameters:
context
- The current context of the client application, it is one of the values found in set returned byInteractivePlugin.getGuiContexts()
item
- The currently active item, it's type should match theGuiContext.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 containingItem.REPORTER
. This information is used by client applications to put the plugin in the proper place in the user interface.- Specified by:
getGuiContexts
in interfaceInteractivePlugin
- Returns:
- A
Set
containingItem
:s, or null if the plugin is not concerned about items
-
getRequestInformation
public RequestInformation getRequestInformation(GuiContext context, String command) throws BaseException
TheRequest.COMMAND_CONFIGURE_PLUGIN
command will ask for parser regular expressions and column mappings. TheRequest.COMMAND_CONFIGURE_JOB
command will ask for a file and the array design that features should be added to.- Specified by:
getRequestInformation
in interfaceInteractivePlugin
- Parameters:
command
- the command for the requestcontext
- The current context of the client application, it is one of the values found in set returned byInteractivePlugin.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 forRequest.COMMAND_CONFIGURE_PLUGIN
andRequest.COMMAND_CONFIGURE_JOB
.- Specified by:
configure
in interfaceInteractivePlugin
- Parameters:
context
- The current context of the client application, it is one of the values found in set returned byInteractivePlugin.getGuiContexts()
request
- Request object with the command and parametersresponse
- 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 classAbstractFlatFileImporter
- 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
- Overrides:
begin
in classAbstractFlatFileImporter
- 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 classAbstractFlatFileImporter
- 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 classAbstractFlatFileImporter
- 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 classAbstractFlatFileImporter
- 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 theAbstractFlatFileImporter.begin(FlatFileParser)
method here. Note that this metod is called once for every file returned by theAbstractFlatFileImporter.getFileIterator()
iterator.- Overrides:
end
in classAbstractFlatFileImporter
- 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 byAbstractFlatFileImporter.getFileIterator()
.- Overrides:
getSuccessMessage
in classAbstractFlatFileImporter
- 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 theAbstractPlugin.job
orAbstractPlugin.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 theAbstractFlatFileImporter.getFileIterator()
and that a new parser is needed for each file.- Overrides:
getInitializedFlatFileParser
in classAbstractFlatFileImporter
- 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
-
-