ref #1924 put year after author in bibliographic references and separate with colon...
authorAndreas Müller <a.mueller@bgbm.org>
Tue, 18 May 2021 13:28:56 +0000 (15:28 +0200)
committerAndreas Müller <a.mueller@bgbm.org>
Tue, 18 May 2021 13:47:05 +0000 (15:47 +0200)
cdmlib-model/src/main/java/eu/etaxonomy/cdm/strategy/cache/taxon/TaxonBaseDefaultCacheStrategy.java

index 6533c3eefcb55397b3bab8fb046a0c1fa351a049..99832a99f86080ecc32b7f6985861c8609c34ec4 100644 (file)
@@ -157,7 +157,9 @@ public class TaxonBaseDefaultCacheStrategy<T extends TaxonBase>
             }else{
                 secRef = sec.getTitleCache();
                 //TODO maybe not always correct
-                secRef = CdmUtils.removeTrailingDots(secRef);
+                if (secTitleTrailingDotShouldBeRemoved(sec)){
+                    secRef = CdmUtils.removeTrailingDots(secRef);
+                }
             }
         }
         if (secRef != null){
@@ -171,6 +173,18 @@ public class TaxonBaseDefaultCacheStrategy<T extends TaxonBase>
         return tags;
     }
 
+
+    private boolean secTitleTrailingDotShouldBeRemoved(Reference sec) {
+        if (sec.isProtectedTitleCache()){
+            return false;
+        }else if (sec.getAbbrevTitle()!= null && sec.getTitleCache().endsWith(sec.getAbbrevTitle())){
+            return false;
+        }else if (sec.getTitle() != null && sec.getTitle().endsWith(".") && sec.getTitleCache().endsWith(sec.getTitle())){
+            return false;
+        }
+        return true;
+    }
+
     private boolean titleExists(Reference ref) {
         return isNotBlank(ref.getAbbrevTitle()) || isNotBlank(ref.getTitle());
     }