Fixed marshalling/unmarshalling of ReferenceBase, TypeDesignationBase, etc.
authora.babadshanjan <a.babadshanjan@localhost>
Fri, 5 Sep 2008 11:02:21 +0000 (11:02 +0000)
committera.babadshanjan <a.babadshanjan@localhost>
Fri, 5 Sep 2008 11:02:21 +0000 (11:02 +0000)
Added saveAll() to CdmEntityDaoBase.

cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/common/OriginalSource.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/common/RelationshipTermBase.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/common/TermBase.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/media/MediaRepresentation.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/name/TypeDesignationBase.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/reference/PrintedUnitBase.java

index be1fa59726dcc18073d33600ddf8f75af6c0cc9e..0fae607de7021996846797a7dce839921a69e139 100644 (file)
@@ -12,6 +12,12 @@ package eu.etaxonomy.cdm.model.common;
 
 import javax.persistence.Entity;
 import javax.persistence.Transient;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlTransient;
+import javax.xml.bind.annotation.XmlType;
 
 import org.apache.log4j.Logger;
 
@@ -23,12 +29,25 @@ import org.apache.log4j.Logger;
  * @created 08-Nov-2007 13:06:22
  */
 
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "OriginalSource", propOrder = {
+    "idInSource",
+    "idNamespace"
+})
+@XmlRootElement(name = "OriginalSource")
 @Entity
 public class OriginalSource extends ReferencedEntityBase implements Cloneable{
+       
        static Logger logger = Logger.getLogger(OriginalSource.class);
+       
        //The object's ID in the source, where the alternative string comes from
+       @XmlElement(name = "IdInSource")
        private String idInSource;
+       
+       @XmlElement(name = "IdNamespace")
        private String idNamespace;
+       
+       @XmlTransient
        private IdentifiableEntity sourcedObj;
 
        /**
index 438c6d3cbd568b912f77b2fab82693dfe54d4d13..0804e28f6bba2b9e7a3762c80ef8ca1368956fd0 100644 (file)
@@ -8,7 +8,14 @@ import javax.persistence.JoinTable;
 import javax.persistence.MappedSuperclass;
 import javax.persistence.OneToMany;
 import javax.persistence.Transient;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElementWrapper;
+import javax.xml.bind.annotation.XmlIDREF;
 import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
 
 import org.apache.log4j.Logger;
 import org.hibernate.annotations.Cascade;
@@ -16,13 +23,28 @@ import org.hibernate.annotations.CascadeType;
 
 import au.com.bytecode.opencsv.CSVWriter;
 
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "RelationshipTermBase", propOrder = {
+    "symmetric",
+    "transitive",
+    "inverseRepresentations"
+})
 @XmlRootElement(name = "RelationshipTermBase")
 @MappedSuperclass
 public abstract class RelationshipTermBase<T extends RelationshipTermBase> extends OrderedTermBase<T> {
+       
        static Logger logger = Logger.getLogger(RelationshipTermBase.class);
        
+       @XmlElement(name = "Symmetric")
        private boolean symmetric;
+       
+       @XmlElement(name = "Transitive")
        private boolean transitive;
+       
+       @XmlElementWrapper(name = "InverseRepresentations")
+       @XmlElement(name = "InverseRepresentation")
+       @XmlIDREF
+       @XmlSchemaType(name = "IDREF")
        private Set<Representation> inverseRepresentations = new HashSet();
        
        public RelationshipTermBase() {
index acaf63bb820c7c4a0ba01f2453094010dd8510dc..ec07de11b18d1f852d3743431b1de6c996ca9e06 100644 (file)
@@ -37,8 +37,8 @@ public abstract class TermBase extends VersionableEntity {
        
        @XmlElementWrapper(name = "Representations")
        @XmlElement(name = "Representation")
-    @XmlIDREF
-    @XmlSchemaType(name = "IDREF")
+//    @XmlIDREF
+//    @XmlSchemaType(name = "IDREF")
        private Set<Representation> representations = new HashSet<Representation>();
        
        public TermBase(){
index e61dec77e4404dbcde98f9dad6c71c070f293cc4..45cf1379ddb0e0d1bf67c5e5055229bf4aa3e4db 100644 (file)
@@ -38,8 +38,8 @@ import javax.xml.bind.annotation.XmlType;
 @XmlAccessorType(XmlAccessType.FIELD)
 @XmlType(name = "MediaRepresentation", propOrder = {
        "mimeType",
-    "suffix"
-//    "mediaRepresentationParts"
+    "suffix",
+    "mediaRepresentationParts"
 })
 @Entity
 @Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@@ -58,19 +58,14 @@ public class MediaRepresentation extends VersionableEntity {
        @XmlTransient
        private Media media;
        
-    @XmlTransient
-    //FIXME: ArrayIndexOutOfBoundException during marshalling
-//     @XmlElementWrapper(name = "MediaRepresentationParts")
-//     @XmlElement(name = "MediaRepresentationPart", type = ArrayList.class)
-//    @XmlElements({
-//        @XmlElement(name = "AudioFile", namespace = "http://etaxonomy.eu/cdm/model/media/1.0", type = CategoricalData.class),
-//        @XmlElement(name = "ImageFile", namespace = "http://etaxonomy.eu/cdm/model/media/1.0", type = CommonTaxonName.class),
-//        @XmlElement(name = "MovieFile", namespace = "http://etaxonomy.eu/cdm/model/media/1.0", type = Distribution.class),
-//    })
+       @XmlElementWrapper(name = "MediaRepresentationParts")
+    @XmlElements({
+        @XmlElement(name = "AudioFile", namespace = "http://etaxonomy.eu/cdm/model/media/1.0", type = AudioFile.class),
+        @XmlElement(name = "ImageFile", namespace = "http://etaxonomy.eu/cdm/model/media/1.0", type = ImageFile.class),
+        @XmlElement(name = "MovieFile", namespace = "http://etaxonomy.eu/cdm/model/media/1.0", type = MovieFile.class),
+    })
        private List<MediaRepresentationPart> mediaRepresentationParts = new ArrayList<MediaRepresentationPart>();
 
-       // Defining mediaRepresentationParts as ArrayList gives hibernate.AnnotationException           
-
        /**
         * Factory method
         * @return
@@ -138,7 +133,7 @@ public class MediaRepresentation extends VersionableEntity {
        
        
        @OneToMany(mappedBy="mediaRepresentation",fetch= FetchType.LAZY)
-       @IndexColumn(name="sortIndex", base = 1)
+       @IndexColumn(name="sortIndex", base = 0)
        @Cascade({CascadeType.SAVE_UPDATE, CascadeType.DELETE})
        public List<MediaRepresentationPart> getParts(){
                return this.mediaRepresentationParts;
index 4cb9c370d79b85fc863c4c51c193997b830cd912..384f92a83322670c1c08c0c18d5632edae60f2b8 100644 (file)
@@ -49,7 +49,7 @@ import eu.etaxonomy.cdm.model.reference.ReferenceBase;
  */\r
 @XmlRootElement(name = "TypeDesignationBase")\r
 @XmlType(name = "TypeDesignationBase", propOrder = {\r
-//    "typifiedNames",\r
+    "typifiedNames",\r
     "homotypicalGroup",\r
     "isNotDesignated"\r
 })\r
@@ -62,12 +62,11 @@ public abstract class TypeDesignationBase extends ReferencedEntityBase implement
        @XmlElement(name = "IsNotDesignated")\r
        private boolean isNotDesignated;\r
        \r
-    // Need the bidirectional reference?\r
-       @XmlTransient\r
-//     @XmlElementWrapper(name = "TypifiedNames")\r
-//     @XmlElement(name = "TypifiedName")\r
-//     @XmlIDREF\r
-//     @XmlSchemaType(name = "IDREF")\r
+       @XmlElementWrapper(name = "TypifiedNames")\r
+       @XmlElement(name = "TypifiedName")\r
+       @XmlIDREF\r
+       @XmlSchemaType(name = "IDREF")\r
+    // Need these references (bidirectional) to fill table TypeDesignationBase_TaxonNameBase\r
        private Set<TaxonNameBase> typifiedNames = new HashSet<TaxonNameBase>();\r
        \r
        @XmlElement(name = "HomotypicalGroup")\r
index cef6a11622bb0fb6403485c19b598f1b16dd31c3..6632c12391d111b7dea25145e47a00ca6f74212c 100644 (file)
@@ -15,7 +15,9 @@ import javax.persistence.ManyToOne;
 import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlIDREF;
 import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlSchemaType;
 import javax.xml.bind.annotation.XmlType;
 
 import org.apache.log4j.Logger;
@@ -56,6 +58,8 @@ public abstract class PrintedUnitBase extends PublicationBase {
        private String pages;
        
     @XmlElement(name = "InSeries")
+    @XmlIDREF
+    @XmlSchemaType(name = "IDREF")
        private PrintSeries inSeries;
        
     @XmlElement(name = "SeriesPart")