Project

General

Profile

Download (2.94 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
 * 
3
 */
4
package eu.etaxonomy.taxeditor.model;
5

    
6
import org.apache.commons.lang.NotImplementedException;
7

    
8
import eu.etaxonomy.cdm.model.common.DefinedTermBase;
9
import eu.etaxonomy.cdm.model.common.Language;
10
import eu.etaxonomy.cdm.model.common.Representation;
11
import eu.etaxonomy.cdm.model.common.TermVocabulary;
12
import eu.etaxonomy.cdm.model.taxon.Taxon;
13
import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
14
import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
15
import eu.etaxonomy.taxeditor.store.CdmStore;
16

    
17
/**
18
 * @author n.hoffmann
19
 * @created Nov 30, 2011
20
 * @version 1.0
21
 *
22
 */
23
public class TaxonRelationshipTypeInverseContainer extends DefinedTermBase<DefinedTermBase> {
24
	
25
	/**
26
	 * 
27
	 */
28
	private static final long serialVersionUID = 7225140304186547675L;
29
	private boolean inverse;
30
	private TaxonRelationshipType type;
31
	
32
	/**
33
	 * 
34
	 * @param sourceTaxon
35
	 * @param relationship
36
	 * @return
37
	 */
38
	public static TaxonRelationshipTypeInverseContainer CreateFromSource(Taxon sourceTaxon, TaxonRelationship relationship){
39
		return new TaxonRelationshipTypeInverseContainer(relationship.getType(), isRelationshipInverse(sourceTaxon, relationship));
40
	}
41
	
42
	/**
43
	 * 
44
	 * @param sourceTaxon
45
	 * @param relationship
46
	 * @return
47
	 */
48
	public static Taxon RelatedTaxon(Taxon sourceTaxon, TaxonRelationship relationship){
49
		return isRelationshipInverse(sourceTaxon, relationship) ? relationship.getFromTaxon() : relationship.getToTaxon();
50
	}
51
	
52
	/**
53
	 * 
54
	 * @param sourceTaxon
55
	 * @param relationship
56
	 * @return
57
	 */
58
	private static boolean isRelationshipInverse(Taxon sourceTaxon, TaxonRelationship relationship){
59
		return relationship.getFromTaxon().equals(sourceTaxon) ? false : true;
60
	}
61
	
62
	/**
63
	 * 
64
	 * @param type
65
	 * @param inverse
66
	 */
67
	public TaxonRelationshipTypeInverseContainer(TaxonRelationshipType type, boolean inverse){
68
		this.inverse = inverse;
69
		this.setType(type);
70
	}
71
	
72
	public boolean isInverse() {
73
		return inverse;
74
	}
75

    
76
	public Representation getRepresentation(Language language){
77
		return inverse ? type.getInverseRepresentation(language) : type.getRepresentation(language);
78
	}
79
	
80
	public String getLabel(Language language){
81
		return getRepresentation(language).getLabel();
82
	}
83
	
84
	public String getDescription(Language language){
85
		return getRepresentation(language).getDescription();
86
	}
87
	
88
	public String getAbbreviatedLabel(){
89
		return getRepresentation(Language.ENGLISH()).getAbbreviatedLabel();
90
	}
91
	
92
	public void setInverse(boolean inverse) {
93
		this.inverse = inverse;
94
	}
95

    
96
	public TaxonRelationshipType getType() {
97
		return type;
98
	}
99

    
100
	public void setType(TaxonRelationshipType type) {
101
		this.type = type;
102
	}
103
	
104
	@Override
105
	public String getTitleCache() {
106
		return String.format("%s (%s)", getLabel(CdmStore.getDefaultLanguage()), getAbbreviatedLabel());
107
	}
108

    
109
	@Override
110
	public void resetTerms() {
111
		throw new NotImplementedException();
112
	}
113

    
114
	@Override
115
	protected void setDefaultTerms(
116
			TermVocabulary<DefinedTermBase> termVocabulary) {
117
		throw new NotImplementedException();
118
	}
119
	
120
}
(28-28/31)