1 package eu
.etaxonomy
.cdm
.model
.media
;
3 import java
.util
.HashSet
;
6 import javax
.persistence
.FetchType
;
7 import javax
.persistence
.MappedSuperclass
;
8 import javax
.persistence
.ManyToMany
;
9 import javax
.xml
.bind
.annotation
.XmlAccessType
;
10 import javax
.xml
.bind
.annotation
.XmlAccessorType
;
11 import javax
.xml
.bind
.annotation
.XmlElement
;
12 import javax
.xml
.bind
.annotation
.XmlElementWrapper
;
13 import javax
.xml
.bind
.annotation
.XmlIDREF
;
14 import javax
.xml
.bind
.annotation
.XmlSchemaType
;
15 import javax
.xml
.bind
.annotation
.XmlType
;
17 import org
.apache
.log4j
.Logger
;
18 import org
.hibernate
.annotations
.Cascade
;
19 import org
.hibernate
.annotations
.CascadeType
;
21 import eu
.etaxonomy
.cdm
.model
.common
.IdentifiableEntity
;
22 import eu
.etaxonomy
.cdm
.strategy
.cache
.common
.IIdentifiableEntityCacheStrategy
;
24 @XmlAccessorType(XmlAccessType
.FIELD
)
25 @XmlType(name
= "IdentifiableMediaEntity", propOrder
= {
29 public abstract class IdentifiableMediaEntity
<S
extends IIdentifiableEntityCacheStrategy
> extends IdentifiableEntity
<S
> implements IMediaDocumented
, IMediaEntity
{
31 private static final long serialVersionUID
= 4038647011021908313L;
33 protected static Logger logger
= Logger
.getLogger(IdentifiableMediaEntity
.class);
35 @XmlElementWrapper(name
= "Media")
36 @XmlElement(name
= "Medium")
38 @XmlSchemaType(name
= "IDREF")
39 @ManyToMany(fetch
= FetchType
.LAZY
)
40 @Cascade({CascadeType
.SAVE_UPDATE
})
41 private Set
<Media
> media
= new HashSet
<Media
>();
45 * @see eu.etaxonomy.cdm.model.media.IMediaEntity#getMedia()
47 public Set
<Media
> getMedia() {
52 * @see eu.etaxonomy.cdm.model.media.IMediaEntity#addMedia(eu.etaxonomy.cdm.model.media.Media)
54 public void addMedia(Media media
) {
55 this.media
.add(media
);
58 * @see eu.etaxonomy.cdm.model.media.IMediaEntity#removeMedia(eu.etaxonomy.cdm.model.media.Media)
60 public void removeMedia(Media media
) {
61 this.media
.remove(media
);
64 //******************** CLONE **********************************************/
67 * @see eu.etaxonomy.cdm.model.common.IdentifiableEntity#clone()
70 public Object
clone() throws CloneNotSupportedException
{
71 IdentifiableMediaEntity result
= (IdentifiableMediaEntity
)super.clone();
73 result
.media
= new HashSet
<Media
>();
74 for(Media media
: this.media
) {
75 result
.addMedia(media
);