public class ReporterFlatFileImporter extends AbstractFlatFileImporter implements InteractivePlugin, ConfigureByExample
Plugin.MainType
complexMappings, dataFooterRegexpParameter, dataHeaderRegexpParameter, dataSplitterRegexpParameter, defaultErrorParameter, errorSection, fileParameter, fileType, headerRegexpParameter, ignoreRegexpParameter, invalidUseOfNullErrorParameter, mappingSection, maxDataColumnsParameter, minDataColumnsParameter, numberFormatErrorParameter, numberOutOfRangeErrorParameter, numDataColumnsType, optionalRegexpType, parserSection, requiredRegexpType, sectionRegexpParameter, stringTooLongErrorParameter, trimQuotesParameter
annotationSection, configuration, COPY_ANNOTATIONS, job, OVERWRITE_ANNOTATIONS, sc
Constructor and Description |
---|
ReporterFlatFileImporter()
Create a new importer.
|
Modifier and Type | Method and Description |
---|---|
protected void |
begin(FlatFileParser ffp)
Create a
DbControl and a ReporterBatcher . |
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 ReporterBatcher and DbControl.
|
private List<PluginParameter<String>> |
getAllColumnMappings(boolean reporterListContext) |
private RequestInformation |
getConfigureJobParameters(GuiContext context) |
private RequestInformation |
getConfigurePluginParameters(GuiContext context) |
Set<GuiContext> |
getGuiContexts()
Return a set containing the context:s [REPORTER, LIST],
[REPORTERLIST, ITEM], [REPORTERSCORE, LIST].
|
Collection<Permissions> |
getPermissions()
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) |
RequestInformation |
getRequestInformation(GuiContext context,
String command)
The
Request.COMMAND_CONFIGURE_PLUGIN command will ask for
parser regular expressions, column mappings and the reporter type. |
protected String |
getSuccessMessage(int skippedLines)
Return
x new reporters; y updated reporters; z reporters added to list . |
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)
Null if the context is
Item.REPORTERLIST and the
item is a ReporterList . |
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.
|
addErrorHandler, checkColumnMapping, checkColumnMapping, continueWithNextFileAfterError, doImport, finish, getCharset, getCharset, getDecimalSeparator, getErrorHandler, getErrorOption, getFileIterator, getInitializedFlatFileParser, getMainType, getMapper, getMapper, getNumberFormat, getNumBytes, getProgress, getSignalHandler, getTotalFileSize, handleHeader, handleSection, isImportable, isImportable, log, log, log, log, run, setUpErrorHandling, start, wrapInputStream
cloneParameterWithDefaultValue, closeLogFile, createLogFile, done, getCopyAnnotationsParmeter, getCurrentConfiguration, getCurrentJob, getJobOrConfigurationValue, getOverwriteAnnotationsParameters, init, log, log, storeValue, storeValue, storeValues, validateRequestParameters
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
done, getMainType, init, run
private static final Set<GuiContext> guiContexts
private static final Set<Permissions> permissions
private static final StringParameterType requiredColumnMapping
private static final StringParameterType optionalColumnMapping
private static final PluginParameter<String> nameColumnMapping
private static final PluginParameter<String> reporterIdColumnMapping
private static final PluginParameter<String> descriptionColumnMapping
private static final PluginParameter<String> symbolColumnMapping
private static final PluginParameter<String> scoreColumnMapping
private static final PluginParameter<String> reporterTypeColumnMapping
protected static final PluginParameter<String> reporterIsUsedErrorParameter
private PluginParameter<ReporterType> reporterTypeParameter
private PluginParameter<ReporterList> reporterListParameter
private List<PluginParameter<String>> allColumnMappings
private RequestInformation configurePlugin
private RequestInformation configureJob
private DbControl dc
private ReporterBatcher batcher
private Mapper idMapper
private Mapper nameMapper
private Mapper symbolMapper
private Mapper descriptionMapper
private Mapper scoreMapper
private Mapper reporterTypeMapper
private Map<ExtendedProperty,Mapper> extendedMappers
private ReporterType reporterType
private Map<String,ReporterType> reporterTypes
private ReporterList reporterList
private boolean updateExisting
private boolean createMissing
private boolean deleteMode
private int numInserted
private int numUpdated
private int numExists
private int numAddedToList
private int numNotFound
private int numUsed
private int numDeleted
private FlatFileParser ffp
private NumberFormat numberFormat
private boolean nullIfException
private boolean failIfUsed
public ReporterFlatFileImporter()
public boolean supportsConfigurations()
AbstractPlugin
supportsConfigurations
in interface Plugin
supportsConfigurations
in class AbstractPlugin
public boolean requiresConfiguration()
AbstractFlatFileImporter
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.requiresConfiguration
in interface Plugin
requiresConfiguration
in class AbstractFlatFileImporter
public Collection<Permissions> getPermissions()
getPermissions
in interface Plugin
getPermissions
in class AbstractPlugin
public Set<GuiContext> getGuiContexts()
getGuiContexts
in interface InteractivePlugin
Set
containing Item
:s, or null
if the plugin is not concerned about itemspublic String isInContext(GuiContext context, Object item)
Item.REPORTERLIST
and the
item is a ReporterList
.isInContext
in interface InteractivePlugin
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
contextNull
if the plugin can use that item, or
a warning-level message explaining why the plugin can't be usedPermissionDeniedException
- If the user doesn't have write permission
to the reporter listpublic RequestInformation getRequestInformation(GuiContext context, String command) throws BaseException
Request.COMMAND_CONFIGURE_PLUGIN
command will ask for
parser regular expressions, column mappings and the reporter type.
The Request.COMMAND_CONFIGURE_JOB
command will ask for
a file and if existing reporters should be updated or ignored.getRequestInformation
in interface InteractivePlugin
context
- The current context of the client application,
it is one of the values found in set returned by InteractivePlugin.getGuiContexts()
command
- The commandRequestInformation
for the commandBaseException
- if there is an errorpublic void configure(GuiContext context, Request request, Response response)
Request.COMMAND_CONFIGURE_PLUGIN
and
Request.COMMAND_CONFIGURE_JOB
.configure
in interface InteractivePlugin
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 parametersresponse
- Response object in for the plugin to response
throughprotected void begin(FlatFileParser ffp) throws BaseException
begin
in class AbstractFlatFileImporter
BaseException
AbstractFlatFileImporter.end(boolean)
protected void beginData()
Mapper
:s.beginData
in class AbstractFlatFileImporter
protected void end(boolean success) throws BaseException
end
in class AbstractFlatFileImporter
success
- TRUE if the file was parsed successfully, FALSE otherwiseBaseException
AbstractFlatFileImporter.begin(FlatFileParser)
protected void handleData(FlatFileParser.Data data) throws BaseException
AbstractFlatFileImporter
handleData
in class AbstractFlatFileImporter
BaseException
protected String getSuccessMessage(int skippedLines)
x new reporters; y updated reporters; z reporters added to list
.getSuccessMessage
in class AbstractFlatFileImporter
skippedLines
- The number of data lines that were skipped due to errorsprivate List<PluginParameter<String>> getAllColumnMappings(boolean reporterListContext)
private RequestInformation getConfigureJobParameters(GuiContext context)
private RequestInformation getConfigurePluginParameters(GuiContext context)
private ReporterType getReporterType(String name)