/**\r
* @author a.mueller\r
* @created 29.06.2008\r
- * @version 1.0\r
*/\r
-public abstract class NomRefDefaultCacheStrategyBase<T extends Reference> extends StrategyBase implements INomenclaturalReferenceCacheStrategy<T>{\r
+public abstract class NomRefDefaultCacheStrategyBase extends StrategyBase implements INomenclaturalReferenceCacheStrategy{\r
private static final long serialVersionUID = -725290113353165022L;\r
\r
@SuppressWarnings("unused")\r
\r
\r
@Override\r
- public String getTokenizedNomenclaturalTitel(T ref) {\r
+ public String getTokenizedNomenclaturalTitel(Reference ref) {\r
String result = getTitleWithoutYearAndAuthor(ref, true);\r
result += INomenclaturalReference.MICRO_REFERENCE_TOKEN;\r
result = addYear(result, ref, true);\r
}\r
\r
@Override\r
- public String getTitleCache(T nomenclaturalReference) {\r
+ public String getTitleCache(Reference nomenclaturalReference) {\r
return getTitleCache(nomenclaturalReference, false);\r
}\r
\r
@Override\r
- public String getAbbrevTitleCache(T nomenclaturalReference) {\r
+ public String getAbbrevTitleCache(Reference nomenclaturalReference) {\r
return getTitleCache(nomenclaturalReference, true);\r
}\r
\r
- private String getTitleCache(T ref, boolean isAbbrev) {\r
+ private String getTitleCache(Reference ref, boolean isAbbrev) {\r
//TODO needed?\r
if (isAbbrev && ref.isProtectedAbbrevTitleCache()){\r
return ref.getAbbrevTitleCache();\r
if (team != null){\r
String teamTitle = CdmUtils.getPreferredNonEmptyString(team.getTitleCache(), team.getNomenclaturalTitle(), isAbbrev, true);\r
if (teamTitle.length() > 0 ){\r
- result = team.getTitleCache() + afterAuthor + result;\r
+ String concat = isNotBlank(result) ? afterAuthor : "";\r
+ result = team.getTitleCache() + concat + result;\r
}\r
\r
}\r
return result;\r
}\r
\r
- protected abstract String getTitleWithoutYearAndAuthor(T reference, boolean isAbbrev);\r
+ protected abstract String getTitleWithoutYearAndAuthor(Reference reference, boolean isAbbrev);\r
\r
\r
- public String getCitation(T referenceBase) {\r
+ @Override\r
+ public String getCitation(Reference referenceBase) {\r
StringBuilder stringBuilder = new StringBuilder();\r
\r
+ String nextConcat = "";\r
+ \r
TeamOrPersonBase<?> team = referenceBase.getAuthorTeam();\r
if (team != null && ! (team.getTitleCache() == null) && ! team.getTitleCache().trim().equals("")){\r
- //String author = CdmUtils.Nz(team == null? "" : team.getTitleCache());\r
- stringBuilder.append(team.getTitleCache() + afterAuthor);\r
+ stringBuilder.append(team.getTitleCache() );\r
+ nextConcat = afterAuthor;\r
}\r
\r
- String year = CdmUtils.Nz(referenceBase.getYear());\r
- if (!"".equals(year)){\r
- stringBuilder.append(beforeYear + year);\r
+ String year = referenceBase.getYear();\r
+ if (StringUtils.isNotBlank(year)){\r
+ stringBuilder.append(nextConcat + year);\r
}\r
\r
return stringBuilder.toString();\r
}\r
\r
- /* (non-Javadoc)\r
- * @see eu.etaxonomy.cdm.strategy.cache.reference.INomenclaturalReferenceCacheStrategy#getBeforeMicroReference()\r
- */\r
+\r
+ @Override\r
public String getBeforeMicroReference(){\r
return beforeMicroReference;\r
}\r
\r
- protected String addYear(String string, T nomRef, boolean useFullDatePublished){\r
+ protected String addYear(String string, Reference nomRef, boolean useFullDatePublished){\r
String result;\r
if (string == null){\r
return null;\r
if (StringUtils.isBlank(year)){\r
result = string + afterYear;\r
}else{\r
- result = string + beforeYear + year + afterYear;\r
- //TODO remove double dots (..) if string ends with "."? #3645\r
+ String concat = isBlank(string) ? "" : string.endsWith(".")? " " : beforeYear;\r
+ result = string + concat + year + afterYear;\r
}\r
return result;\r
}\r
\r
- public String getNomenclaturalCitation(T nomenclaturalReference, String microReference) {\r
+ @Override\r
+ public String getNomenclaturalCitation(Reference nomenclaturalReference, String microReference) {\r
if (nomenclaturalReference.isProtectedTitleCache()){\r
return nomenclaturalReference.getTitleCache();\r
}\r
microReference = getBeforeMicroReference() + microReference;\r
}\r
result = result.replaceAll(INomenclaturalReference.MICRO_REFERENCE_TOKEN, microReference);\r
+ if (result.startsWith(". ")){\r
+ result = result.substring(2);\r
+ }\r
return result;\r
}\r
\r