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
.Generic
;
17 import eu
.etaxonomy
.cdm
.model
.reference
.INomenclaturalReference
;
18 import eu
.etaxonomy
.cdm
.model
.reference
.ReferenceBase
;
19 import eu
.etaxonomy
.cdm
.strategy
.StrategyBase
;
26 public abstract class NomRefDefaultCacheStrategyBase
<T
extends ReferenceBase
> extends StrategyBase
implements INomenclaturalReferenceCacheStrategy
<T
>{
27 private static Logger logger
= Logger
.getLogger(NomRefDefaultCacheStrategyBase
.class);
29 protected String beforeYear
= ". ";
30 protected String beforeMicroReference
= ": ";
31 protected String afterYear
= "";
32 protected String afterAuthor
= ", ";
37 * @see eu.etaxonomy.cdm.strategy.cache.reference.INomenclaturalReferenceCacheStrategy#getTokenizedNomenclaturalTitel(eu.etaxonomy.cdm.model.reference.INomenclaturalReference)
39 public String
getTokenizedNomenclaturalTitel(T nomenclaturalReference
) {
40 String result
= getNomRefTitleWithoutYearAndAuthor(nomenclaturalReference
);
41 result
+= INomenclaturalReference
.MICRO_REFERENCE_TOKEN
;
42 result
= addYear(result
, nomenclaturalReference
);
47 * @see eu.etaxonomy.cdm.strategy.cache.reference.INomenclaturalReferenceCacheStrategy#getTitleCache(eu.etaxonomy.cdm.model.reference.INomenclaturalReference)
49 public String
getTitleCache(T nomenclaturalReference
) {
50 String result
= getNomRefTitleWithoutYearAndAuthor(nomenclaturalReference
);
51 result
= addYear(result
, nomenclaturalReference
);
52 TeamOrPersonBase team
= nomenclaturalReference
.getAuthorTeam();
53 String author
= CdmUtils
.Nz(team
== null?
"" : team
.getTitleCache());
54 result
= author
+ afterAuthor
+ result
;
60 * @see eu.etaxonomy.cdm.strategy.cache.reference.INomenclaturalReferenceCacheStrategy#getBeforeMicroReference()
62 public String
getBeforeMicroReference(){
63 return beforeMicroReference
;
66 protected String
addYear(String string
, T nomRef
){
71 String year
= CdmUtils
.Nz(nomRef
.getYear());
73 result
= string
+ afterYear
;
75 result
= string
+ beforeYear
+ year
+ afterYear
;
80 protected abstract String
getNomRefTitleWithoutYearAndAuthor(T reference
);