merge hibernate4 migration branch into trunk
[cdmlib.git] / cdmlib-model / src / main / java / eu / etaxonomy / cdm / model / view / View.java
1 /**
2 * Copyright (C) 2007 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
5 *
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
8 */
9
10 package eu.etaxonomy.cdm.model.view;
11
12
13 import org.apache.log4j.Logger;
14 import org.hibernate.annotations.Cascade;
15 import org.hibernate.annotations.CascadeType;
16
17 import eu.etaxonomy.cdm.model.common.CdmBase;
18 import eu.etaxonomy.cdm.model.common.ICdmBase;
19 import eu.etaxonomy.cdm.model.common.IReferencedEntity;
20 import eu.etaxonomy.cdm.model.reference.Reference;
21
22 import java.util.*;
23
24 import javax.persistence.*;
25
26 /**
27 * use ARCHIVE view/dataset to maintain an archive. All members of that view will
28 * never be changed
29 * @author m.doering
30 * @version 1.0
31 * @created 08-Nov-2007 13:07:01
32 */
33 @Entity(name="CDM_VIEW")
34 public class View extends CdmBase implements IReferencedEntity{
35 private static final long serialVersionUID = 3668860188614455213L;
36 private static final Logger logger = Logger.getLogger(View.class);
37
38 private String name;
39 private String description;
40
41 @ManyToOne(fetch = FetchType.LAZY)
42 @Cascade(CascadeType.SAVE_UPDATE)
43 private Reference<?> reference;
44
45 @OneToMany(fetch = FetchType.LAZY)
46 private Set<View> superViews = new HashSet<View>();
47
48 @Transient
49 private Set<CdmBase> members = new HashSet<CdmBase>();
50
51 @Transient
52 private Set<CdmBase> nonMembers = new HashSet<CdmBase>();
53
54 public String getName(){
55 logger.debug("getName");
56 return this.name;
57 }
58 public void setName(String name){
59 this.name = name;
60 }
61
62 public String getDescription(){
63 return this.description;
64 }
65
66 public void setDescription(String description){
67 this.description = description;
68 }
69
70 @Transient
71 public Reference getCitation() {
72 return getReference();
73 }
74
75 public Reference getReference() {
76 return reference;
77 }
78
79 public void setReference(Reference reference) {
80 this.reference = reference;
81 }
82
83 public Set<View> getSuperViews() {
84 return superViews;
85 }
86
87 public void addSuperView(View superView) {
88 this.superViews.add(superView);
89 }
90 public void removeSuperView(View superView) {
91 this.superViews.remove(superView);
92 }
93
94 public Set<CdmBase> getMembers() {
95 return members;
96 }
97
98 public void addMember(CdmBase member) {
99 this.members.add(member);
100 }
101 public void removeMember(ICdmBase member) {
102 this.members.remove(member);
103 }
104
105 public Set<CdmBase> getNonMembers() {
106 return nonMembers;
107 }
108
109 public void addNonMember(CdmBase member) {
110 this.nonMembers.add(member);
111 }
112 public void removeNonMember(ICdmBase member) {
113 this.nonMembers.remove(member);
114 }
115 }