(no commit message)
[cdmlib.git] / cdmlib-model / src / main / java / eu / etaxonomy / cdm / model / description / DescriptionBase.java
1 package eu.etaxonomy.cdm.model.description;
2
3 import java.util.HashSet;
4 import java.util.Set;
5
6 import javax.persistence.ManyToOne;
7 import javax.persistence.MappedSuperclass;
8 import javax.persistence.OneToMany;
9
10 import org.apache.log4j.Logger;
11 import org.hibernate.annotations.Cascade;
12 import org.hibernate.annotations.CascadeType;
13
14 import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
15 import eu.etaxonomy.cdm.model.reference.ReferenceBase;
16
17 @MappedSuperclass
18 public abstract class DescriptionBase extends IdentifiableEntity {
19 static Logger logger = Logger.getLogger(DescriptionBase.class);
20 private Set<FeatureBase> features = new HashSet();
21 private ReferenceBase source;
22 @Override
23 public String generateTitle() {
24 // TODO Auto-generated method stub
25 return null;
26 }
27
28
29
30 @ManyToOne
31 @Cascade( { CascadeType.SAVE_UPDATE })
32 public ReferenceBase getSource() {
33 return this.source;
34 }
35
36
37
38 public void setSource(ReferenceBase source) {
39 this.source= source;
40 }
41
42
43
44 @OneToMany
45 @Cascade( { CascadeType.SAVE_UPDATE })
46 public Set<FeatureBase> getFeatures() {
47 return this.features;
48 }
49
50
51
52 protected void setFeatures(Set<FeatureBase> features) {
53 this.features = features;
54 }
55
56
57
58 public void addFeature(FeatureBase feature) {
59 this.features.add(feature);
60 }
61
62
63
64 public void removeFeature(FeatureBase feature) {
65 this.features.remove(feature);
66 }
67
68 }