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.
9 package eu
.etaxonomy
.cdm
.strategy
.cache
.reference
;
11 import java
.util
.UUID
;
13 import org
.apache
.log4j
.Logger
;
15 import eu
.etaxonomy
.cdm
.common
.CdmUtils
;
16 import eu
.etaxonomy
.cdm
.model
.agent
.TeamOrPersonBase
;
17 import eu
.etaxonomy
.cdm
.model
.reference
.ReferenceBase
;
18 import eu
.etaxonomy
.cdm
.strategy
.StrategyBase
;
22 * @created 08-Aug-2008 22:06:45
24 public class ReferenceBaseDefaultCacheStrategy
<T
extends ReferenceBase
> extends StrategyBase
implements IReferenceBaseCacheStrategy
<T
> {
25 private static final Logger logger
= Logger
.getLogger(ReferenceBaseDefaultCacheStrategy
.class);
30 public ReferenceBaseDefaultCacheStrategy(){
33 public static ReferenceBaseDefaultCacheStrategy
NewInstance(){
34 return new ReferenceBaseDefaultCacheStrategy();
39 protected String beforeYear
= ". ";
40 protected String afterYear
= "";
41 protected String afterAuthor
= ", ";
43 private String blank
= " ";
44 private String comma
= ",";
45 private String dot
=".";
47 final static UUID uuid
= UUID
.fromString("763fe4a0-c79f-4f14-9693-631680225ec3");
52 * @see eu.etaxonomy.cdm.strategy.cache.reference.INomenclaturalReferenceCacheStrategy#getTitleCache(eu.etaxonomy.cdm.model.reference.INomenclaturalReference)
54 public String
getTitleCache(T strictReferenceBase
) {
56 if (strictReferenceBase
== null){
59 String titel
= CdmUtils
.Nz(strictReferenceBase
.getTitle()).trim();
61 String titelAbbrevPart
= "";
62 if (!"".equals(titel
)){
63 result
= titel
+ blank
;
66 while (result
.endsWith(".")){
67 result
= result
.substring(0, result
.length()-1);
70 result
= addYear(result
, strictReferenceBase
);
71 TeamOrPersonBase team
= strictReferenceBase
.getAuthorTeam();
72 String author
= CdmUtils
.Nz(team
== null ?
"" : team
.getTitleCache());
73 if (CdmUtils
.isNotEmpty(author
)){
74 result
= author
+ afterAuthor
+ result
;
81 protected String
addYear(String string
, T ref
){
86 String year
= CdmUtils
.Nz(ref
.getYear());
88 result
= string
+ afterYear
;
90 result
= string
+ beforeYear
+ year
+ afterYear
;
95 public String
getCitation(T referenceBase
) {
96 StringBuilder stringBuilder
= new StringBuilder();
98 TeamOrPersonBase
<?
> team
= referenceBase
.getAuthorTeam();
99 if (team
!= null && ! (team
.getTitleCache() == null) && ! team
.getTitleCache().trim().equals("")){
100 //String author = CdmUtils.Nz(team == null? "" : team.getTitleCache());
101 stringBuilder
.append(team
.getTitleCache() + afterAuthor
);
104 String year
= CdmUtils
.Nz(referenceBase
.getYear());
105 if (!"".equals(year
)){
106 stringBuilder
.append(beforeYear
+ year
);
109 return stringBuilder
.toString();
115 protected UUID
getUuid() {
116 return UUID
.fromString("919dbf70-33e7-11de-b418-0800200c9a66");
122 * @param referenceTitleCache
123 * @param authorTitleCache
126 public static String
putAuthorToEndOfString(String referenceTitleCache
, String authorTitleCache
) {
127 if(authorTitleCache
!= null){
128 referenceTitleCache
= referenceTitleCache
.replace(authorTitleCache
+ ", ", "");
129 referenceTitleCache
+= " - " + authorTitleCache
;
131 return referenceTitleCache
;