(no commit message)
authorAndreas Müller <a.mueller@bgbm.org>
Mon, 9 Jun 2008 14:25:58 +0000 (14:25 +0000)
committerAndreas Müller <a.mueller@bgbm.org>
Mon, 9 Jun 2008 14:25:58 +0000 (14:25 +0000)
.gitattributes
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/media/AudioFile.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/media/ImageFile.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/media/Media.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/media/MediaInstance.java [deleted file]
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/media/MediaRepresentation.java [new file with mode: 0644]
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/media/MediaRepresentationPart.java [new file with mode: 0644]
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/media/ReferencedMedia.java
cdmlib-model/src/test/java/eu/etaxonomy/cdm/test/function/TestSpecimen.java

index 5c908b717b378ca6bfff34893458ed51ea8b93bf..cc20c8a1f945b6eeb3b4cb14c4dcf5816c6baf20 100644 (file)
@@ -146,7 +146,8 @@ cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/media/IMediaDocumented.java -t
 cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/media/IdentifyableMediaEntity.java -text
 cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/media/ImageFile.java -text
 cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/media/Media.java -text
-cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/media/MediaInstance.java -text
+cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/media/MediaRepresentation.java -text
+cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/media/MediaRepresentationPart.java -text
 cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/media/MovieFile.java -text
 cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/media/ReferencedMedia.java -text
 cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/media/Rights.java -text
index 37bd10bac686138f62baa9cfca2d44b41205e578..c72ec5955f4b0f47e1f5f3d419c37022494b855b 100644 (file)
@@ -11,8 +11,6 @@ package eu.etaxonomy.cdm.model.media;
 
 import org.apache.log4j.Logger;
 
-import eu.etaxonomy.cdm.model.description.FeatureNode;
-
 import javax.persistence.*;
 
 /**
@@ -21,7 +19,7 @@ import javax.persistence.*;
  * @created 08-Nov-2007 13:06:11
  */
 @Entity
-public class AudioFile extends MediaInstance {
+public class AudioFile extends MediaRepresentationPart {
        private static final Logger logger = Logger.getLogger(AudioFile.class);
        
        //length of recording in seconds
index dcef19c20a43113ab93c6ebd6df1f08a302e03e5..af63d3808606047f2dbf0dffaac6e11275437596 100644 (file)
@@ -12,8 +12,6 @@ package eu.etaxonomy.cdm.model.media;
 
 import org.apache.log4j.Logger;
 
-
-import java.util.*;
 import javax.persistence.*;
 
 /**
@@ -22,7 +20,7 @@ import javax.persistence.*;
  * @created 08-Nov-2007 13:06:28
  */
 @Entity
-public class ImageFile extends MediaInstance {
+public class ImageFile extends MediaRepresentationPart {
        static Logger logger = Logger.getLogger(ImageFile.class);
        //image height in pixel
        private int height;
index 6dfa687e315d23c44510230412d63f44dd42c738..ee5691bef4cf6a781908f7359a26fdb0af1318e2 100644 (file)
@@ -11,7 +11,6 @@ package eu.etaxonomy.cdm.model.media;
 
 
 import eu.etaxonomy.cdm.model.agent.Agent;
-import eu.etaxonomy.cdm.model.agent.Team;
 import eu.etaxonomy.cdm.model.common.AnnotatableEntity;
 import eu.etaxonomy.cdm.model.common.Language;
 import eu.etaxonomy.cdm.model.common.LanguageString;
@@ -56,23 +55,30 @@ public class Media extends AnnotatableEntity {
        private MultilanguageSet description = new MultilanguageSet();
        //A single medium such as a picture can have multiple representations in files. Common are multiple resolutions or file
        //formats for images for example
-       private Set<MediaInstance> instances = new HashSet<MediaInstance>();
+       private Set<MediaRepresentation> representations = new HashSet<MediaRepresentation>();
        private Set<Rights> rights = new HashSet<Rights>();
        private Agent artist;
 
        @OneToMany(mappedBy="media")
        @Cascade({CascadeType.SAVE_UPDATE, CascadeType.DELETE})
-       public Set<MediaInstance> getInstances(){
-               return this.instances;
+       public Set<MediaRepresentation> getRepresentations(){
+               return this.representations;
        }
-       protected void setInstances(Set<MediaInstance> instances){
-               this.instances = instances;
+       protected void setRepresentations(Set<MediaRepresentation> representations){
+               this.representations = representations;
        }
-       public void addInstance(MediaInstance instance){
-               this.instances.add(instance);
+       public void addRepresentation(MediaRepresentation representation){
+               if (representation != null){
+                       this.getRepresentations().add(representation);
+                       representation.setMedia(this);
+               }
        }
-       public void removeInstance(MediaInstance instance){
-               this.instances.remove(instance);
+       public void removeRepresentation(MediaRepresentation representation){
+               this.getRepresentations().remove(representation);
+               if (representation != null){
+                       representation.setMedia(null);
+               }
+
        }
 
        
diff --git a/cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/media/MediaInstance.java b/cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/media/MediaInstance.java
deleted file mode 100644 (file)
index c423ff9..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-/**
-* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
-* http://www.e-taxonomy.eu
-* 
-* The contents of this file are subject to the Mozilla Public License Version 1.1
-* See LICENSE.TXT at the top of this package for the full license terms.
-*/
-
-package eu.etaxonomy.cdm.model.media;
-
-
-import org.apache.log4j.Logger;
-
-import com.sun.activation.registries.MimeTypeFile;
-
-import eu.etaxonomy.cdm.model.common.VersionableEntity;
-
-import java.util.*;
-
-import javax.activation.MimeType;
-import javax.persistence.*;
-
-/**
- * metadata for an external file such as images, phylogenetic trees, or audio
- * recordings available through the location attribute!
- * @author m.doering
- * @version 1.0
- * @created 08-Nov-2007 13:06:34
- */
-@Entity
-@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
-public class MediaInstance extends VersionableEntity {
-       private static final Logger logger = Logger.getLogger(MediaInstance.class);
-       //http://www.iana.org/assignments/media-types
-       private String mimeType;
-       //where the media file is stored
-       private String uri;
-       //in bytes
-       private Integer size;
-       private Media media;
-       
-       
-       /**
-        * Factory method
-        * @return
-        */
-       public static MediaInstance NewInstance(String uri, String mimeType, Integer size){
-               MediaInstance result  = new MediaInstance();
-               result.setUri(uri);
-               result.setMimeType(mimeType);
-               result.setSize(size);
-               return result;
-       }
-       
-       
-       
-       /**
-        * Factory method
-        * @return
-        */
-       public static MediaInstance NewInstance(){
-               return new MediaInstance();
-       }
-       
-       
-       
-       protected MediaInstance(){
-               super();
-       }
-       
-       
-       public String getMimeType(){
-               return this.mimeType;
-       }
-
-       /**
-        * 
-        * @param mimeType    mimeType
-        */
-       public void setMimeType(String mimeType){
-               this.mimeType = mimeType;
-       }
-
-       public String getUri(){
-               return this.uri;
-       }
-
-       /**
-        * 
-        * @param uri    uri
-        */
-       public void setUri(String uri){
-               this.uri = uri;
-       }
-
-       
-       /**
-        * @return
-        */
-       public Integer getSize(){
-               return this.size;
-       }
-       /** 
-        * @param size    size
-        */
-       public void setSize(Integer size){
-               this.size = size;
-       }
-
-       @ManyToOne      
-       public Media getMedia() {
-               return media;
-       }
-
-       public void setMedia(Media media) {
-               this.media = media;
-       }
-
-}
\ No newline at end of file
diff --git a/cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/media/MediaRepresentation.java b/cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/media/MediaRepresentation.java
new file mode 100644 (file)
index 0000000..3261aa8
--- /dev/null
@@ -0,0 +1,136 @@
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy 
+* http://www.e-taxonomy.eu
+* 
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.cdm.model.media;
+
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+import java.util.SortedSet;
+import java.util.TreeSet;
+
+import org.apache.log4j.Logger;
+import org.hibernate.annotations.Cascade;
+import org.hibernate.annotations.CascadeType;
+
+import eu.etaxonomy.cdm.model.common.VersionableEntity;
+import javax.persistence.*;
+
+/**
+ * metadata for an external file such as images, phylogenetic trees, or audio
+ * recordings available through the location attribute!
+ * @author m.doering
+ * @version 1.0
+ * @created 08-Nov-2007 13:06:34
+ */
+@Entity
+@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
+public class MediaRepresentation extends VersionableEntity {
+       private static final Logger logger = Logger.getLogger(MediaRepresentation.class);
+       //http://www.iana.org/assignments/media-types
+       private String mimeType;
+       //the file suffix (e.g. jpg, tif, mov)
+       private String suffix;
+       private Media media;
+       private List<MediaRepresentationPart> mediaRepresentationParts = new ArrayList<MediaRepresentationPart>();
+       
+       
+       /**
+        * Factory method
+        * @return
+        */
+       public static MediaRepresentation NewInstance(String mimeType, String suffix){
+               MediaRepresentation result  = new MediaRepresentation();
+               result.setMimeType(mimeType);
+               result.setSuffix(suffix);
+               return result;
+       }
+       
+       
+       
+       /**
+        * Factory method
+        * @return
+        */
+       public static MediaRepresentation NewInstance(){
+               return new MediaRepresentation();
+       }
+       
+       
+       
+       protected MediaRepresentation(){
+               super();
+       }
+       
+/***************  getter /setter *************************************/
+       
+       
+       public String getMimeType(){
+               return this.mimeType;
+       }
+
+       /**
+        * 
+        * @param mimeType    mimeType
+        */
+       public void setMimeType(String mimeType){
+               this.mimeType = mimeType;
+       }
+
+       
+       public String getSuffix(){
+               return this.suffix;
+       }
+
+       /**
+        * 
+        * @param mimeType    mimeType
+        */
+       public void setSuffix(String suffix){
+               this.suffix = suffix;
+       }
+       
+       @ManyToOne      
+       public Media getMedia() {
+               return media;
+       }
+
+       @Deprecated //use only for bidirectional and hibernate
+       protected void setMedia(Media media) {
+               this.media = media;
+       }
+       
+       
+       @OneToMany(mappedBy="mediaRepresentation")
+       @org.hibernate.annotations.IndexColumn(name="sortIndex")
+       @Cascade({CascadeType.SAVE_UPDATE, CascadeType.DELETE})
+       public List<MediaRepresentationPart> getParts(){
+               return this.mediaRepresentationParts;
+       }
+       protected void setParts(List<MediaRepresentationPart> mediaRepresentationParts){
+               this.mediaRepresentationParts = mediaRepresentationParts;
+       }
+       public void addRepresentationPart(MediaRepresentationPart mediaRepresentationPart){
+               if (mediaRepresentationPart != null){
+                       this.getParts().add(mediaRepresentationPart);
+                       mediaRepresentationPart.setMediaRepresentation(this);
+               }
+       }
+       public void removeRepresentationPart(MediaRepresentationPart representationPart){
+               this.getParts().remove(representationPart);
+               if (representationPart != null){
+                       representationPart.setMediaRepresentation(null);
+               }
+       }
+       
+       
+       
+
+}
\ No newline at end of file
diff --git a/cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/media/MediaRepresentationPart.java b/cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/media/MediaRepresentationPart.java
new file mode 100644 (file)
index 0000000..906dac8
--- /dev/null
@@ -0,0 +1,108 @@
+/**\r
+* Copyright (C) 2007 EDIT\r
+* European Distributed Institute of Taxonomy \r
+* http://www.e-taxonomy.eu\r
+* \r
+* The contents of this file are subject to the Mozilla Public License Version 1.1\r
+* See LICENSE.TXT at the top of this package for the full license terms.\r
+*/\r
+\r
+package eu.etaxonomy.cdm.model.media;\r
+import javax.persistence.Entity;\r
+import javax.persistence.ManyToOne;\r
+import org.apache.log4j.Logger;\r
+import eu.etaxonomy.cdm.model.common.VersionableEntity;\r
+\r
+/**\r
+ * @author a.mueller\r
+ * @created 09.06.2008\r
+ * @version 1.0\r
+ */\r
+@Entity\r
+public class MediaRepresentationPart extends VersionableEntity{\r
+       private static final Logger logger = Logger.getLogger(MediaRepresentationPart.class);\r
+\r
+       //sorting index\r
+       private int sortIndex;\r
+       //where the media file is stored\r
+       private String uri;\r
+       //in bytes\r
+       private Integer size;\r
+       //the MEdiaRepresentation this MediaRepresentation\r
+       private MediaRepresentation mediaRepresentation;\r
+\r
+       /**\r
+        * Factory method\r
+        * @return\r
+        */\r
+       public static MediaRepresentationPart NewInstance(String uri, Integer size){\r
+               MediaRepresentationPart result  = new MediaRepresentationPart();\r
+               result.setUri(uri);\r
+               result.setSize(size);\r
+               return result;\r
+       }\r
+       \r
+       \r
+       /**\r
+        * \r
+        */\r
+       public MediaRepresentationPart() {\r
+               super();\r
+       }\r
+       \r
+/***************  getter /setter *************************************/\r
+       \r
+       \r
+       @ManyToOne\r
+       public MediaRepresentation getMediaRepresentation() {\r
+               return this.mediaRepresentation;\r
+       }\r
+\r
+       @Deprecated //use only for bidirectional and hibernate\r
+       protected void setMediaRepresentation(MediaRepresentation mediaRepresentation) {\r
+               this.mediaRepresentation = mediaRepresentation;\r
+       }\r
+       \r
+\r
+       public String getUri(){\r
+               return this.uri;\r
+       }\r
+\r
+       /**\r
+        * \r
+        * @param uri    uri\r
+        */\r
+       public void setUri(String uri){\r
+               this.uri = uri;\r
+       }\r
+\r
+       \r
+       /**\r
+        * @return\r
+        */\r
+       public Integer getSize(){\r
+               return this.size;\r
+       }\r
+       /** \r
+        * @param size    size\r
+        */\r
+       public void setSize(Integer size){\r
+               this.size = size;\r
+       }\r
+\r
+\r
+       /**\r
+        * @return the sortIndex\r
+        */\r
+       public int getSortIndex() {\r
+               return sortIndex;\r
+       }\r
+\r
+\r
+       /**\r
+        * @param sortIndex the sortIndex to set\r
+        */\r
+       public void setSortIndex(int sortIndex) {\r
+               this.sortIndex = sortIndex;\r
+       }\r
+}\r
index 4ac147252bdab10d246f6570c1e0394a8209dc08..311fc72bede818a38de85712ac98de2c6e8b3eff 100644 (file)
@@ -15,8 +15,6 @@ import eu.etaxonomy.cdm.model.reference.ReferenceBase;
 import org.apache.log4j.Logger;
 import org.hibernate.annotations.Cascade;
 import org.hibernate.annotations.CascadeType;
-
-import java.util.*;
 import javax.persistence.*;
 
 /**
index 2480cb9307aff0c027a65332054514b57143679a..5af8666f66e858bbebe71c75a82ee99d35943419 100644 (file)
@@ -20,13 +20,13 @@ import eu.etaxonomy.cdm.model.agent.Agent;
 import eu.etaxonomy.cdm.model.agent.Institution;\r
 import eu.etaxonomy.cdm.model.agent.Person;\r
 import eu.etaxonomy.cdm.model.common.Annotation;\r
-import eu.etaxonomy.cdm.model.common.Language;\r
 import eu.etaxonomy.cdm.model.common.OriginalSource;\r
 import eu.etaxonomy.cdm.model.location.NamedArea;\r
 import eu.etaxonomy.cdm.model.location.NamedAreaType;\r
 import eu.etaxonomy.cdm.model.location.WaterbodyOrCountry;\r
 import eu.etaxonomy.cdm.model.media.Media;\r
-import eu.etaxonomy.cdm.model.media.MediaInstance;\r
+import eu.etaxonomy.cdm.model.media.MediaRepresentation;\r
+import eu.etaxonomy.cdm.model.media.MediaRepresentationPart;\r
 import eu.etaxonomy.cdm.model.name.BotanicalName;\r
 import eu.etaxonomy.cdm.model.occurrence.Collection;\r
 import eu.etaxonomy.cdm.model.occurrence.DerivationEvent;\r
@@ -34,7 +34,6 @@ import eu.etaxonomy.cdm.model.occurrence.DerivationEventType;
 import eu.etaxonomy.cdm.model.occurrence.DeterminationEvent;\r
 import eu.etaxonomy.cdm.model.occurrence.FieldObservation;\r
 import eu.etaxonomy.cdm.model.occurrence.GatheringEvent;\r
-import eu.etaxonomy.cdm.model.occurrence.Observation;\r
 import eu.etaxonomy.cdm.model.occurrence.Specimen;\r
 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;\r
 import eu.etaxonomy.cdm.model.reference.Database;\r
@@ -107,13 +106,15 @@ public class TestSpecimen {
                specimen.addAnnotation(Annotation.NewDefaultLanguageInstance(annotation));\r
                \r
                \r
-               \r
                Media media = Media.NewInstance();\r
                String uri = "http://131.130.131.9/database/img/imgBrowser.php?ID=50599";\r
                String mimeType = null;\r
                Integer size = null;\r
-               MediaInstance mediaInstance = MediaInstance.NewInstance(uri, mimeType, size);\r
-               media.addInstance(mediaInstance);\r
+               MediaRepresentation mediaRepresentation = MediaRepresentation.NewInstance(mimeType, "jpg");\r
+               media.addRepresentation(mediaRepresentation);\r
+               \r
+               MediaRepresentationPart mediaRepresentationPart = MediaRepresentationPart.NewInstance(uri, size);\r
+               mediaRepresentation.addRepresentationPart(mediaRepresentationPart);\r
                specimen.addMedia(media);\r
 \r
                //Original ID\r