4 package eu
.etaxonomy
.taxeditor
.model
;
6 import org
.apache
.commons
.lang3
.NotImplementedException
;
8 import eu
.etaxonomy
.cdm
.model
.common
.Language
;
9 import eu
.etaxonomy
.cdm
.model
.taxon
.Taxon
;
10 import eu
.etaxonomy
.cdm
.model
.taxon
.TaxonRelationship
;
11 import eu
.etaxonomy
.cdm
.model
.taxon
.TaxonRelationshipType
;
12 import eu
.etaxonomy
.cdm
.model
.term
.DefinedTermBase
;
13 import eu
.etaxonomy
.cdm
.model
.term
.Representation
;
14 import eu
.etaxonomy
.cdm
.model
.term
.TermVocabulary
;
15 import eu
.etaxonomy
.taxeditor
.store
.CdmStore
;
19 * @created Nov 30, 2011
21 public class TaxonRelationshipTypeInverseContainer
extends DefinedTermBase
<DefinedTermBase
> {
23 private static final long serialVersionUID
= 7225140304186547675L;
24 private boolean inverse
;
25 private TaxonRelationshipType type
;
34 public static TaxonRelationshipTypeInverseContainer
CreateFromSource(Taxon sourceTaxon
, TaxonRelationship relationship
){
35 return new TaxonRelationshipTypeInverseContainer(relationship
.getType(), isRelationshipInverse(sourceTaxon
, relationship
));
44 public static Taxon
RelatedTaxon(Taxon sourceTaxon
, TaxonRelationship relationship
){
45 return isRelationshipInverse(sourceTaxon
, relationship
) ? relationship
.getFromTaxon() : relationship
.getToTaxon();
54 private static boolean isRelationshipInverse(Taxon sourceTaxon
, TaxonRelationship relationship
){
55 return relationship
.getFromTaxon().equals(sourceTaxon
) ?
false : true;
63 public TaxonRelationshipTypeInverseContainer(TaxonRelationshipType type
, boolean inverse
){
64 this.inverse
= inverse
;
68 public boolean isInverse() {
73 * returns the representation for the given language, when there is no representation for this language available, the english version is returned.
75 * @return representation
79 public Representation
getRepresentation(Language language
){
80 Representation result
;
81 result
= inverse ? type
.getInverseRepresentation(language
) : type
.getRepresentation(language
);
84 type
.getInverseRepresentation(Language
.getLanguageFromUuid(Language
.uuidEnglish
)) :
85 type
.getRepresentation(Language
.getLanguageFromUuid(Language
.uuidEnglish
));
88 result
= type
.getInverseRepresentations().isEmpty() ?
null : type
.getInverseRepresentations().iterator().next();
90 result
= type
.getRepresentations().isEmpty() ?
null : type
.getRepresentations().iterator().next();
99 * returns the label of the TaxonRelationshipType for a given language, if the representation of the language is not available the english representation is returned.
104 public String
getLabel(Language language
){
105 return getRepresentation(language
).getLabel();
109 public String
getDescription(Language language
){
110 return getRepresentation(language
).getDescription();
113 public String
getAbbreviatedLabel(){
114 return getRepresentation(Language
.getLanguageFromUuid(Language
.uuidEnglish
)).getAbbreviatedLabel();
117 public void setInverse(boolean inverse
) {
118 this.inverse
= inverse
;
121 public TaxonRelationshipType
getType() {
125 public void setType(TaxonRelationshipType type
) {
130 public String
getTitleCache() {
131 return String
.format("%s (%s)", getLabel(CdmStore
.getDefaultLanguage()), getAbbreviatedLabel());
135 public void resetTerms() {
136 throw new NotImplementedException();
140 protected void setDefaultTerms(
141 TermVocabulary
<DefinedTermBase
> termVocabulary
) {
142 throw new NotImplementedException();