JAXB annotations
authora.babadshanjan <a.babadshanjan@localhost>
Fri, 27 Jun 2008 15:33:06 +0000 (15:33 +0000)
committera.babadshanjan <a.babadshanjan@localhost>
Fri, 27 Jun 2008 15:33:06 +0000 (15:33 +0000)
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/taxon/Synonym.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/taxon/SynonymRelationship.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/taxon/SynonymRelationshipType.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/taxon/Taxon.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/taxon/TaxonBase.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/taxon/TaxonRelationship.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/taxon/TaxonRelationshipType.java

index d118cfb8fd7c07d71f2af7a15a0f94da4584e0a9..0d4ed01cd33686a39f94ee4aaca59c06444746c8 100644 (file)
@@ -20,18 +20,30 @@ import eu.etaxonomy.cdm.model.reference.ReferenceBase;
 import java.util.*;
 
 import javax.persistence.*;
+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.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
 
 /**
  * @author m.doering
  * @version 1.0
  * @created 08-Nov-2007 13:06:55
  */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "Synonym", propOrder = {
+    "synonymRelations"
+})
 @XmlRootElement(name = "Synonym")
 @Entity
 public class Synonym extends TaxonBase implements IRelated<SynonymRelationship>{
+       
        static Logger logger = Logger.getLogger(Synonym.class);
        
+       @XmlElementWrapper(name = "SynonymRelations")
+       @XmlElement(name = "SynonymRelationship")
        private Set<SynonymRelationship> synonymRelations = new HashSet<SynonymRelationship>();
 
        public static Synonym NewInstance(TaxonNameBase taxonName, ReferenceBase sec){
index 5e5d59c5f9072ca15c8ce9eb08c94933e12024ff..49f3549fa6456c1f45280b7b63a767eb19c55a31 100644 (file)
@@ -14,12 +14,19 @@ import eu.etaxonomy.cdm.model.reference.ReferenceBase;
 
 import org.apache.log4j.Logger;
 import javax.persistence.*;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
 
 /**
  * @author m.doering
  * @version 1.0
  * @created 08-Nov-2007 13:06:55
  */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "")
+@XmlRootElement(name = "SynonymRelationship")
 @Entity
 public class SynonymRelationship extends RelationshipBase<Synonym, Taxon, SynonymRelationshipType> {
        private static final Logger logger = Logger.getLogger(SynonymRelationship.class);
index 0ecca7c7d59bfa2caa8f5b8d40e7e8cb96a39568..f4212be4e4fc781c26828c9cdde11d582fae50c0 100644 (file)
@@ -13,6 +13,10 @@ package eu.etaxonomy.cdm.model.taxon;
 import java.util.UUID;
 
 import javax.persistence.Entity;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlType;
+
 import org.apache.log4j.Logger;
 import eu.etaxonomy.cdm.model.common.RelationshipTermBase;
 
@@ -22,8 +26,11 @@ import eu.etaxonomy.cdm.model.common.RelationshipTermBase;
  * @created 08-Nov-2007 13:06:55
  * http://rs.tdwg.org/ontology/voc/TaxonConcept#TaxonRelationshipTerm
  */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "SynonymRelationshipType")
 @Entity
 public class SynonymRelationshipType extends RelationshipTermBase<SynonymRelationshipType> {
+       
        static Logger logger = Logger.getLogger(SynonymRelationshipType.class);
 
        private static final UUID uuidSynonymOf = UUID.fromString("1afa5429-095a-48da-8877-836fa4fe709e");
index 0f164a684d455a35456c5193c58baad682a080ec..284b01b3d55a5065d4151d7afa6f713fc2789846 100644 (file)
@@ -25,8 +25,15 @@ import java.lang.reflect.Method;
 import java.util.*;
 
 import javax.persistence.*;
+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.XmlTransient;
+import javax.xml.bind.annotation.XmlType;
 
 /**
  * An accepted potential taxon defined by the combination of a Name and a sec reference
@@ -35,24 +42,56 @@ import javax.xml.bind.annotation.XmlTransient;
  * @version 1.0
  * @created 08-Nov-2007 13:06:56
  */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "", propOrder = {
+    "taxonomicParentCache",
+    "taxonomicChildrenCount",
+    "synonymRelations",
+    "relationsFromThisTaxon",
+    "relationsToThisTaxon",
+    "descriptions"
+})
 @XmlRootElement(name = "Taxon")
 @Entity
 public class Taxon extends TaxonBase implements Iterable<Taxon>, IRelated<RelationshipBase>{
+
        static Logger logger = Logger.getLogger(Taxon.class);
+
+       @XmlElementWrapper(name = "Descriptions")
+       @XmlElement(name = "Description")
        private Set<TaxonDescription> descriptions = new HashSet<TaxonDescription>();
+
        // all related synonyms
-       @XmlTransient
-       // Cycle detected
+       @XmlElementWrapper(name = "SynonymRelations")
+       @XmlElement(name = "SynonymRelationship")
+       // FIXME: Remove @XmlIDREF.
+       // FIXME: "unable to marshal type "Synonym" as an element because it is missing an @XmlRootElement annotation"
+       @XmlIDREF
+       @XmlSchemaType(name = "IDREF")
        private Set<SynonymRelationship> synonymRelations = new HashSet<SynonymRelationship>();
+
        // all taxa relations with rel.fromTaxon==this
-       @XmlTransient
+       @XmlElementWrapper(name = "RelationsFromThisTaxon")
+       @XmlElement(name = "FromThisTaxonRelationship")
+       // FIXME: Remove @XmlIDREF. Fix stack overflow.
+       @XmlIDREF
+       @XmlSchemaType(name = "IDREF")
        private Set<TaxonRelationship> relationsFromThisTaxon = new HashSet<TaxonRelationship>();
+
        // all taxa relations with rel.toTaxon==this
-       @XmlTransient
+       @XmlElementWrapper(name = "RelationsToThisTaxon")
+       @XmlElement(name = "ToThisTaxonRelationship")
+       // FIXME: Remove @XmlIDREF. Fix stck overflow.
+       @XmlIDREF
+       @XmlSchemaType(name = "IDREF")
        private Set<TaxonRelationship> relationsToThisTaxon = new HashSet<TaxonRelationship>();
+
        // shortcut to the taxonomicIncluded (parent) taxon. Managed by the taxonRelations setter
+       @XmlElement(name = "TaxonomicParentCache")
        private Taxon taxonomicParentCache;
+
        //cached number of taxonomic children
+       @XmlElement(name = "TaxonomicChildrenCount")
        private int taxonomicChildrenCount;
 
        private static Method methodDescriptionSetTaxon;
index 380e186a3ce5546293502ce2088604b0d6e864a5..cf699af3be0dc92f456d9f5bb3d3031784c8fae1 100644 (file)
@@ -23,7 +23,15 @@ import org.hibernate.annotations.Table;
 import java.lang.reflect.Method;
 
 import javax.persistence.*;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+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.XmlTransient;
+import javax.xml.bind.annotation.XmlType;
 
 /**
  * Upmost abstract class for the use of a taxon name by a reference either
@@ -35,9 +43,15 @@ import javax.xml.bind.annotation.XmlTransient;
  * @version 1.0
  * @created 08-Nov-2007 13:06:56
  */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "TaxonBase", propOrder = {
+    "name",
+    "sec"
+})
 @Entity
 @Table(appliesTo="TaxonBase", indexes = { @Index(name = "taxonBaseTitleCacheIndex", columnNames = { "titleCache" }) })
 public abstract class TaxonBase extends IdentifiableEntity {
+       
        static Logger logger = Logger.getLogger(TaxonBase.class);
        
        private static Method methodTaxonNameAddTaxonBase;
@@ -68,10 +82,18 @@ public abstract class TaxonBase extends IdentifiableEntity {
        }
        
        //The assignment to the Taxon or to the Synonym class is not definitive
+    @XmlAttribute(name = "isDoubtful")
        private boolean isDoubtful;
-       @XmlTransient
+       
+    @XmlElement(name = "Name", required = true)
+    @XmlIDREF
+    @XmlSchemaType(name = "IDREF")
        private TaxonNameBase name;
+       
        // The concept reference
+    @XmlElement(name = "Sec")
+    @XmlIDREF
+    @XmlSchemaType(name = "IDREF")
        private ReferenceBase sec;
 
        @Override
index 7a6f084e8afaa80ed347392076552c2e8bb08ce8..42c13f26d71f56fb514bf7788e2788c3a9a30036 100644 (file)
@@ -14,15 +14,30 @@ import eu.etaxonomy.cdm.model.reference.ReferenceBase;
 
 import org.apache.log4j.Logger;
 import javax.persistence.*;
+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;
 
 /**
  * @author m.doering
  * @version 1.0
  * @created 08-Nov-2007 13:06:58
  */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "")
+@XmlRootElement(name = "TaxonRelationship")
 @Entity
 public class TaxonRelationship extends RelationshipBase<Taxon, Taxon, TaxonRelationshipType> {
+
        static private final Logger logger = Logger.getLogger(TaxonRelationship.class);
+
+    @XmlElement(name = "Type")
+    @XmlIDREF
+    @XmlSchemaType(name = "IDREF")
        private TaxonRelationshipType type;
        
        //for hibernate, don't use
index 39fad54a3da5a641568662e8e414392be807a25f..bafca811e460188e4cd58d1e16a1a9b9e8846ef9 100644 (file)
@@ -13,6 +13,10 @@ package eu.etaxonomy.cdm.model.taxon;
 import eu.etaxonomy.cdm.model.common.RelationshipTermBase;
 import org.apache.log4j.Logger;
 import javax.persistence.*;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlType;
+
 import java.util.UUID;
 
 
@@ -22,8 +26,11 @@ import java.util.UUID;
  * @created 08-Nov-2007 13:06:17
  * http://rs.tdwg.org/ontology/voc/TaxonConcept#TaxonRelationshipTerm
  */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "TaxonRelationshipType")
 @Entity
 public class TaxonRelationshipType extends RelationshipTermBase<TaxonRelationshipType> {
+       
        static Logger logger = Logger.getLogger(TaxonRelationshipType.class);
 
        private static final UUID uuidTaxonomicallyIncludedIn = UUID.fromString("d13fecdf-eb44-4dd7-9244-26679c05df1c");