String result = "";\r
//Autonym\r
if (isAutonym(nonViralName)){\r
- String speciesPart = getSpeciesNameCache(nonViralName);\r
- //TODO should this include basionym authors and ex authors\r
- INomenclaturalAuthor author = nonViralName.getCombinationAuthorTeam();\r
- String authorPart = "";\r
- if (author != null){\r
- authorPart = CdmUtils.Nz(author.getNomenclaturalTitle());\r
- }\r
- INomenclaturalAuthor basAuthor = nonViralName.getBasionymAuthorTeam();\r
- String basAuthorPart = "";\r
- if (basAuthor != null){\r
- basAuthorPart = CdmUtils.Nz(basAuthor.getNomenclaturalTitle());\r
- }\r
- if (! "".equals(basAuthorPart)){\r
- authorPart = "("+ basAuthorPart +")" + authorPart;\r
- }\r
- String infraSpeciesPart = (CdmUtils.Nz(nonViralName.getInfraSpecificEpithet()));\r
-\r
- String infraSpeciesSeparator = "";\r
- if (nonViralName.getRank() == null || !nonViralName.getRank().isInfraSpecific()){\r
- //TODO handle exception\r
- logger.warn("Rank for autonym does not exist or is not lower than species !!");\r
- }else{\r
- infraSpeciesSeparator = nonViralName.getRank().getAbbreviation();\r
- }\r
- \r
- result = CdmUtils.concat(" ", new String[]{speciesPart, authorPart, infraSpeciesSeparator, infraSpeciesPart});\r
- result = result.trim().replace("null", "");\r
+ result = handleAutonym(nonViralName);\r
}else{ //not Autonym\r
String nameCache = nonViralName.getNameCache(); //OLD: CdmUtils.Nz(getNameCache(nonViralName));\r
if (nameIncludesAuthorship(nonViralName)){\r
}\r
return result;\r
}\r
+\r
+\r
+ /**\r
+ * @param nonViralName\r
+ * @param speciesPart\r
+ * @return\r
+ */\r
+ private String handleAutonym(T nonViralName) {\r
+ String result;\r
+ String speciesPart = getSpeciesNameCache(nonViralName);\r
+ //TODO should this include basionym authors and ex authors\r
+ INomenclaturalAuthor author = nonViralName.getCombinationAuthorTeam();\r
+ String authorPart = "";\r
+ if (author != null){\r
+ authorPart = CdmUtils.Nz(author.getNomenclaturalTitle());\r
+ }\r
+ INomenclaturalAuthor basAuthor = nonViralName.getBasionymAuthorTeam();\r
+ String basAuthorPart = "";\r
+ if (basAuthor != null){\r
+ basAuthorPart = CdmUtils.Nz(basAuthor.getNomenclaturalTitle());\r
+ }\r
+ if (! "".equals(basAuthorPart)){\r
+ authorPart = "("+ basAuthorPart +")" + authorPart;\r
+ }\r
+ String infraSpeciesPart = (CdmUtils.Nz(nonViralName.getInfraSpecificEpithet()));\r
+\r
+ String infraSpeciesSeparator = "";\r
+ if (nonViralName.getRank() == null || !nonViralName.getRank().isInfraSpecific()){\r
+ //TODO handle exception\r
+ logger.warn("Rank for autonym does not exist or is not lower than species !!");\r
+ }else{\r
+ infraSpeciesSeparator = nonViralName.getRank().getAbbreviation();\r
+ }\r
+ \r
+ result = CdmUtils.concat(" ", new String[]{speciesPart, authorPart, infraSpeciesSeparator, infraSpeciesPart});\r
+ result = result.trim().replace("null", "");\r
+ return result;\r
+ }\r
\r
protected boolean nameIncludesAuthorship(NonViralName nonViralName){\r
Rank rank = nonViralName.getRank();\r
\r
protected String getRanklessNameCache(NonViralName nonViralName){\r
String result = "";\r
- result = (result + (nonViralName.getGenusOrUninomial())).trim().replace("null", "");\r
+ result = (result + (CdmUtils.Nz(nonViralName.getGenusOrUninomial()))).trim().replace("null", "");\r
result += " " + (CdmUtils.Nz(nonViralName.getSpecificEpithet())).trim();\r
result += " " + (CdmUtils.Nz(nonViralName.getInfraSpecificEpithet())).trim();\r
result = result.trim().replace("null", "");\r
\r
protected String getGenusOrUninomialNameCache(NonViralName nonViralName){\r
String result;\r
- result = CdmUtils.Nz(nonViralName.getGenusOrUninomial());\r
+ result = CdmUtils.Nz(nonViralName.getGenusOrUninomial()).trim();\r
result = addAppendedPhrase(result, nonViralName).trim();\r
return result;\r
}\r
infraGenericMarker = "'unhandled infrageneric rank'";\r
}\r
}\r
- result = CdmUtils.Nz(nonViralName.getGenusOrUninomial());\r
+ result = CdmUtils.Nz(nonViralName.getGenusOrUninomial()).trim();\r
result += " " + infraGenericMarker + " " + (CdmUtils.Nz(nonViralName.getInfraGenericEpithet())).trim().replace("null", "");\r
result = addAppendedPhrase(result, nonViralName).trim();\r
return result;\r
// aggr.|agg.|group\r
protected String getSpeciesAggregateCache(NonViralName nonViralName){\r
String result;\r
- result = CdmUtils.Nz(nonViralName.getGenusOrUninomial());\r
+ result = CdmUtils.Nz(nonViralName.getGenusOrUninomial()).trim();\r
\r
- result += " "+getSpeciesAggregateEpithet(nonViralName);\r
+ result += " " + getSpeciesAggregateEpithet(nonViralName);\r
/*result += " " + CdmUtils.Nz(nonViralName.getSpecificEpithet()).trim().replace("null", "");\r
String marker;\r
try {\r
\r
protected String getSpeciesNameCache(NonViralName nonViralName){\r
String result;\r
- result = CdmUtils.Nz(nonViralName.getGenusOrUninomial());\r
+ result = CdmUtils.Nz(nonViralName.getGenusOrUninomial()).trim();\r
result += " " + CdmUtils.Nz(nonViralName.getSpecificEpithet()).trim().replace("null", "");\r
result = addAppendedPhrase(result, nonViralName).trim();\r
result = result.replace("\\s\\", " ");\r
\r
protected String getInfraSpeciesNameCache(NonViralName nonViralName, boolean includeMarker){\r
String result;\r
- result = CdmUtils.Nz(nonViralName.getGenusOrUninomial());\r
+ result = CdmUtils.Nz(nonViralName.getGenusOrUninomial()).trim();\r
result += " " + (CdmUtils.Nz(nonViralName.getSpecificEpithet()).trim()).replace("null", "");\r
if (includeMarker){ \r
result += " " + (nonViralName.getRank().getAbbreviation()).trim().replace("null", "");\r