}else{
secRef = sec.getTitleCache();
//TODO maybe not always correct
- secRef = CdmUtils.removeTrailingDots(secRef);
+ if (secTitleTrailingDotShouldBeRemoved(sec)){
+ secRef = CdmUtils.removeTrailingDots(secRef);
+ }
}
}
if (secRef != null){
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());
}