4 package eu
.etaxonomy
.taxeditor
.model
;
6 import org
.apache
.commons
.lang
.NotImplementedException
;
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
;
19 * @created Nov 30, 2011
23 public class TaxonRelationshipTypeInverseContainer
extends DefinedTermBase
<DefinedTermBase
> {
28 private static final long serialVersionUID
= 7225140304186547675L;
29 private boolean inverse
;
30 private TaxonRelationshipType type
;
39 public static TaxonRelationshipTypeInverseContainer
CreateFromSource(Taxon sourceTaxon
, TaxonRelationship relationship
){
40 return new TaxonRelationshipTypeInverseContainer(relationship
.getType(), isRelationshipInverse(sourceTaxon
, relationship
));
49 public static Taxon
RelatedTaxon(Taxon sourceTaxon
, TaxonRelationship relationship
){
50 return isRelationshipInverse(sourceTaxon
, relationship
) ? relationship
.getFromTaxon() : relationship
.getToTaxon();
59 private static boolean isRelationshipInverse(Taxon sourceTaxon
, TaxonRelationship relationship
){
60 return relationship
.getFromTaxon().equals(sourceTaxon
) ?
false : true;
68 public TaxonRelationshipTypeInverseContainer(TaxonRelationshipType type
, boolean inverse
){
69 this.inverse
= inverse
;
73 public boolean isInverse() {
78 * returns the representation for the given language, when there is no representation for this language available, the english version is returned.
80 * @return representation
83 public Representation
getRepresentation(Language language
){
84 Representation result
;
85 result
= inverse ? type
.getInverseRepresentation(language
) : type
.getRepresentation(language
);
87 result
= inverse ? type
.getInverseRepresentation(Language
.ENGLISH()) : type
.getRepresentation(Language
.ENGLISH());
94 * returns the label of the TaxonRelationshipType for a given language, if the representation of the language is not available the english representation is returned.
98 public String
getLabel(Language language
){
100 return getRepresentation(language
).getLabel();
103 public String
getDescription(Language language
){
104 return getRepresentation(language
).getDescription();
107 public String
getAbbreviatedLabel(){
108 return getRepresentation(Language
.ENGLISH()).getAbbreviatedLabel();
111 public void setInverse(boolean inverse
) {
112 this.inverse
= inverse
;
115 public TaxonRelationshipType
getType() {
119 public void setType(TaxonRelationshipType type
) {
124 public String
getTitleCache() {
125 return String
.format("%s (%s)", getLabel(CdmStore
.getDefaultLanguage()), getAbbreviatedLabel());
129 public void resetTerms() {
130 throw new NotImplementedException();
134 protected void setDefaultTerms(
135 TermVocabulary
<DefinedTermBase
> termVocabulary
) {
136 throw new NotImplementedException();