X-Git-Url: https://dev.e-taxonomy.eu/gitweb/cdmlib.git/blobdiff_plain/5186970a815c6dffcf83bcb7192e995e30bb807e..d723f0d5774886cb9ada03f75a82c4611a410f84:/cdmlibrary/src/main/java/eu/etaxonomy/cdm/model/common/RelationshipTermBase.java diff --git a/cdmlibrary/src/main/java/eu/etaxonomy/cdm/model/common/RelationshipTermBase.java b/cdmlibrary/src/main/java/eu/etaxonomy/cdm/model/common/RelationshipTermBase.java index 7ba2f362c1..c2174abcec 100644 --- a/cdmlibrary/src/main/java/eu/etaxonomy/cdm/model/common/RelationshipTermBase.java +++ b/cdmlibrary/src/main/java/eu/etaxonomy/cdm/model/common/RelationshipTermBase.java @@ -1,28 +1,34 @@ package eu.etaxonomy.cdm.model.common; +import java.util.HashSet; import java.util.Set; import javax.persistence.Entity; import javax.persistence.Inheritance; import javax.persistence.InheritanceType; +import javax.persistence.JoinTable; +import javax.persistence.MappedSuperclass; import javax.persistence.OneToMany; +import javax.persistence.Table; import javax.persistence.Transient; import org.apache.log4j.Logger; import org.hibernate.annotations.Cascade; import org.hibernate.annotations.CascadeType; -@Entity -@Inheritance(strategy=InheritanceType.SINGLE_TABLE) -public abstract class RelationshipTermBase extends EnumeratedTermBase { +@MappedSuperclass +public abstract class RelationshipTermBase extends OrderedTermBase { static Logger logger = Logger.getLogger(RelationshipTermBase.class); private boolean symmetric; private boolean transitive; - private Set inverseRepresentations; + private Set inverseRepresentations = new HashSet(); - public RelationshipTermBase(String term, String label, Enumeration enumeration, boolean symmetric, boolean transitive) { - super(term, label, enumeration); + public RelationshipTermBase() { + super(); + } + public RelationshipTermBase(String term, String label, boolean symmetric, boolean transitive) { + super(term, label); setSymmetric(symmetric); setTransitive(transitive); } @@ -44,6 +50,7 @@ public abstract class RelationshipTermBase extends EnumeratedTermBase { @OneToMany + @JoinTable(name="RelationshipTermBase_inverseRepresentation") @Cascade({CascadeType.SAVE_UPDATE, CascadeType.DELETE}) public Set getInverseRepresentations() { return inverseRepresentations; @@ -52,11 +59,15 @@ public abstract class RelationshipTermBase extends EnumeratedTermBase { Set inverseRepresentations) { this.inverseRepresentations = inverseRepresentations; } - public void addRepresentation(Representation representation) { - this.inverseRepresentations.add(representation); + public void addInverseRepresentation(Representation inverseRepresentation) { + this.inverseRepresentations.add(inverseRepresentation); + } + public void removeInverseRepresentation(Representation inverseRepresentation) { + this.inverseRepresentations.remove(inverseRepresentation); } - public void removeRepresentation(Representation representation) { - this.inverseRepresentations.remove(representation); + public void addRepresentation(Representation representation, Representation inverseRepresentation) { + this.addRepresentation(representation); + this.addInverseRepresentation(inverseRepresentation); } @Transient