Package net.sf.basedb.plugins
Class ReporterMapFlatFileImporter
- java.lang.Object
-
- net.sf.basedb.core.plugin.AbstractPlugin
-
- net.sf.basedb.plugins.AbstractFlatFileImporter
-
- net.sf.basedb.plugins.ReporterMapFlatFileImporter
-
- All Implemented Interfaces:
AutoDetectingImporter
,InteractivePlugin
,Plugin
,SignalTarget
,ConfigureByExample
- Direct Known Subclasses:
GtfReporterMapImporter
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: 2019-03-20 16:21:26 +0100 (ons, 20 mars 2019) $
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface net.sf.basedb.core.plugin.Plugin
Plugin.MainType
-
-
Field Summary
-
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 ReporterMapFlatFileImporter()
Create a new importer.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
begin(FlatFileParser ffp)
Create aDbControl
and aFeatureBatcher
.protected void
beginData()
Initialise columnMapper
:s.void
configure(GuiContext context, Request request, Response response)
Store configuration settings forRequest.COMMAND_CONFIGURE_PLUGIN
andRequest.COMMAND_CONFIGURE_JOB
.protected void
end(boolean success)
Close and commit/rollback the FeatureBatcher and DbControl.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)
TheRequest.COMMAND_CONFIGURE_PLUGIN
command will ask for parser regular expressions and column mappings.protected String
getSuccessMessage(int skippedLines)
Returnx 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 aArrayDesign
that doesn't already have any features and is using a supported platform/variant.boolean
requiresConfiguration()
Return TRUE, since the implementation requires it for finding the regular expressions used by theFlatFileParser
.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, getDateFormatter, getDecimalSeparator, getErrorHandler, getErrorOption, getFileIterator, getInitializedFlatFileParser, getMainType, getMapper, getMapper, getNumberFormat, getNumBytes, getPattern, getProgress, getSignalHandler, getTimestampFormatter, getTotalFileSize, handleHeader, handleSection, isImportable, 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
-
requiredColumnMapping
private static final StringParameterType requiredColumnMapping
-
optionalColumnMapping
private static final StringParameterType optionalColumnMapping
-
featureIdentificationParameter
protected static final PluginParameter<String> featureIdentificationParameter
-
reporterIdColumnMapping
protected static final PluginParameter<String> reporterIdColumnMapping
-
featureIdColumnMapping
protected static final PluginParameter<String> featureIdColumnMapping
-
positionColumnMapping
protected static final PluginParameter<String> positionColumnMapping
-
blockColumnMapping
protected static final PluginParameter<String> blockColumnMapping
-
metaGridXColumnMapping
protected static final PluginParameter<String> metaGridXColumnMapping
-
metaGridYColumnMapping
protected static final PluginParameter<String> metaGridYColumnMapping
-
columnColumnMapping
protected static final PluginParameter<String> columnColumnMapping
-
rowColumnMapping
protected 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
-
-
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 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
-
getGuiContexts
public Set<GuiContext> getGuiContexts()
Return a set containing the element [ARRAYDESIGN, ITEM].- Specified by:
getGuiContexts
in interfaceInteractivePlugin
- Returns:
- A
Set
containingItem
: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 aArrayDesign
that doesn't already have any features and is using a supported platform/variant.- 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- 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
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:
context
- The current context of the client application, it is one of the values found in set returned byInteractivePlugin.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 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
-
begin
protected void begin(FlatFileParser ffp) throws BaseException
- Overrides:
begin
in classAbstractFlatFileImporter
- Throws:
BaseException
- See Also:
AbstractFlatFileImporter.end(boolean)
-
beginData
protected void beginData()
Initialise columnMapper
:s.- Overrides:
beginData
in classAbstractFlatFileImporter
-
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
Close and commit/rollback the FeatureBatcher and DbControl.- 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)
Returnx features inserted; y blocks inserted
.- Overrides:
getSuccessMessage
in classAbstractFlatFileImporter
- 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)
-
-