Project

General

Profile

Download (3 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.model.reference;
11

    
12
import javax.persistence.Transient;
13

    
14
import org.apache.log4j.Logger;
15

    
16
import eu.etaxonomy.cdm.strategy.cache.reference.INomenclaturalReferenceCacheStrategy;
17
import eu.etaxonomy.cdm.strategy.cache.reference.IReferenceBaseCacheStrategy;
18

    
19
/**
20
 * @author a.mueller
21
 * @created 28.06.2008
22
 * @version 1.0
23
 */
24
class NomenclaturalReferenceHelper {
25
	private static final Logger logger = Logger.getLogger(NomenclaturalReferenceHelper.class);
26
	
27
	private ReferenceBase nomenclaturalReference; 
28
	private IReferenceBaseCacheStrategy<ReferenceBase> cacheStrategy; 
29
	
30
	protected static NomenclaturalReferenceHelper NewInstance(INomenclaturalReference<ReferenceBase> nomRef){
31
		NomenclaturalReferenceHelper result = new NomenclaturalReferenceHelper();
32
		result.nomenclaturalReference = (ReferenceBase)nomRef;
33
		result.cacheStrategy = result.nomenclaturalReference.cacheStrategy;
34
		return result;
35
	}
36
	
37
	/* (non-Javadoc)
38
	 * @see eu.etaxonomy.cdm.model.reference.StrictReferenceBase#getCitation()
39
	 */
40
	@Transient
41
	public String getCitation(){
42
		//TODO
43
		logger.warn("getCitation not yet fully implemented");
44
		return cacheStrategy.getTitleCache(nomenclaturalReference);
45
	}
46

    
47
	/* (non-Javadoc)
48
	 * @see eu.etaxonomy.cdm.model.reference.INomenclaturalReference#getNomenclaturalCitation(java.lang.String)
49
	 */
50
	@Transient
51
	public String getNomenclaturalCitation(String microReference) {
52
		String result = getTokenizedFullNomenclaturalTitel();
53
		result = result.replaceAll(INomenclaturalReference.MICRO_REFERENCE_TOKEN, microReference);
54
		return result;
55
	}
56

    
57

    
58
	/* (non-Javadoc)
59
	 * @see eu.etaxonomy.cdm.model.reference.ReferenceBase#generateTitle()
60
	 */
61
	@Transient
62
	public String generateTitle(){
63
		return cacheStrategy.getTitleCache(nomenclaturalReference);
64
	}
65
	
66
	//
67
	private String getTokenizedFullNomenclaturalTitel() {
68
		if (cacheStrategy == null || ! (cacheStrategy instanceof INomenclaturalReferenceCacheStrategy) ){
69
			logger.warn("cacheStrategy == null of not instanceOf INomenclaturalReferenceCacheStrategy");
70
			return null;
71
		}
72
		return ((INomenclaturalReferenceCacheStrategy)cacheStrategy).getTokenizedNomenclaturalTitel(nomenclaturalReference);
73
	}
74
	
75
//	//
76
//	private String getTokenizedFullNomenclaturalTitel() {
77
//		if (tokenizedFullNomenclaturalTitel == null 
78
//				// FIXME || isDirty 
79
//				){ 
80
//			return ((INomenclaturalReferenceCacheStrategy)cacheStrategy).getTokenizedNomenclaturalTitel(this);
81
//			
82
//		}else{
83
//			return tokenizedFullNomenclaturalTitel;
84
//		}
85
//	}
86
	
87
//	
88
//	//for persistence
89
//	private void setTokenizedFullNomenclaturalTitel(String tokenizedFullNomenclaturalTitel) {
90
//		this.tokenizedFullNomenclaturalTitel = tokenizedFullNomenclaturalTitel;
91
//	}
92
}
(14-14/27)