Project

General

Profile

Download (3.22 KB) Statistics
| Branch: | Tag: | Revision:
1 cc8caf45 Andreas Müller
/**
2
* Copyright (C) 2007 EDIT
3
* European Distributed Institute of Taxonomy 
4
* http://www.e-taxonomy.eu
5
* 
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.
8
*/
9
10
package eu.etaxonomy.cdm.strategy.cache.reference;
11
12
import java.util.UUID;
13
14 b606df4d Andreas Müller
import org.apache.commons.lang.StringUtils;
15 cc8caf45 Andreas Müller
import org.apache.log4j.Logger;
16
17 76d072d4 Andreas Müller
import eu.etaxonomy.cdm.common.CdmUtils;
18
import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
19 1d36aa54 Andreas Müller
import eu.etaxonomy.cdm.model.reference.Reference;
20 cc8caf45 Andreas Müller
import eu.etaxonomy.cdm.strategy.StrategyBase;
21
22
/**
23
 * @author a.mueller
24
 * @created 29.06.2008
25
 */
26 70c786d3 Andreas Müller
public class JournalDefaultCacheStrategy extends StrategyBase implements IReferenceBaseCacheStrategy {
27 d4657a24 Andreas Müller
	private static final long serialVersionUID = 8495999505123620960L;
28
29
30 9b7c87f2 Andreas Müller
	@SuppressWarnings("unused")
31
	private static final Logger logger = Logger.getLogger(JournalDefaultCacheStrategy.class);
32 cc8caf45 Andreas Müller
33 76d072d4 Andreas Müller
	
34
	protected String beforeYear = ". ";
35
	protected String afterYear = "";
36
	protected String afterAuthor = ", ";
37
38 b606df4d Andreas Müller
//	private String blank = " ";
39
//	private String comma = ",";
40
//	private String dot =".";
41 76d072d4 Andreas Müller
	
42 cc8caf45 Andreas Müller
	final static UUID uuid = UUID.fromString("c84846cd-c862-462e-81b8-53cf4100ed32");
43
	
44
	/* (non-Javadoc)
45
	 * @see eu.etaxonomy.cdm.strategy.StrategyBase#getUuid()
46
	 */
47
	@Override
48
	protected UUID getUuid() {
49
		return uuid; 
50
	}
51
	
52
	
53
	/**
54
	 * Factory method
55
	 * @return
56
	 */
57
	public static JournalDefaultCacheStrategy NewInstance(){
58 70c786d3 Andreas Müller
		return new JournalDefaultCacheStrategy();
59 cc8caf45 Andreas Müller
	}
60
	
61
	/**
62
	 * Constructor
63
	 */
64
	private JournalDefaultCacheStrategy(){
65
		super();
66
	}
67
	
68 b606df4d Andreas Müller
69
	@Override
70 70c786d3 Andreas Müller
	public String getTitleCache(Reference journal) {
71 b606df4d Andreas Müller
		return getTitleCache(journal, false);
72
		
73
74
	}
75
	
76
77
	@Override
78 70c786d3 Andreas Müller
	public String getAbbrevTitleCache(Reference journal) {
79 b606df4d Andreas Müller
		return getTitleCache(journal, true);
80
	}
81
	
82
	
83 70c786d3 Andreas Müller
	private String getTitleCache(Reference journal, boolean isAbbrev){
84 76d072d4 Andreas Müller
		if (journal == null){
85
			return null;
86
		}
87 b606df4d Andreas Müller
88
		String title = CdmUtils.getPreferredNonEmptyString(journal.getTitle(), journal.getAbbrevTitle(), isAbbrev, true);
89
		
90
		String result = title;
91 76d072d4 Andreas Müller
		
92 6680df00 Andreas Müller
//		//delete .
93
//		while (result.endsWith(".")){
94
//			result = result.substring(0, result.length()-1);
95
//		}
96
		
97 76d072d4 Andreas Müller
//		result = addYear(result, journal);
98 b606df4d Andreas Müller
		
99
		
100 6680df00 Andreas Müller
		TeamOrPersonBase<?> team = journal.getAuthorTeam();
101 b606df4d Andreas Müller
		if (team != null){
102
			String author = CdmUtils.getPreferredNonEmptyString(team.getTitleCache(), team.getNomenclaturalTitle(), isAbbrev, true);
103
			if (StringUtils.isNotBlank(author)){
104
				result = author + afterAuthor + result;
105
			}
106 76d072d4 Andreas Müller
		}
107
		return result;
108 cc8caf45 Andreas Müller
	}
109 b606df4d Andreas Müller
110 4208745a ben.clark
	
111 70c786d3 Andreas Müller
	public String getCitation(Reference referenceBase) {
112 4208745a ben.clark
		StringBuilder stringBuilder = new StringBuilder();
113
		
114
		TeamOrPersonBase<?> team = referenceBase.getAuthorTeam();
115
		if (team != null &&  ! (team.getTitleCache() == null) && ! team.getTitleCache().trim().equals("")){
116
			//String author = CdmUtils.Nz(team == null? "" : team.getTitleCache());
117
			stringBuilder.append(team.getTitleCache() + afterAuthor);
118
		}
119
		
120
		String year = CdmUtils.Nz(referenceBase.getYear());
121
		if (!"".equals(year)){
122
			stringBuilder.append(beforeYear + year);
123
		}
124
		
125
		return stringBuilder.toString();
126
	}
127 b606df4d Andreas Müller
128
129 cc8caf45 Andreas Müller
}