Project

General

Profile

Download (2.86 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
	private boolean inverse;
26
	private TaxonRelationshipType type;
27
	
28
	/**
29
	 * 
30
	 * @param sourceTaxon
31
	 * @param relationship
32
	 * @return
33
	 */
34
	public static TaxonRelationshipTypeInverseContainer CreateFromSource(Taxon sourceTaxon, TaxonRelationship relationship){
35
		return new TaxonRelationshipTypeInverseContainer(relationship.getType(), isRelationshipInverse(sourceTaxon, relationship));
36
	}
37
	
38
	/**
39
	 * 
40
	 * @param sourceTaxon
41
	 * @param relationship
42
	 * @return
43
	 */
44
	public static Taxon RelatedTaxon(Taxon sourceTaxon, TaxonRelationship relationship){
45
		return isRelationshipInverse(sourceTaxon, relationship) ? relationship.getFromTaxon() : relationship.getToTaxon();
46
	}
47
	
48
	/**
49
	 * 
50
	 * @param sourceTaxon
51
	 * @param relationship
52
	 * @return
53
	 */
54
	private static boolean isRelationshipInverse(Taxon sourceTaxon, TaxonRelationship relationship){
55
		return relationship.getFromTaxon().equals(sourceTaxon) ? false : true;
56
	}
57
	
58
	/**
59
	 * 
60
	 * @param type
61
	 * @param inverse
62
	 */
63
	public TaxonRelationshipTypeInverseContainer(TaxonRelationshipType type, boolean inverse){
64
		this.inverse = inverse;
65
		this.setType(type);
66
	}
67
	
68
	public boolean isInverse() {
69
		return inverse;
70
	}
71

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

    
92
	public TaxonRelationshipType getType() {
93
		return type;
94
	}
95

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

    
105
	@Override
106
	public void resetTerms() {
107
		throw new NotImplementedException();
108
	}
109

    
110
	@Override
111
	protected void setDefaultTerms(
112
			TermVocabulary<DefinedTermBase> termVocabulary) {
113
		throw new NotImplementedException();
114
	}
115
	
116
}
(28-28/31)