2 * Copyright (C) 2007 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
10 package eu
.etaxonomy
.cdm
.strategy
.cache
.reference
;
12 import org
.apache
.log4j
.Logger
;
14 import eu
.etaxonomy
.cdm
.common
.CdmUtils
;
15 import eu
.etaxonomy
.cdm
.model
.agent
.TeamOrPersonBase
;
16 import eu
.etaxonomy
.cdm
.model
.reference
.INomenclaturalReference
;
17 import eu
.etaxonomy
.cdm
.model
.reference
.ReferenceBase
;
18 import eu
.etaxonomy
.cdm
.strategy
.StrategyBase
;
25 public abstract class NomRefDefaultCacheStrategyBase
<T
extends ReferenceBase
> extends StrategyBase
implements INomenclaturalReferenceCacheStrategy
<T
>{
26 private static Logger logger
= Logger
.getLogger(NomRefDefaultCacheStrategyBase
.class);
28 protected String beforeYear
= ". ";
29 protected String beforeMicroReference
= ": ";
30 protected String afterYear
= "";
31 protected String afterAuthor
= ", ";
36 * @see eu.etaxonomy.cdm.strategy.cache.reference.INomenclaturalReferenceCacheStrategy#getTokenizedNomenclaturalTitel(eu.etaxonomy.cdm.model.reference.INomenclaturalReference)
38 public String
getTokenizedNomenclaturalTitel(T nomenclaturalReference
) {
39 String result
= getNomRefTitleWithoutYearAndAuthor(nomenclaturalReference
);
40 result
+= INomenclaturalReference
.MICRO_REFERENCE_TOKEN
;
41 result
= addYear(result
, nomenclaturalReference
);
46 * @see eu.etaxonomy.cdm.strategy.cache.reference.INomenclaturalReferenceCacheStrategy#getTitleCache(eu.etaxonomy.cdm.model.reference.INomenclaturalReference)
48 public String
getTitleCache(T nomenclaturalReference
) {
50 if (nomenclaturalReference
.isProtectedTitleCache()){
51 return nomenclaturalReference
.getTitleCache();
53 String result
= getNomRefTitleWithoutYearAndAuthor(nomenclaturalReference
);
54 result
= addYear(result
, nomenclaturalReference
);
55 TeamOrPersonBase team
= nomenclaturalReference
.getAuthorTeam();
56 if (team
!= null && ! (team
.getTitleCache() == null) && ! team
.getTitleCache().trim().equals("")){
57 //String author = CdmUtils.Nz(team == null? "" : team.getTitleCache());
58 result
= team
.getTitleCache() + afterAuthor
+ result
;
65 * @see eu.etaxonomy.cdm.strategy.cache.reference.INomenclaturalReferenceCacheStrategy#getBeforeMicroReference()
67 public String
getBeforeMicroReference(){
68 return beforeMicroReference
;
71 protected String
addYear(String string
, T nomRef
){
76 String year
= CdmUtils
.Nz(nomRef
.getYear());
78 result
= string
+ afterYear
;
80 result
= string
+ beforeYear
+ year
+ afterYear
;
85 protected abstract String
getNomRefTitleWithoutYearAndAuthor(T reference
);