Added methods for retrieving Rights and OriginalSource as part of #466 implemented...
authorben.clark <ben.clark@localhost>
Fri, 19 Dec 2008 17:28:19 +0000 (17:28 +0000)
committerben.clark <ben.clark@localhost>
Fri, 19 Dec 2008 17:28:19 +0000 (17:28 +0000)
.gitattributes
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/common/OriginalSource.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/common/init/TermLoader.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/common/package-info.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/media/Rights.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/media/RightsTerm.java
cdmlib-model/src/main/resources/terms/RightsTerm.csv [new file with mode: 0644]

index ee38fd5a2868b67e1196454dcda0679437d1f23e..5603e0be257552ff4ea63a53e2e8cfa2a929c73f 100644 (file)
@@ -879,6 +879,7 @@ cdmlib-model/src/main/resources/terms/PresenceTerm.csv -text
 cdmlib-model/src/main/resources/terms/PreservationMethod.csv -text
 cdmlib-model/src/main/resources/terms/README.TXT -text
 cdmlib-model/src/main/resources/terms/Rank.csv -text
+cdmlib-model/src/main/resources/terms/RightsTerm.csv -text
 cdmlib-model/src/main/resources/terms/Sex.csv -text
 cdmlib-model/src/main/resources/terms/StatisticalMeasure.csv -text
 cdmlib-model/src/main/resources/terms/SynonymRelationshipType.csv -text
index cb94da28327850fb45a61561e8105209b87cc1e7..01dc5bb13916acb927445831ec08f0820bb41ff9 100644 (file)
@@ -98,7 +98,7 @@ public class Annotation extends LanguageStringBase implements Cloneable {
        @XmlElement(name = "LinkbackURL")
        private URL linkbackUrl;
        
-       @Any(metaDef = "AnnotatableEntity",
+       @Any(metaDef = "CdmBase",
                 metaColumn=@Column(name = "annotatedObj_type"),
                 fetch = FetchType.LAZY,
                 optional = false)
index fd1d863c09d567511b3d07f9f0095c5a63cd71a7..d8a8df40594f98aa0461c88a7d26043ad771d61d 100644 (file)
@@ -87,7 +87,7 @@ public class Marker extends VersionableEntity implements Cloneable{
        /**
         * @return
         */
-       @Any(metaDef = "AnnotatableEntity",
+       @Any(metaDef = "CdmBase",
                     fetch=FetchType.LAZY, 
                     metaColumn = @Column(name="markedObj_type"),
                     optional = false)
index 2b226741901f70013b834517d9129dbb914914a3..14231f74631f97b52547bb5ac2593a48752e5385 100644 (file)
 package eu.etaxonomy.cdm.model.common;
 
 
+import javax.persistence.Column;
 import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.JoinColumn;
 import javax.persistence.Transient;
 import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
@@ -20,6 +23,7 @@ import javax.xml.bind.annotation.XmlTransient;
 import javax.xml.bind.annotation.XmlType;
 
 import org.apache.log4j.Logger;
+import org.hibernate.annotations.Any;
 
 import eu.etaxonomy.cdm.model.reference.ReferenceBase;
 
@@ -119,12 +123,15 @@ public class OriginalSource extends ReferencedEntityBase implements Cloneable{
        }
 
 
-//     @ManyToOne
-//     @Cascade(CascadeType.SAVE_UPDATE)
-       @Transient //beacause IdentifiableEntity is MappedSuperclass
+       @Any(metaDef = "CdmBase",
+                metaColumn=@Column(name = "sourcedObj_type"),
+                fetch = FetchType.LAZY,
+                optional = false)
+       @JoinColumn(name = "sourcedObj_id")
        public IdentifiableEntity getSourcedObj() {
                return sourcedObj;
        }
+       
        public void setSourcedObj(IdentifiableEntity sourcedObj) {
                this.sourcedObj = sourcedObj;
        }
index f19ce1d5c50d5c196c99b73857fb9d2f16ffbace..a2c1e2d9140ed8de04e361ecdb588164266eaaa2 100644 (file)
@@ -36,6 +36,7 @@ import eu.etaxonomy.cdm.model.location.NamedArea;
 import eu.etaxonomy.cdm.model.location.NamedAreaLevel;
 import eu.etaxonomy.cdm.model.location.NamedAreaType;
 import eu.etaxonomy.cdm.model.location.WaterbodyOrCountry;
+import eu.etaxonomy.cdm.model.media.RightsTerm;
 import eu.etaxonomy.cdm.model.name.HybridRelationshipType;
 import eu.etaxonomy.cdm.model.name.NameRelationshipType;
 import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
@@ -181,6 +182,7 @@ public class TermLoader {
                insertDefaultTerms(PreservationMethod.class, NOT_ORDERED);
                insertDefaultTerms(DeterminationModifier.class, ORDERED);
                insertDefaultTerms(StatisticalMeasure.class, NOT_ORDERED);
+               insertDefaultTerms(RightsTerm.class, NOT_ORDERED);
                logger.debug("terms loaded");
                return true;
        }
index 77a11d4f3ec9bd037aebd8de776b479e9259e04a..ba7889fe41b5013f6bcb3cf7a1a5f4987053910a 100644 (file)
@@ -10,7 +10,7 @@
        @org.hibernate.annotations.TypeDef(name="partialUserType", typeClass=eu.etaxonomy.cdm.model.common.PartialUserType.class),\r
        @org.hibernate.annotations.TypeDef(name="uuidUserType", typeClass=eu.etaxonomy.cdm.model.common.UUIDUserType.class)\r
 })\r
-@org.hibernate.annotations.AnyMetaDef(name = "AnnotatableEntity" ,\r
+@org.hibernate.annotations.AnyMetaDef(name = "CdmBase" ,\r
                                              metaType="string", \r
                                              idType="integer",\r
                                              metaValues={\r
index 2eaff8f5a1611862e38cc789e342a217a3af87b0..cd4f9c7bbde25486fe3574389faa38e011b349a5 100644 (file)
@@ -98,7 +98,7 @@ public class Rights extends LanguageStringBase {
        }
 
        
-       @Transient
+       @ManyToOne(fetch = FetchType.LAZY)
        @Cascade({CascadeType.SAVE_UPDATE})
        public RightsTerm getType(){
                return this.type;
index 6a993d5285d72ee6c3cd63551ffb4b7d10c24585..2f4e7e579d41ff3aec51fe28d84a1061c3d768cc 100644 (file)
@@ -9,9 +9,12 @@
 
 package eu.etaxonomy.cdm.model.media;
 
+import java.util.UUID;
+
 import org.apache.log4j.Logger;
 
 import eu.etaxonomy.cdm.model.common.DefinedTermBase;
+import eu.etaxonomy.cdm.model.description.Feature;
 
 import javax.persistence.*;
 import javax.xml.bind.annotation.XmlAccessType;
@@ -64,20 +67,36 @@ public class RightsTerm extends DefinedTermBase<RightsTerm> {
                super(term, label, labelAbbrev);
        }
 
+       /**
+        * Returns the rights term identified through its immutable universally
+        * unique identifier (UUID).
+        * 
+        * @param       uuid    the universally unique identifier
+        * @return              the rights term corresponding to the given
+        *                                      universally unique identifier
+        */
+       public static final RightsTerm getByUuid(UUID uuid){
+               return (RightsTerm)findByUuid(uuid);
+       }
+       
 
        /**
         * http://purl.org/dc/terms/accessRights
         */
        public static final RightsTerm ACCESS_RIGHTS(){
-               return null;
+               return getByUuid(uuidAccessRights);
        }
 
        public static final RightsTerm COPYRIGHT(){
-               return null;
+               return getByUuid(uuidCopyright);
        }
 
        public static final RightsTerm LICENSE(){
-               return null;
+               return getByUuid(uuidLicense);
        }
+       
+       private static final UUID uuidLicense = UUID.fromString("67c0d47e-8985-1014-8845-c84599f9992c");
+       private static final UUID uuidCopyright = UUID.fromString("d1ef838e-b195-4f28-b8eb-0d3be080bd37");
+       private static final UUID uuidAccessRights = UUID.fromString("a50b4def-b3ac-4508-b50a-e0f249e3a1d7");
 
 }
\ No newline at end of file
diff --git a/cdmlib-model/src/main/resources/terms/RightsTerm.csv b/cdmlib-model/src/main/resources/terms/RightsTerm.csv
new file mode 100644 (file)
index 0000000..94f4f16
--- /dev/null
@@ -0,0 +1,3 @@
+"8627c526-73af-44d9-902c-11c1f11b60b4",,"RightsTerm","RightsTerm",\r
+"67c0d47e-8985-1014-8845-c84599f9992c",,"license",\r
+"d1ef838e-b195-4f28-b8eb-0d3be080bd37",,"copyright",\r"a50b4def-b3ac-4508-b50a-e0f249e3a1d7",,"access rights",