\r
} else if(key.equalsIgnoreCase(AUTHOR_COLUMN)) {\r
normalExplicitRow.setAuthor(value);\r
- \r
+ \r
+ } else if(key.equalsIgnoreCase(REFERENCE_COLUMN)) {\r
+ normalExplicitRow.setReference(value);\r
+ \r
} else if(key.equalsIgnoreCase(NAME_STATUS_COLUMN)) {\r
normalExplicitRow.setNameStatus(value);\r
\r
String rankStr = taxonDataHolder.getRank();\r
String taxonNameStr = taxonDataHolder.getScientificName();\r
String authorStr = taxonDataHolder.getAuthor();\r
+ String referenceStr = taxonDataHolder.getReference();\r
String nameStatus = taxonDataHolder.getNameStatus();\r
Integer id = taxonDataHolder.getId();\r
UUID cdmUuid = taxonDataHolder.getCdmUuid();\r
}\r
\r
//taxon\r
- taxonBase = createTaxon(state, rank, taxonNameStr, authorStr, nameStatus);\r
+ taxonBase = createTaxon(state, rank, taxonNameStr, authorStr, referenceStr, nameStatus);\r
}else{\r
return;\r
}\r
*/\r
@Override\r
protected void secondPass(TaxonExcelImportState state) {\r
- System.out.println(state.getCurrentLine());\r
+ if (logger.isDebugEnabled()){logger.debug(state.getCurrentLine());}\r
try {\r
NormalExplicitRow taxonDataHolder = state.getCurrentRow();\r
String taxonNameStr = taxonDataHolder.getScientificName();\r
}else{\r
//TODO error handling for class cast\r
Taxon parentTaxon = CdmBase.deproxy(state.getTaxonBase(parentId), Taxon.class);\r
- if (CdmUtils.isNotEmpty(taxonNameStr)) {\r
+ if (StringUtils.isNotBlank(taxonNameStr)) {\r
TaxonBase<?> taxonBase = state.getTaxonBase(childId);\r
nameUsedInSource = taxonBase.getName();\r
nameStatus = CdmUtils.Nz(nameStatus).trim().toLowerCase();\r
if (parentTaxon != null) {\r
//Taxon taxon = (Taxon)state.getTaxonBase(childId);\r
\r
- Reference<?> citation = state.getConfig().getSourceReference();\r
+ Reference<?> sourceRef = state.getConfig().getSourceReference();\r
String microCitation = null;\r
Taxon childTaxon = taxon;\r
- makeParent(state, parentTaxon, childTaxon, citation, microCitation);\r
+ makeParent(state, parentTaxon, childTaxon, sourceRef, microCitation);\r
getTaxonService().saveOrUpdate(parentTaxon);\r
} else {\r
String message = "Taxonomic parent not found for " + taxonNameStr;\r
}\r
}\r
\r
- if (acceptedTaxon == null && (CdmUtils.isNotEmpty(commonNameStr) ||taxonDataHolder.getFeatures().size() > 0 )){\r
+ if (acceptedTaxon == null && (StringUtils.isNotBlank(commonNameStr) ||taxonDataHolder.getFeatures().size() > 0 )){\r
String message = "Accepted taxon could not be found. Can't add additional data (common names, descriptive data, ...) to taxon";\r
fireWarningEvent(message, state, 6);\r
}else{ \r
//common names\r
- if (CdmUtils.isNotEmpty(commonNameStr)){ // add common name to taxon\r
+ if (StringUtils.isNotBlank(commonNameStr)){ // add common name to taxon\r
handleCommonName(state, taxonNameStr, commonNameStr, acceptedTaxon);\r
}\r
\r
td.addElement(mediaHolder);\r
}\r
try {\r
- Media media = getImageMedia(imageUrl, READ_MEDIA_DATA, false);\r
+ Media media = getImageMedia(imageUrl, READ_MEDIA_DATA);\r
mediaHolder.addMedia(media);\r
} catch (MalformedURLException e) {\r
logger.warn("Can't add media: " + e.getMessage());\r
String value = sourceMap.get(type);\r
if (type.equals(SourceType.Author)){\r
TeamOrPersonBase<?> author = getAuthorAccordingToConfig(value, state);\r
- ref.setAuthorTeam(author);\r
+ ref.setAuthorship(author);\r
}else if (type.equals(SourceType.Title)) {\r
ref.setTitle(value);\r
}else if (type.equals(SourceType.Year)) {\r
private Map<String, UUID> authorMapping = new HashMap<String, UUID>();\r
private Map<UUID, TeamOrPersonBase> authorStore = new HashMap<UUID, TeamOrPersonBase>();\r
\r
- private TeamOrPersonBase getAuthorAccordingToConfig(String value, TaxonExcelImportState state) {\r
- TeamOrPersonBase result = null;\r
+ private TeamOrPersonBase<?> getAuthorAccordingToConfig(String value, TaxonExcelImportState state) {\r
+ TeamOrPersonBase<?> result = null;\r
UUID authorUuid = authorMapping.get(value);\r
if (authorUuid != null){\r
result = authorStore.get(authorUuid);\r
}\r
if (result == null){\r
//TODO parsing\r
- TeamOrPersonBase author = Team.NewInstance();\r
+ TeamOrPersonBase<?> author = Team.NewInstance();\r
author.setTitleCache(value, true);\r
result = author; \r
authorStore.put(result.getUuid(), result);\r
* @param taxonNameStr\r
* @param authorStr\r
* @param nameStatus\r
+ * @param nameStatus2 \r
* @return\r
*/\r
private TaxonBase createTaxon(TaxonExcelImportState state, Rank rank,\r
- String taxonNameStr, String authorStr, String nameStatus) {\r
+ String taxonNameStr, String authorStr, String reference, String nameStatus) {\r
// Create the taxon name object depending on the setting of the nomenclatural code \r
// in the configurator (botanical code, zoological code, etc.) \r
if (StringUtils.isBlank(taxonNameStr)){\r
}\r
NomenclaturalCode nc = getConfigurator().getNomenclaturalCode();\r
\r
- TaxonBase taxonBase = null;\r
+ TaxonBase taxonBase;\r
\r
String titleCache = CdmUtils.concat(" ", taxonNameStr, authorStr);\r
if (! synonymMarkers.contains(nameStatus) && state.getConfig().isReuseExistingTaxaWhenPossible()){\r
if (taxonBase != null){\r
logger.info("Matching taxon/synonym found for " + titleCache);\r
}else {\r
- taxonBase = createTaxon(state, rank, taxonNameStr, authorStr, nameStatus, nc);\r
+ taxonBase = createTaxon(state, rank, taxonNameStr, authorStr, reference, nameStatus, nc);\r
}\r
return taxonBase;\r
}\r
* @param taxonNameStr\r
* @param authorStr\r
* @param nameStatus\r
+ * @param nameStatus2 \r
* @param nc\r
* @return\r
*/\r
private TaxonBase<?> createTaxon(TaxonExcelImportState state, Rank rank, String taxonNameStr, \r
- String authorStr, String nameStatus, NomenclaturalCode nc) {\r
+ String authorStr, String reference, String nameStatus, NomenclaturalCode nc) {\r
TaxonBase<?> taxonBase;\r
NonViralName<?> taxonNameBase = null;\r
if (nc == NomenclaturalCode.ICVCN){\r
logger.warn("ICVCN not yet supported");\r
\r
}else{\r
- taxonNameBase =(NonViralName) nc.getNewTaxonNameInstance(rank);\r
+ taxonNameBase =(NonViralName<?>) nc.getNewTaxonNameInstance(rank);\r
//NonViralName nonViralName = (NonViralName)taxonNameBase;\r
NonViralNameParserImpl parser = NonViralNameParserImpl.NewInstance();\r
taxonNameBase = parser.parseFullName(taxonNameStr, nc, rank);\r
\r
- taxonNameBase.setNameCache(taxonNameStr);\r
+ if (! taxonNameBase.getNameCache().equals(taxonNameStr)){\r
+ taxonNameBase.setNameCache(taxonNameStr, true);\r
+ }\r
\r
// Create the author\r
- if (CdmUtils.isNotEmpty(authorStr)) {\r
+ if (StringUtils.isNotBlank(authorStr)) {\r
try {\r
parser.parseAuthors(taxonNameBase, authorStr);\r
} catch (StringNotParsableException e) {\r
}\r
}\r
\r
- private void makeParent(TaxonExcelImportState state, Taxon parentTaxon, Taxon childTaxon, Reference citation, String microCitation){\r
- Reference sec = state.getConfig().getSourceReference();\r
+ private void makeParent(TaxonExcelImportState state, Taxon parentTaxon, Taxon childTaxon, Reference<?> citation, String microCitation){\r
+ Reference<?> sec = state.getConfig().getSourceReference();\r
\r
// Reference sec = parentTaxon.getSec();\r
Classification tree = state.getTree(sec);\r