Package net.sf.basedb.plugins
Class ReporterFlatFileImporter
java.lang.Object
net.sf.basedb.core.plugin.AbstractPlugin
net.sf.basedb.plugins.AbstractFlatFileImporter
net.sf.basedb.plugins.ReporterFlatFileImporter
- All Implemented Interfaces:
AutoDetectingImporter
,InteractivePlugin
,Plugin
,SignalTarget
,ConfigureByExample
- Direct Known Subclasses:
GtfReporterImporter
public class ReporterFlatFileImporter
extends AbstractFlatFileImporter
implements InteractivePlugin, ConfigureByExample
A plugin that imports reporter from a flat file.
- Version:
- 2.0
- Author:
- Nicklas
- Last modified
- $Date: 2019-03-21 12:50:52 +0100 (tors, 21 mars 2019) $
-
Nested Class Summary
Nested classes/interfaces inherited from interface net.sf.basedb.core.plugin.Plugin
Plugin.MainType
-
Field Summary
Modifier and TypeFieldDescriptionprivate List<PluginParameter<String>>
private ReporterBatcher
private RequestInformation
private RequestInformation
private boolean
private DbControl
private boolean
private static final PluginParameter<String>
private Mapper
private Map<ExtendedProperty,
Mapper> private boolean
private FlatFileParser
private static final Set<GuiContext>
private Mapper
private static final PluginParameter<String>
private Mapper
private boolean
private int
private int
private int
private int
private int
private int
private int
private static final StringParameterType
private static final Set<Permissions>
private static final PluginParameter<String>
protected static final PluginParameter<String>
private ReporterList
private PluginParameter<ReporterList>
private ReporterType
private static final PluginParameter<String>
private Mapper
private PluginParameter<ReporterType>
private Map<String,
ReporterType> private static final StringParameterType
private static final PluginParameter<String>
private Mapper
private static final PluginParameter<String>
private Mapper
private boolean
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
-
Method Summary
Modifier and TypeMethodDescriptionprotected void
begin
(FlatFileParser ffp) Create aDbControl
and aReporterBatcher
.protected void
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 ReporterBatcher and DbControl.private List<PluginParameter<String>>
getAllColumnMappings
(boolean reporterListContext) private RequestInformation
getConfigureJobParameters
(GuiContext context) private RequestInformation
getConfigurePluginParameters
(GuiContext context) Return a set containing the context:s [REPORTER, LIST], [REPORTERLIST, ITEM], [REPORTERSCORE, LIST].Request create, write and delete access to Reporter:s, write access to ReporterList:s and read access to File:s and ReporterType:s.private ReporterType
getReporterType
(String name) getRequestInformation
(GuiContext context, String command) TheRequest.COMMAND_CONFIGURE_PLUGIN
command will ask for parser regular expressions, column mappings and the reporter type.protected String
getSuccessMessage
(int skippedLines) Returnx new reporters; y updated reporters; z reporters added to list
.protected void
Called by the parser for every line in the file that is a data line.isInContext
(GuiContext context, Object item) Null if the context isItem.REPORTERLIST
and the item is aReporterList
.boolean
Return TRUE, since the implementation requires it for finding the regular expressions used by theFlatFileParser
.boolean
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, getInitializedFlatFileParser, getMainType, getMapper, getMapper, getNumberFormat, getNumBytes, getPattern, 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, isLogging, 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 Details
-
guiContexts
-
permissions
-
requiredColumnMapping
-
optionalColumnMapping
-
nameColumnMapping
-
reporterIdColumnMapping
-
descriptionColumnMapping
-
symbolColumnMapping
-
scoreColumnMapping
-
reporterTypeColumnMapping
-
reporterIsUsedErrorParameter
-
reporterTypeParameter
-
reporterListParameter
-
allColumnMappings
-
configurePlugin
-
configureJob
-
dc
-
batcher
-
idMapper
-
nameMapper
-
symbolMapper
-
descriptionMapper
-
scoreMapper
-
reporterTypeMapper
-
extendedMappers
-
reporterType
-
reporterTypes
-
reporterList
-
updateExisting
private boolean updateExisting -
createMissing
private boolean createMissing -
deleteMode
private boolean deleteMode -
numInserted
private int numInserted -
numUpdated
private int numUpdated -
numExists
private int numExists -
numAddedToList
private int numAddedToList -
numNotFound
private int numNotFound -
numUsed
private int numUsed -
numDeleted
private int numDeleted -
deferred
-
deleted
-
ffp
-
nullIfException
private boolean nullIfException -
failIfUsed
private boolean failIfUsed
-
-
Constructor Details
-
ReporterFlatFileImporter
public ReporterFlatFileImporter()Create a new importer.
-
-
Method Details
-
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
Request create, write and delete access to Reporter:s, write access to ReporterList:s and read access to File:s and ReporterType:s.- Specified by:
getPermissions
in interfacePlugin
- Overrides:
getPermissions
in classAbstractPlugin
- Returns:
- A collection of permissions or null to not use permissions
-
getGuiContexts
Return a set containing the context:s [REPORTER, LIST], [REPORTERLIST, ITEM], [REPORTERSCORE, LIST]. The first context is for importing reporters only, and the last two for importing reporters to a reporter list.- Specified by:
getGuiContexts
in interfaceInteractivePlugin
- Returns:
- A
Set
containingItem
:s, or null if the plugin is not concerned about items
-
isInContext
Null if the context isItem.REPORTERLIST
and the item is aReporterList
.- 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 user doesn't have write permission to the reporter list
-
getRequestInformation
public RequestInformation getRequestInformation(GuiContext context, String command) throws BaseException TheRequest.COMMAND_CONFIGURE_PLUGIN
command will ask for parser regular expressions, column mappings and the reporter type. TheRequest.COMMAND_CONFIGURE_JOB
command will ask for a file and if existing reporters should be updated or ignored.- 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
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
- Overrides:
begin
in classAbstractFlatFileImporter
- Throws:
BaseException
- See Also:
-
beginData
protected void beginData()Initialise columnMapper
:s.- Overrides:
beginData
in classAbstractFlatFileImporter
-
end
Close and commit/rollback the ReporterBatcher and DbControl.- Overrides:
end
in classAbstractFlatFileImporter
- Parameters:
success
- TRUE if the file was parsed successfully, FALSE otherwise- Throws:
BaseException
- See Also:
-
handleData
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
-
getSuccessMessage
Returnx new reporters; y updated reporters; z reporters added to list
.- Overrides:
getSuccessMessage
in classAbstractFlatFileImporter
- Parameters:
skippedLines
- The number of data lines that were skipped due to errors
-
getAllColumnMappings
-
getConfigureJobParameters
-
getConfigurePluginParameters
-
getReporterType
-