import eu.etaxonomy.cdm.model.description.TextData;\r
import eu.etaxonomy.cdm.model.name.BotanicalName;\r
import eu.etaxonomy.cdm.model.name.HomotypicalGroup;\r
+import eu.etaxonomy.cdm.model.name.INonViralName;\r
import eu.etaxonomy.cdm.model.name.NameRelationshipType;\r
import eu.etaxonomy.cdm.model.name.NameTypeDesignation;\r
import eu.etaxonomy.cdm.model.name.NomenclaturalCode;\r
-import eu.etaxonomy.cdm.model.name.NonViralName;\r
import eu.etaxonomy.cdm.model.name.Rank;\r
import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;\r
import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignationStatus;\r
if (strGoto == null){\r
return "";\r
}\r
- String strGenusName = CdmBase.deproxy(taxon.getName(), NonViralName.class).getGenusOrUninomial();\r
+ String strGenusName = taxon.getName().getGenusOrUninomial();\r
strGoto = strGoto.replaceAll("\\([^\\(\\)]*\\)", ""); //replace all brackets\r
strGoto = strGoto.replaceAll("\\s+", " "); //replace multiple whitespaces by exactly one whitespace\r
\r
split[i] = strGenusName;\r
}\r
// if (isInfraSpecificMarker(single)){\r
-// String strSpeciesName = CdmBase.deproxy(taxon.getName(), NonViralName.class).getSpecificEpithet();\r
+// String strSpeciesName = taxon.getName().getSpecificEpithet();\r
// split[i] = strGenusName + " " + strSpeciesName + " ";\r
// }\r
result = (result + " " + split[i]).trim();\r
*/\r
//body/taxon/\r
private HomotypicalGroup handleNomTaxon(EfloraImportState state, Element elNom, Taxon taxon, HomotypicalGroup homotypicalGroup, boolean isSynonym) {\r
- NonViralName name = makeName(taxon, homotypicalGroup, isSynonym);\r
- String num = null;\r
+ INonViralName nvn = makeName(taxon, homotypicalGroup, isSynonym);\r
+ TaxonNameBase<?,?> name = TaxonNameBase.castAndDeproxy(nvn);\r
+ String num = null;\r
\r
boolean hasGenusInfo = false;\r
- TeamOrPersonBase lastTeam = null;\r
+ TeamOrPersonBase<?> lastTeam = null;\r
\r
//genus\r
List<Element> elGenus = XmlHelp.getAttributedChildListWithValue(elNom, "name", "class", "genus");\r
}\r
\r
\r
- private void handleQuestionMark(NonViralName name, Taxon taxon) {\r
+ private void handleQuestionMark(INonViralName name, Taxon taxon) {\r
int count = name.getTaxonBases().size();\r
if (count != 1){\r
logger.warn("Name has " + count + " taxa. This is not handled for question mark");\r
}else{\r
- TaxonBase taxonBase = (TaxonBase)name.getTaxonBases().iterator().next();\r
+ TaxonBase taxonBase = name.getTaxonBases().iterator().next();\r
taxonBase.setDoubtful(true);\r
}\r
}\r
\r
\r
//merge with handleNomTaxon\r
- private void handleHomonym(EfloraImportState state, Element elHomonym, NonViralName upperName) {\r
+ private void handleHomonym(EfloraImportState state, Element elHomonym, TaxonNameBase upperName) {\r
verifyNoAttribute(elHomonym);\r
\r
//hommonym name\r
}else{\r
upperName.addRelationshipToName(homonymName, relType, null);\r
}\r
-\r
}\r
\r
\r
}\r
\r
\r
- private void handleNameNote(NonViralName name, String value) {\r
+ private void handleNameNote(INonViralName name, String value) {\r
logger.warn("Name note: " + value + ". Available in portal?");\r
Annotation annotation = Annotation.NewInstance(value, AnnotationType.EDITORIAL(), Language.DEFAULT());\r
name.addAnnotation(annotation);\r
* @param name\r
* @param value\r
*/\r
- protected TeamOrPersonBase handleNameUsage(Taxon taxon, NonViralName<?> name, String referenceTitle, TeamOrPersonBase lastTeam) {\r
+ protected TeamOrPersonBase handleNameUsage(Taxon taxon, INonViralName name, String referenceTitle, TeamOrPersonBase lastTeam) {\r
Reference ref = ReferenceFactory.newGeneric();\r
referenceTitle = removeStartingSymbols(referenceTitle, ref);\r
\r
\r
TaxonDescription description = getDescription(taxon);\r
TextData textData = TextData.NewInstance(Feature.CITATION());\r
- textData.addSource(OriginalSourceType.PrimaryTaxonomicSource, null, null, ref, microReference, name, null);\r
+ textData.addSource(OriginalSourceType.PrimaryTaxonomicSource, null, null, ref, microReference, (TaxonNameBase)name, null);\r
description.addElement(textData);\r
return team;\r
}\r
* @param name\r
* @return\r
*/\r
- protected String parseHomonym(String detail, NonViralName name) {\r
+ protected String parseHomonym(String detail, TaxonNameBase name) {\r
String result;\r
if (detail == null){\r
return detail;\r
homonymName.setSpecificEpithet(name.getSpecificEpithet());\r
homonymName.setInfraSpecificEpithet(name.getInfraSpecificEpithet());\r
Reference homonymNomRef = ReferenceFactory.newGeneric();\r
- homonymNomRef.setTitleCache(homonymString);\r
+ homonymNomRef.setTitleCache(homonymString, true);\r
String homonymNomRefDetail = parseReferenceYearAndDetail(homonymNomRef);\r
homonymName.setNomenclaturalMicroReference(homonymNomRefDetail);\r
String authorTitle = homonymNomRef.getTitleCache();\r
* @param name\r
* @param value\r
*/\r
- protected TeamOrPersonBase handleNomenclaturalReference(NonViralName name, String value) {\r
+ protected TeamOrPersonBase handleNomenclaturalReference(TaxonNameBase name, String value) {\r
Reference nomRef = ReferenceFactory.newGeneric();\r
nomRef.setTitleCache(value, true);\r
parseNomStatus(nomRef, name);\r
name.setNomenclaturalReference(nomRef);\r
microReference = parseHomonym(microReference, name);\r
name.setNomenclaturalMicroReference(microReference);\r
- TeamOrPersonBase team = name.getCombinationAuthorship();\r
+ TeamOrPersonBase<?> team = name.getCombinationAuthorship();\r
if (team == null){\r
logger.warn("Name has nom. ref. but no author team. Name: " + name.getTitleCache() + ", Nom.Ref.: " + value);\r
}else{\r
return team;\r
}\r
\r
- private void handleInfrAuthor(EfloraImportState state, Element elAuthor, NonViralName name, boolean overwrite) {\r
+ private void handleInfrAuthor(EfloraImportState state, Element elAuthor, INonViralName name, boolean overwrite) {\r
String strAuthor = elAuthor.getValue().trim();\r
if (strAuthor.endsWith(",")){\r
strAuthor = strAuthor.substring(0, strAuthor.length() -1);\r
* @param infraRank\r
* @return\r
*/\r
- private Rank handleInfRank(NonViralName name, List<Element> elInfraRank, Rank infraRank) {\r
+ private Rank handleInfRank(INonViralName name, List<Element> elInfraRank, Rank infraRank) {\r
if (elInfraRank.size() == 1){\r
String strRank = elInfraRank.get(0).getTextNormalize();\r
try {\r
}\r
\r
\r
- private void handleInfrEpi(NonViralName<?> name, Rank infraRank, String value) {\r
+ private void handleInfrEpi(INonViralName name, Rank infraRank, String value) {\r
if (infraRank != null && infraRank.isInfraSpecific()){\r
name.setInfraSpecificEpithet(value);\r
if (CdmUtils.isCapital(value)){\r
* @param isSynonym\r
* @return\r
*/\r
- private NonViralName makeName(Taxon taxon,HomotypicalGroup homotypicalGroup, boolean isSynonym) {\r
- NonViralName name;\r
+ private TaxonNameBase makeName(Taxon taxon,HomotypicalGroup homotypicalGroup, boolean isSynonym) {\r
+ TaxonNameBase<?,?> name;\r
if (isSynonym){\r
name = BotanicalName.NewInstance(Rank.SPECIES(), homotypicalGroup);\r
SynonymType synonymType = SynonymType.HETEROTYPIC_SYNONYM_OF();\r
}\r
taxon.addSynonymName(name, synonymType);\r
}else{\r
- name = (NonViralName)taxon.getName();\r
+ name = taxon.getName();\r
}\r
return name;\r
}\r
* @param element\r
* @param taxon\r
*/\r
- private void handleInfraspecificEpithet(Element element, String attrValue, NonViralName<?> name) {\r
+ private void handleInfraspecificEpithet(Element element, String attrValue, INonViralName name) {\r
String value = element.getTextNormalize();\r
if (value.indexOf("subsp.") != -1){\r
//TODO genus and species epi\r
* @param element\r
* @param name\r
*/\r
- private void handleBasionymAuthor(EfloraImportState state, Element elBasionymAuthor, NonViralName name, boolean overwrite) {\r
+ private void handleBasionymAuthor(EfloraImportState state, Element elBasionymAuthor, INonViralName name, boolean overwrite) {\r
String strAuthor = elBasionymAuthor.getValue().trim();\r
Pattern reBasionymAuthor = Pattern.compile("^\\(.*\\)$");\r
if (reBasionymAuthor.matcher(strAuthor).matches()){\r
* @param name\r
* @param elNom\r
*/\r
- private void handleNameAuthors(Element elAuthor, NonViralName name) {\r
+ private void handleNameAuthors(Element elAuthor, INonViralName name) {\r
if (name.getCombinationAuthorship() != null){\r
logger.warn("Name already has a combination author. Name: " + name.getTitleCache() + ", Author: " + elAuthor.getTextNormalize());\r
}\r
* @param value\r
* @param taxonNameBase\r
*/\r
- private void handleSubGenus(String value, TaxonNameBase taxonNameBase) {\r
+ private void handleSubGenus(String value, INonViralName taxonNameBase) {\r
String name = value.replace("Subgenus", "").trim();\r
- ((NonViralName)taxonNameBase).setInfraGenericEpithet(name);\r
+ taxonNameBase.setInfraGenericEpithet(name);\r
}\r
\r
/**\r
* @param value\r
* @param taxonNameBase\r
*/\r
- private void handleSection(String value, TaxonNameBase taxonNameBase) {\r
+ private void handleSection(String value, INonViralName taxonNameBase) {\r
String name = value.replace("Section", "").trim();\r
- ((NonViralName)taxonNameBase).setInfraGenericEpithet(name);\r
+ taxonNameBase.setInfraGenericEpithet(name);\r
}\r
\r
/**\r
* @param value\r
* @param taxonNameBase\r
*/\r
- protected void handleGenus(String value, TaxonNameBase taxonName) {\r
+ protected void handleGenus(String value, INonViralName taxonName) {\r
Matcher matcher = rexGenusAuthor.matcher(value);\r
if (matcher.find()){\r
String author = matcher.group();\r
team.setTitleCache(author, true);\r
Credit credit = Credit.NewInstance(team, null);\r
taxonName.addCredit(credit);\r
-// NonViralName nvn = (NonViralName)taxonName;\r
-// nvn.setCombinationAuthorship(team);\r
-// nvn.setGenusOrUninomial(genus);\r
+// taxonName.setCombinationAuthorship(team);\r
+// taxonName.setGenusOrUninomial(genus);\r
}else{\r
logger.info("No Author match for " + value);\r
}\r
* @param ref\r
* @param nonViralName\r
*/\r
- protected void parseNomStatus(Reference ref, NonViralName nonViralName) {\r
+ protected void parseNomStatus(Reference ref, TaxonNameBase nonViralName) {\r
String titleToParse = ref.getTitleCache();\r
\r
String noStatusTitle = parser.parseNomStatus(titleToParse, nonViralName, true);\r
import eu.etaxonomy.cdm.model.description.TaxonDescription;\r
import eu.etaxonomy.cdm.model.description.TextData;\r
import eu.etaxonomy.cdm.model.name.HomotypicalGroup;\r
-import eu.etaxonomy.cdm.model.name.NonViralName;\r
+import eu.etaxonomy.cdm.model.name.INonViralName;\r
import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;\r
import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
import eu.etaxonomy.cdm.model.name.TypeDesignationBase;\r
*/\r
@Component\r
public class CentralAfricaEricaceaeTaxonImport extends EfloraTaxonImport {\r
- private static final Logger logger = Logger.getLogger(CentralAfricaEricaceaeTaxonImport.class);\r
+ private static final long serialVersionUID = 6442665916458420942L;\r
+ private static final Logger logger = Logger.getLogger(CentralAfricaEricaceaeTaxonImport.class);\r
\r
\r
-\r
-\r
- /* (non-Javadoc)\r
- * @see eu.etaxonomy.cdm.io.eflora.EfloraTaxonImport#handleNomenclaturalReference(eu.etaxonomy.cdm.model.name.NonViralName, java.lang.String)\r
- */\r
@Override\r
- protected TeamOrPersonBase handleNomenclaturalReference(NonViralName name, String value) {\r
+ protected TeamOrPersonBase handleNomenclaturalReference(TaxonNameBase name, String value) {\r
Reference nomRef = ReferenceFactory.newGeneric();\r
nomRef.setTitleCache(value, true);\r
parseNomStatus(nomRef, name);\r
microReference = parseHomonym(microReference, name);\r
name.setNomenclaturalMicroReference(microReference);\r
\r
- TeamOrPersonBase nameTeam = CdmBase.deproxy(name.getCombinationAuthorship(), TeamOrPersonBase.class);\r
- TeamOrPersonBase refTeam = nomRef.getAuthorship();\r
+ TeamOrPersonBase<?> nameTeam = CdmBase.deproxy(name.getCombinationAuthorship(), TeamOrPersonBase.class);\r
+ TeamOrPersonBase<?> refTeam = nomRef.getAuthorship();\r
if (nameTeam == null ){\r
logger.warn("Name has nom. ref. but no author team. Name: " + name.getTitleCache() + ", Nom.Ref.: " + value);\r
}else if (refTeam == null ){\r
* @param value\r
*/\r
@Override\r
- protected TeamOrPersonBase<?> handleNameUsage(Taxon taxon, NonViralName<?> name, String referenceTitle, TeamOrPersonBase lastTeam) {\r
+ protected TeamOrPersonBase<?> handleNameUsage(Taxon taxon, INonViralName name,\r
+ String referenceTitle, TeamOrPersonBase lastTeam) {\r
+\r
Reference ref = ReferenceFactory.newGeneric();\r
\r
ref.setTitleCache(referenceTitle, true);\r
// parseReferenceType(ref);\r
\r
TextData textData = TextData.NewInstance(Feature.CITATION());\r
- textData.addSource(OriginalSourceType.PrimaryTaxonomicSource, null, null, singleRef, microReference, name, null);\r
+ textData.addSource(OriginalSourceType.PrimaryTaxonomicSource, null, null, singleRef, microReference, (TaxonNameBase) name, null);\r
description.addElement(textData);\r
}\r
return team;\r
\r
}\r
\r
- protected TeamOrPersonBase getReferenceAuthor (Reference ref, NonViralName name) {\r
+ protected TeamOrPersonBase getReferenceAuthor (Reference ref, INonViralName name) {\r
String titleString = ref.getTitleCache();\r
String re = "\\(.*\\)";\r
Pattern pattern = Pattern.compile(re);\r
\r
}\r
\r
- private TeamOrPersonBase getAuthorTeam(String authorString, NonViralName name) {\r
+ private TeamOrPersonBase getAuthorTeam(String authorString, INonViralName name) {\r
//TODO atomize\r
// TeamOrPersonBase nameTeam = CdmBase.deproxy(name.getCombinationAuthorship(), TeamOrPersonBase.class);\r
// String nameTeamTitle = nameTeam == null ? "" : nameTeam.getNomenclaturalTitle();\r
}\r
\r
@Override\r
- protected void handleGenus(String value, TaxonNameBase taxonName) {\r
+ protected void handleGenus(String value, INonViralName taxonName) {\r
// do nothing\r
}\r
\r
import eu.etaxonomy.cdm.model.common.ExtensionType;\r
import eu.etaxonomy.cdm.model.common.TimePeriod;\r
import eu.etaxonomy.cdm.model.name.BotanicalName;\r
+import eu.etaxonomy.cdm.model.name.INonViralName;\r
import eu.etaxonomy.cdm.model.name.NameTypeDesignation;\r
import eu.etaxonomy.cdm.model.name.NameTypeDesignationStatus;\r
import eu.etaxonomy.cdm.model.name.NomenclaturalCode;\r
import eu.etaxonomy.cdm.model.name.NomenclaturalStatus;\r
import eu.etaxonomy.cdm.model.name.NomenclaturalStatusType;\r
-import eu.etaxonomy.cdm.model.name.NonViralName;\r
import eu.etaxonomy.cdm.model.name.Rank;\r
import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;\r
import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignationStatus;\r
if (StringUtils.isNotBlank(referenceString) || StringUtils.isNotBlank(volume) ||\r
StringUtils.isNotBlank(pages) || StringUtils.isNotBlank(illustrations) ||\r
StringUtils.isNotBlank(datePublishedString) || StringUtils.isNotBlank(paperTitle)){\r
- NonViralName<?> name = CdmBase.deproxy(taxonBase.getName(), NonViralName.class);\r
+ INonViralName name = taxonBase.getName();\r
Reference reference = ReferenceFactory.newGeneric();\r
reference.setAuthorship(name.getCombinationAuthorship());\r
reference.setTitle(referenceString);\r
reference.setVolume(volume);\r
reference.setEdition(part);\r
- Reference inrefernce = null;\r
+ Reference inreference = null;\r
//TODO parser\r
TimePeriod datePublished = TimePeriodParser.parseString(datePublishedString);\r
reference.setDatePublished(datePublished);\r
\r
TaxonBase<?> taxonBase = state.getRelatedObject(state.CURRENT_OBJECT_NAMESPACE, state.CURRENT_OBJECT_ID, TaxonBase.class);\r
if (StringUtils.isNotBlank(nomRemarksString)){\r
- NonViralName name = CdmBase.deproxy(taxonBase.getName(), NonViralName.class);\r
+ INonViralName name = taxonBase.getName();\r
parseNomRemark(state, name, nomRemarksString.trim(),taxonStatus, taxonNumber);\r
}\r
return taxonBase;\r
}\r
\r
\r
- private void parseNomRemark(CentralAfricaFernsImportState state, NonViralName name, String nomRemarksString, String taxonStatus, String taxonNumber) {\r
+ private void parseNomRemark(CentralAfricaFernsImportState state, INonViralName name, String nomRemarksString, String taxonStatus, String taxonNumber) {\r
\r
if (nomRemarksString.equalsIgnoreCase("comb. illeg.")){\r
name.addStatus(NomenclaturalStatus.NewInstance(NomenclaturalStatusType.COMBINATION_ILLEGITIMATE()));\r
import eu.etaxonomy.cdm.model.location.NamedAreaLevel;\r
import eu.etaxonomy.cdm.model.location.NamedAreaType;\r
import eu.etaxonomy.cdm.model.name.BotanicalName;\r
-import eu.etaxonomy.cdm.model.name.NonViralName;\r
+import eu.etaxonomy.cdm.model.name.INonViralName;\r
import eu.etaxonomy.cdm.model.name.Rank;\r
import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
import eu.etaxonomy.cdm.model.reference.Reference;\r
\r
List<Taxon> taxonList = getTaxonService().list(Taxon.class, null, null, null, propPath );\r
for (Taxon taxon : taxonList){\r
- NonViralName<?> nvn = CdmBase.deproxy(taxon.getName(), NonViralName.class);\r
+ INonViralName nvn = taxon.getName();\r
UUID uuid = taxon.getUuid();\r
String nameCache = nvn.getNameCache();\r
String titleCache = nvn.getTitleCache();\r
* @param constructedHigherTaxon\r
*/\r
private Taxon mergeExistingAndConstructedTaxon(CentralAfricaFernsImportState state, Taxon existingTaxon, Taxon constructedTaxon) {\r
- NonViralName<?> constructedName = CdmBase.deproxy(constructedTaxon.getName(), NonViralName.class);\r
- NonViralName<?> existingName = CdmBase.deproxy(existingTaxon.getName(), NonViralName.class);\r
+ INonViralName constructedName = constructedTaxon.getName();\r
+ INonViralName existingName = existingTaxon.getName();\r
if (constructedName.hasAuthors()){\r
if (! existingName.hasAuthors()){\r
logger.warn(state.getTaxonNumber() + " - Constrcucted name ("+constructedName.getTitleCache()+") has authors but existing name ("+existingName.getTitleCache()+") has no authors");\r
* @param name2\r
* @return\r
*/\r
- private boolean authorsMatch(NonViralName<?> name1, NonViralName<?> name2) {\r
+ private boolean authorsMatch(INonViralName name1, INonViralName name2) {\r
String combinationAuthor1 = name1.computeCombinationAuthorNomenclaturalTitle();\r
String combinationAuthor2 = name2.computeCombinationAuthorNomenclaturalTitle();\r
String basionymAuthor1 = name1.computeBasionymAuthorNomenclaturalTitle();\r
* @param existingHigherTaxon\r
*/\r
private boolean mergeAuthors_old(Taxon higherTaxon, Taxon existingHigherTaxon) {\r
- NonViralName<?> existingName = CdmBase.deproxy(higherTaxon.getName(), NonViralName.class);\r
- NonViralName<?> newName = CdmBase.deproxy(existingHigherTaxon.getName(), NonViralName.class);\r
+ INonViralName existingName = higherTaxon.getName();\r
+ INonViralName newName = existingHigherTaxon.getName();\r
if (existingName == newName){\r
return true;\r
}\r