Project

General

Profile

Download (2.98 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
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.old;
11

    
12
import java.util.UUID;
13

    
14
import org.apache.commons.lang.StringUtils;
15
import org.apache.log4j.Logger;
16

    
17
import eu.etaxonomy.cdm.common.CdmUtils;
18
import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
19
import eu.etaxonomy.cdm.model.reference.Reference;
20
import eu.etaxonomy.cdm.strategy.StrategyBase;
21
import eu.etaxonomy.cdm.strategy.cache.reference.IReferenceCacheStrategy;
22

    
23
/**
24
 * @author a.mueller
25
 * @created 29.06.2008
26
 */
27
public class JournalDefaultCacheStrategy extends StrategyBase implements IReferenceCacheStrategy {
28
	private static final long serialVersionUID = 8495999505123620960L;
29

    
30

    
31
	@SuppressWarnings("unused")
32
	private static final Logger logger = Logger.getLogger(JournalDefaultCacheStrategy.class);
33

    
34

    
35
	protected String beforeYear = ". ";
36
	protected String afterYear = "";
37
	protected String afterAuthor = ", ";
38

    
39

    
40
	final static UUID uuid = UUID.fromString("c84846cd-c862-462e-81b8-53cf4100ed32");
41

    
42
	@Override
43
	protected UUID getUuid() {
44
		return uuid;
45
	}
46

    
47

    
48
	/**
49
	 * Factory method
50
	 * @return
51
	 */
52
	public static JournalDefaultCacheStrategy NewInstance(){
53
		return new JournalDefaultCacheStrategy();
54
	}
55

    
56
	/**
57
	 * Constructor
58
	 */
59
	private JournalDefaultCacheStrategy(){
60
		super();
61
	}
62

    
63

    
64
	@Override
65
	public String getTitleCache(Reference journal) {
66
		return getTitleCache(journal, false);
67
	}
68

    
69

    
70
	@Override
71
	public String getFullAbbrevTitleString(Reference journal) {
72
		return getTitleCache(journal, true);
73
	}
74

    
75

    
76
	private String getTitleCache(Reference journal, boolean isAbbrev){
77
		if (journal == null){
78
			return null;
79
		}
80

    
81
		String title = CdmUtils.getPreferredNonEmptyString(journal.getTitle(), journal.getAbbrevTitle(), isAbbrev, true);
82

    
83
		String result = title;
84

    
85
//		//delete .
86
//		while (result.endsWith(".")){
87
//			result = result.substring(0, result.length()-1);
88
//		}
89

    
90
//		result = addYear(result, journal);
91

    
92

    
93
		TeamOrPersonBase<?> team = journal.getAuthorship();
94
		if (team != null){
95
			String author = CdmUtils.getPreferredNonEmptyString(team.getTitleCache(), team.getNomenclaturalTitle(), isAbbrev, true);
96
			if (StringUtils.isNotBlank(author)){
97
				result = author + afterAuthor + result;
98
			}
99
		}
100
		return result;
101
	}
102

    
103

    
104
	@Override
105
    public String getCitation(Reference referenceBase) {
106
		StringBuilder stringBuilder = new StringBuilder();
107

    
108
		TeamOrPersonBase<?> team = referenceBase.getAuthorship();
109
		if (team != null &&  ! (team.getTitleCache() == null) && ! team.getTitleCache().trim().equals("")){
110
			//String author = CdmUtils.Nz(team == null? "" : team.getTitleCache());
111
			stringBuilder.append(team.getTitleCache() + afterAuthor);
112
		}
113

    
114
		String year = CdmUtils.Nz(referenceBase.getYear());
115
		if (!"".equals(year)){
116
			stringBuilder.append(beforeYear + year);
117
		}
118

    
119
		return stringBuilder.toString();
120
	}
121

    
122

    
123
}
(7-7/12)