X-Git-Url: https://dev.e-taxonomy.eu/gitweb/cdmlib.git/blobdiff_plain/a3e32c88c95716d2d93d429193080a9856ec8182..f9b2e056dfaab83ada5d1db4cf22c85009eabcd6:/cdmlib-model/src/main/java/eu/etaxonomy/cdm/strategy/cache/reference/NomRefDefaultCacheStrategyBase.java?ds=sidebyside diff --git a/cdmlib-model/src/main/java/eu/etaxonomy/cdm/strategy/cache/reference/NomRefDefaultCacheStrategyBase.java b/cdmlib-model/src/main/java/eu/etaxonomy/cdm/strategy/cache/reference/NomRefDefaultCacheStrategyBase.java index 1a1739b3ef..fa1e79908e 100644 --- a/cdmlib-model/src/main/java/eu/etaxonomy/cdm/strategy/cache/reference/NomRefDefaultCacheStrategyBase.java +++ b/cdmlib-model/src/main/java/eu/etaxonomy/cdm/strategy/cache/reference/NomRefDefaultCacheStrategyBase.java @@ -21,9 +21,8 @@ import eu.etaxonomy.cdm.strategy.StrategyBase; /** * @author a.mueller * @created 29.06.2008 - * @version 1.0 */ -public abstract class NomRefDefaultCacheStrategyBase extends StrategyBase implements INomenclaturalReferenceCacheStrategy{ +public abstract class NomRefDefaultCacheStrategyBase extends StrategyBase implements INomenclaturalReferenceCacheStrategy{ private static final long serialVersionUID = -725290113353165022L; @SuppressWarnings("unused") @@ -36,7 +35,7 @@ public abstract class NomRefDefaultCacheStrategyBase extend @Override - public String getTokenizedNomenclaturalTitel(T ref) { + public String getTokenizedNomenclaturalTitel(Reference ref) { String result = getTitleWithoutYearAndAuthor(ref, true); result += INomenclaturalReference.MICRO_REFERENCE_TOKEN; result = addYear(result, ref, true); @@ -44,16 +43,16 @@ public abstract class NomRefDefaultCacheStrategyBase extend } @Override - public String getTitleCache(T nomenclaturalReference) { + public String getTitleCache(Reference nomenclaturalReference) { return getTitleCache(nomenclaturalReference, false); } @Override - public String getAbbrevTitleCache(T nomenclaturalReference) { + public String getAbbrevTitleCache(Reference nomenclaturalReference) { return getTitleCache(nomenclaturalReference, true); } - private String getTitleCache(T ref, boolean isAbbrev) { + private String getTitleCache(Reference ref, boolean isAbbrev) { //TODO needed? if (isAbbrev && ref.isProtectedAbbrevTitleCache()){ return ref.getAbbrevTitleCache(); @@ -67,41 +66,44 @@ public abstract class NomRefDefaultCacheStrategyBase extend if (team != null){ String teamTitle = CdmUtils.getPreferredNonEmptyString(team.getTitleCache(), team.getNomenclaturalTitle(), isAbbrev, true); if (teamTitle.length() > 0 ){ - result = team.getTitleCache() + afterAuthor + result; + String concat = isNotBlank(result) ? afterAuthor : ""; + result = team.getTitleCache() + concat + result; } } return result; } - protected abstract String getTitleWithoutYearAndAuthor(T reference, boolean isAbbrev); + protected abstract String getTitleWithoutYearAndAuthor(Reference reference, boolean isAbbrev); - public String getCitation(T referenceBase) { + @Override + public String getCitation(Reference referenceBase) { StringBuilder stringBuilder = new StringBuilder(); + String nextConcat = ""; + TeamOrPersonBase team = referenceBase.getAuthorTeam(); if (team != null && ! (team.getTitleCache() == null) && ! team.getTitleCache().trim().equals("")){ - //String author = CdmUtils.Nz(team == null? "" : team.getTitleCache()); - stringBuilder.append(team.getTitleCache() + afterAuthor); + stringBuilder.append(team.getTitleCache() ); + nextConcat = afterAuthor; } - String year = CdmUtils.Nz(referenceBase.getYear()); - if (!"".equals(year)){ - stringBuilder.append(beforeYear + year); + String year = referenceBase.getYear(); + if (StringUtils.isNotBlank(year)){ + stringBuilder.append(nextConcat + year); } return stringBuilder.toString(); } - /* (non-Javadoc) - * @see eu.etaxonomy.cdm.strategy.cache.reference.INomenclaturalReferenceCacheStrategy#getBeforeMicroReference() - */ + + @Override public String getBeforeMicroReference(){ return beforeMicroReference; } - protected String addYear(String string, T nomRef, boolean useFullDatePublished){ + protected String addYear(String string, Reference nomRef, boolean useFullDatePublished){ String result; if (string == null){ return null; @@ -110,13 +112,14 @@ public abstract class NomRefDefaultCacheStrategyBase extend if (StringUtils.isBlank(year)){ result = string + afterYear; }else{ - result = string + beforeYear + year + afterYear; - //TODO remove double dots (..) if string ends with "."? #3645 + String concat = isBlank(string) ? "" : string.endsWith(".")? " " : beforeYear; + result = string + concat + year + afterYear; } return result; } - public String getNomenclaturalCitation(T nomenclaturalReference, String microReference) { + @Override + public String getNomenclaturalCitation(Reference nomenclaturalReference, String microReference) { if (nomenclaturalReference.isProtectedTitleCache()){ return nomenclaturalReference.getTitleCache(); } @@ -126,6 +129,9 @@ public abstract class NomRefDefaultCacheStrategyBase extend microReference = getBeforeMicroReference() + microReference; } result = result.replaceAll(INomenclaturalReference.MICRO_REFERENCE_TOKEN, microReference); + if (result.startsWith(". ")){ + result = result.substring(2); + } return result; }