Class PhysicalBioAssayImporter
- java.lang.Object
-
- net.sf.basedb.core.plugin.AbstractPlugin
-
- net.sf.basedb.plugins.AbstractFlatFileImporter
-
- net.sf.basedb.plugins.batchimport.AbstractItemImporter<PhysicalBioAssay>
-
- net.sf.basedb.plugins.batchimport.PhysicalBioAssayImporter
-
- All Implemented Interfaces:
AutoDetectingImporter
,InteractivePlugin
,Plugin
,SignalTarget
,ConfigureByExample
public class PhysicalBioAssayImporter extends AbstractItemImporter<PhysicalBioAssay>
Plug-in for importing physical bioassays items in a batch. The plug-in can create new items and updated existing items.- Since:
- 3.0
- Author:
- nicklas
- Last modified
- $Date: 2019-03-21 08:45:42 +0100 (tors, 21 mars 2019) $
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface net.sf.basedb.core.plugin.Plugin
Plugin.MainType
-
-
Field Summary
Fields Modifier and Type Field Description protected static PluginParameter<String>
arraySlideColumnMapping
private Mapper
arraySlideMapper
private Mapper
createdMapper
private DefaultItemFunction<Hardware>
defaultHardwareFunction
private DefaultItemFunction<Protocol>
defaultProtocolFunction
private Mapper
descriptionMapper
protected static PluginParameter<String>
extractPositionColumnMapping
private Mapper
extractPositionMapper
private boolean
failIfMultiplePositions
private static Set<GuiContext>
guiContexts
protected static PluginParameter<String>
hardwareColumnMapping
private Mapper
hardwareMapper
private Mapper
kitMapper
private static PluginParameter<String>
multiplePositionsError
private Mapper
nameMapper
private Mapper
parentMapper
private Mapper
protocolMapper
private Mapper
registeredMapper
protected static PluginParameter<String>
sizeColumnMapping
private Mapper
sizeMapper
private Mapper
usedQuantityMapper
-
Fields inherited from class net.sf.basedb.plugins.batchimport.AbstractItemImporter
addMembersMode, createMode, defaultsSection, descriptionColumnMapping, externalIdColumnMapping, idAnnotationColumnMapping, identificationSection, internalIdColumnMapping, kitColumnMapping, nameColumnMapping, optionalColumnMapping, permissionTemplateColumnMapping, protocolColumnMapping, registeredColumnMapping, removeMembersMode, requiredColumnMapping, subtypeColumnMapping, updateMode
-
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 PhysicalBioAssayImporter()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
addMoreColumnMappingParameters(List<PluginParameter<?>> parameters)
Adds column mappings for name, externalId, description, protocol, creation date, original quantity, pooled, parent and used quantity from parent.protected void
addMoreErrorParameters(List<PluginParameter<?>> parameters)
Add extra parameters to the "Error handling" section that the subclass needs.protected void
createColumnMappers(FlatFileParser ffp, boolean cropStrings)
Create mappers that can be used to extract data values from the file that is currently being parsed by theffp
FlatFileParser
.protected PhysicalBioAssay
createItem(DbControl dc, FlatFileParser.Data data)
Create a new item and populate it with data from the current line.protected ItemQuery<PhysicalBioAssay>
createItemQuery()
CallsPhysicalBioAssay.getQuery()
.Set<GuiContext>
getGuiContexts()
Get a set containing all items that the plugin handles.protected IdMethod[]
getIdMethods()
protected Item
getItemForAnnotationTypes()
Enable annotations as item identifier.protected Item
getItemForSubtypes()
Does the importer want to use item subtypes when importing?protected void
updateItem(DbControl dc, PhysicalBioAssay pba, FlatFileParser.Data data)
Update an item with data from the current line.protected void
updateMultiLineItem(DbControl dc, PhysicalBioAssay pba, FlatFileParser.Data data, int multiLineNum)
Add parent extracts and the used quantities-
Methods inherited from class net.sf.basedb.plugins.batchimport.AbstractItemImporter
addMoreJobParameters, addMoreParsingParameters, begin, beginData, configure, createItemQuery, doneWithItem, end, findAnnotationTypeCategory, findArrayBatch, findArrayDesign, findArraySlide, findBioPlate, findBioPlateType, findBioSource, findBioSource, findBioWell, findDataFileType, findDerivedBioAssay, findExtract, findExtract, findFileServer, findHardware, findHardware, findHybridization, findItemSubtype, findItemSubtype, findKit, findLabeledExtract, findPermissionTemplate, findPhysicalBioAssay, findPlateGeometry, findPlatform, findProtocol, findProtocol, findRawDataType, findReferencedItem, findReferencedItemWithSubtype, findSample, findSample, findSoftware, findSoftware, findTag, findTag, findUnit, findVariant, getAnnotationIdMethods, getConfigureOptionsParameters, getConfigureParserParameters, getDefaultItemFunction, getIdMethod, getProjectDefaultPlatform, getProjectDefaultRawDataType, getProjectDefaultVariant, getRequestInformation, getSuccessMessage, handleData, initReferenceQuery, isInContext, parseDate, requiresConfiguration, setOrAddFile, setUpErrorHandling, supportsConfigurations, updateItemSubtype, updatePermissions
-
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, start, wrapInputStream
-
Methods inherited from class net.sf.basedb.core.plugin.AbstractPlugin
cloneParameterWithDefaultValue, closeLogFile, createLogFile, done, getCopyAnnotationsParmeter, getCurrentConfiguration, getCurrentJob, getJobOrConfigurationValue, getOverwriteAnnotationsParameters, getPermissions, 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, getPermissions, init, run
-
-
-
-
Field Detail
-
guiContexts
private static final Set<GuiContext> guiContexts
-
hardwareColumnMapping
protected static final PluginParameter<String> hardwareColumnMapping
-
arraySlideColumnMapping
protected static final PluginParameter<String> arraySlideColumnMapping
-
sizeColumnMapping
protected static final PluginParameter<String> sizeColumnMapping
-
extractPositionColumnMapping
protected static final PluginParameter<String> extractPositionColumnMapping
-
multiplePositionsError
private static final PluginParameter<String> multiplePositionsError
-
nameMapper
private Mapper nameMapper
-
descriptionMapper
private Mapper descriptionMapper
-
sizeMapper
private Mapper sizeMapper
-
createdMapper
private Mapper createdMapper
-
registeredMapper
private Mapper registeredMapper
-
protocolMapper
private Mapper protocolMapper
-
defaultProtocolFunction
private DefaultItemFunction<Protocol> defaultProtocolFunction
-
hardwareMapper
private Mapper hardwareMapper
-
defaultHardwareFunction
private DefaultItemFunction<Hardware> defaultHardwareFunction
-
kitMapper
private Mapper kitMapper
-
parentMapper
private Mapper parentMapper
-
usedQuantityMapper
private Mapper usedQuantityMapper
-
extractPositionMapper
private Mapper extractPositionMapper
-
arraySlideMapper
private Mapper arraySlideMapper
-
failIfMultiplePositions
private boolean failIfMultiplePositions
-
-
Method Detail
-
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.- Returns:
- A
Set
containingItem
:s, or null if the plugin is not concerned about items
-
getIdMethods
protected IdMethod[] getIdMethods()
Useable methods are:- Overrides:
getIdMethods
in classAbstractItemImporter<PhysicalBioAssay>
-
getItemForSubtypes
protected Item getItemForSubtypes()
Description copied from class:AbstractItemImporter
Does the importer want to use item subtypes when importing? If this method returns a non-null, this class will add a parameter in the "Item identification" section that makes it possible to select which subtypes the importer should use to limit the search for existing items. The default implementation returns null.- Overrides:
getItemForSubtypes
in classAbstractItemImporter<PhysicalBioAssay>
- Returns:
- An Item or null
-
getItemForAnnotationTypes
protected Item getItemForAnnotationTypes()
Enable annotations as item identifier.- Overrides:
getItemForAnnotationTypes
in classAbstractItemImporter<PhysicalBioAssay>
- Returns:
- An Item or null
-
addMoreColumnMappingParameters
protected void addMoreColumnMappingParameters(List<PluginParameter<?>> parameters)
Adds column mappings for name, externalId, description, protocol, creation date, original quantity, pooled, parent and used quantity from parent.- Overrides:
addMoreColumnMappingParameters
in classAbstractItemImporter<PhysicalBioAssay>
- Parameters:
parameters
- The list of parameters to add the column mapping parameters to
-
addMoreErrorParameters
protected void addMoreErrorParameters(List<PluginParameter<?>> parameters)
Description copied from class:AbstractItemImporter
Add extra parameters to the "Error handling" section that the subclass needs. This method is called during configuration of the plug-in and the default implementation does nothing.- Overrides:
addMoreErrorParameters
in classAbstractItemImporter<PhysicalBioAssay>
- Parameters:
parameters
- The list of parameters to add the column mapping parameters to
-
createItemQuery
protected ItemQuery<PhysicalBioAssay> createItemQuery()
CallsPhysicalBioAssay.getQuery()
.- Specified by:
createItemQuery
in classAbstractItemImporter<PhysicalBioAssay>
- Returns:
- A query
-
createColumnMappers
protected void createColumnMappers(FlatFileParser ffp, boolean cropStrings)
Description copied from class:AbstractItemImporter
Create mappers that can be used to extract data values from the file that is currently being parsed by theffp
FlatFileParser
. This method is called during initialisation of the plug-in when theFlatFileParser.parseHeaders()
has successfully found the start of data. Use theAbstractFlatFileImporter.getMapper(FlatFileParser, String, Integer, Mapper)
to create column mappers. Example:nameMapper = getMapper(ffp, job.getValue("nameColumnMapping"), cropStrings ? Nameable.MAX_NAME_LENGTH : null, null);
- Overrides:
createColumnMappers
in classAbstractItemImporter<PhysicalBioAssay>
- Parameters:
ffp
- The parser that is parsing the data filecropStrings
- If strings that are too long to fit in the database should be cropped or not (=generate an error)
-
createItem
protected PhysicalBioAssay createItem(DbControl dc, FlatFileParser.Data data)
Description copied from class:AbstractItemImporter
Create a new item and populate it with data from the current line. Do not callDbControl.saveItem(BasicItem)
. This is done automatically by the core implementation.BioSource bs = BioSource.getNew(dc); // Set properties. See example on updateItem method return bs;
If the current data line doesn't have data for all required properties, this method should throw an
InvalidUseOfNullException
exception.This method is called during import when current item can be found and if the user has selected to create missing item.
- Specified by:
createItem
in classAbstractItemImporter<PhysicalBioAssay>
- Parameters:
dc
- The DbControl to use for database accessdata
- The current data line- Returns:
- A new item
-
updateItem
protected void updateItem(DbControl dc, PhysicalBioAssay pba, FlatFileParser.Data data)
Description copied from class:AbstractItemImporter
Update an item with data from the current line. Example:if (nameMapper != null) item.setName(nameMapper.getValue(data)); if (descriptionMapper != null) item.setDescription(descriptionMapper.getValue(data)); ...
This method is called during import to update an existing item.- Specified by:
updateItem
in classAbstractItemImporter<PhysicalBioAssay>
- Parameters:
dc
- The DbControl to use for database accesspba
- The item to updatedata
- The current data line
-
updateMultiLineItem
protected void updateMultiLineItem(DbControl dc, PhysicalBioAssay pba, FlatFileParser.Data data, int multiLineNum)
Add parent extracts and the used quantities- Overrides:
updateMultiLineItem
in classAbstractItemImporter<PhysicalBioAssay>
- Parameters:
dc
- The DbControl to use for database accesspba
- The item to updatedata
- The current data linemultiLineNum
- The number of the multi-line entry, starting with 1 for the first multi-line
-
-