(no commit message)
authorAndreas Müller <a.mueller@bgbm.org>
Thu, 29 May 2008 11:03:27 +0000 (11:03 +0000)
committerAndreas Müller <a.mueller@bgbm.org>
Thu, 29 May 2008 11:03:27 +0000 (11:03 +0000)
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/agent/Address.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/agent/Contact.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/agent/InstitutionalMembership.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/agent/Person.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/common/AnnotatableEntity.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/common/Annotation.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/common/Marker.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/name/TaxonNameBase.java

index 3a835aa8793b4031a1bce54b8d0fd68c84f500ca..4ac154a7969f8e7ea3d9ea8cb4f1ee38b996af0c 100644 (file)
@@ -68,15 +68,6 @@ public class Address extends VersionableEntity {
         * @see                Contact#removeAddress(Address)
         */
        protected void setContact(Contact newContact) {
-               // Hibernate bidirectional cascade hack: 
-               // http://opensource.atlassian.com/projects/hibernate/browse/HHH-1054
-               if(this.contact == newContact) return;
-               if (contact != null) { 
-                       contact.addresses.remove(this);
-               }
-               if (newContact!= null) { 
-                       newContact.addresses.add(this);
-               }
                this.contact = newContact;
        }
 
index 85342b798c12d57e70deb7877145f54426103160..691d0a9a0d1b12bb276fc9bec5e5e1b8379dd855 100644 (file)
@@ -73,7 +73,10 @@ public class Contact extends VersionableEntity {
         * @see                         Address
         */
        public void addAddress(Address address){
-               address.setContact(this);
+               if (address != null){
+                       address.setContact(this);
+                       addresses.add(address);
+               }
        }
        /** 
         * Removes one element from the set of postal addresses of this contact.
index 230b26e0f034e94225e0454b22184c3c470f5a22..59c9f44a257c4f8a2a960a9a1d6ab39f347d7fac 100644 (file)
@@ -86,16 +86,7 @@ public class InstitutionalMembership extends VersionableEntity {
         * @see               #getPerson()
         * @see               Person#removeInstitutionalMembership(InstitutionalMembership)
         */
-       public void setPerson(Person newPerson) {
-               // Hibernate bidirectional cascade hack: 
-               // http://opensource.atlassian.com/projects/hibernate/browse/HHH-1054
-               if(this.person == newPerson) return;
-               if (person != null) { 
-                       person.institutionalMemberships.remove(this);
-               }
-               if (newPerson!= null) { 
-                       newPerson.institutionalMemberships.add(this);
-               }
+       protected void setPerson(Person newPerson) {
                this.person = newPerson;
        }
 
index 165ee0fbf0bb5fd1f210e0a8b0ebc921326e50cb..a0317b997e923509aa6b465e28d0e6d016cad717 100644 (file)
@@ -135,7 +135,8 @@ public class Person extends TeamOrPersonBase {
        public void addInstitutionalMembership(Institution institution, TimePeriod period, String department, String role){
                //TODO to be implemented?
                logger.warn("not yet fully implemented?");
-               InstitutionalMembership ims = new InstitutionalMembership(institution, this, period, department, role); 
+               InstitutionalMembership ims = new InstitutionalMembership(institution, this, period, department, role);
+               institutionalMemberships.add(ims);
        }
        
        /** 
index f7c86dd771bd02864e4471e98a11708327dd5f23..4dfb9e2d4fff537d36c7ab17ff81e823db55d91d 100644 (file)
@@ -9,7 +9,6 @@
 
 package eu.etaxonomy.cdm.model.common;
 
-
 import org.apache.log4j.Logger;
 import org.hibernate.annotations.Cascade;
 import org.hibernate.annotations.CascadeType;
@@ -35,13 +34,19 @@ public abstract class AnnotatableEntity<T extends AnnotatableEntity> extends Ver
                super();
        }
 
+//*************** MARKER **********************************************
+       
+       
        @OneToMany(fetch=FetchType.LAZY)
        @Cascade({CascadeType.SAVE_UPDATE})
        public Set<Marker> getMarkers(){
                return this.markers;
        }
        public void addMarker(Marker marker){
-               marker.setMarkedObj(this);
+               if (marker != null){
+                       marker.setMarkedObj(this);
+                       markers.add(marker);
+               }
        }
        public void removeMarker(Marker marker){
                marker.setMarkedObj(null);
@@ -50,13 +55,18 @@ public abstract class AnnotatableEntity<T extends AnnotatableEntity> extends Ver
                this.markers = markers;
        }
 
+//*************** ANNOTATIONS **********************************************
+       
        @OneToMany(fetch=FetchType.EAGER) //(mappedBy="AnnotatedObj")
        @Cascade({CascadeType.SAVE_UPDATE})
        public Set<Annotation> getAnnotations(){
                return this.annotations;
        }
        public void addAnnotation(Annotation annotation){
-               annotation.setAnnotatedObj(this);
+               if (annotation != null){
+                       annotation.setAnnotatedObj(this);
+                       annotations.add(annotation);
+               }
        }
        public void removeAnnotation(Annotation annotation){
                annotation.setAnnotatedObj(null);
index ae65b7b63fd9eebfe1130dbeaf719998eb7443b8..f66d42591451a2b9ae359cf3563d29303e588dd1 100644 (file)
@@ -75,15 +75,6 @@ public class Annotation extends LanguageStringBase {
                return annotatedObj;
        }
        protected void setAnnotatedObj(AnnotatableEntity newAnnotatedObj) {
-               // Hibernate bidirectional cascade hack: 
-               // http://opensource.atlassian.com/projects/hibernate/browse/HHH-1054
-               if(this.annotatedObj == newAnnotatedObj) return;
-               if (annotatedObj != null) { 
-                       annotatedObj.annotations.remove(this);
-               }
-               if (newAnnotatedObj!= null) { 
-                       newAnnotatedObj.annotations.add(this);
-               }
                this.annotatedObj = newAnnotatedObj;            
        }
 
index 8805a89ddadfef56fdecdbfbf63d16ebe8117ee6..ef8d999ac2e5f59eea30e6de36925bcedef8d003 100644 (file)
@@ -59,15 +59,6 @@ public class Marker extends VersionableEntity {
                return markedObj;
        }
        protected void setMarkedObj(AnnotatableEntity newMarkedObject) {
-               // Hibernate bidirectional cascade hack: 
-               // http://opensource.atlassian.com/projects/hibernate/browse/HHH-1054
-               if(this.markedObj == newMarkedObject) return;
-               if (markedObj != null) { 
-                       markedObj.markers.remove(this);
-               }
-               if (newMarkedObject!= null) { 
-                       newMarkedObject.markers.add(this);
-               }
                this.markedObj = newMarkedObject;
        }
 
index f419acfecb8ef049c7a0e3d9d83e24eb2db43a09..8868a6fce34aa50f2ba0622601e8f4f25c2c0c93 100644 (file)
@@ -333,7 +333,7 @@ public abstract class TaxonNameBase<T extends TaxonNameBase> extends Identifiabl
         * @see    #getRelationsToThisName()
         * @see    #addRelationshipFromName(TaxonNameBase, NameRelationshipType, String)
         */
-       @OneToMany(mappedBy="fromName", fetch= FetchType.EAGER)
+       @OneToMany(mappedBy="relatedFrom", fetch= FetchType.EAGER)
        @Cascade({CascadeType.SAVE_UPDATE})
        public Set<NameRelationship> getRelationsFromThisName() {
                return relationsFromThisName;
@@ -350,7 +350,7 @@ public abstract class TaxonNameBase<T extends TaxonNameBase> extends Identifiabl
         * @see    #getRelationsFromThisName()
         * @see    #addRelationshipToName(TaxonNameBase, NameRelationshipType, String)
         */
-       @OneToMany(mappedBy="toName", fetch= FetchType.EAGER)
+       @OneToMany(mappedBy="relatedTo", fetch= FetchType.EAGER)
        @Cascade({CascadeType.SAVE_UPDATE})
        public Set<NameRelationship> getRelationsToThisName() {
                return relationsToThisName;