merge 3.0.2 to 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 @ManyToOne(fetch = FetchType.LAZY)
41 @Cascade(CascadeType.SAVE_UPDATE)
42 private Reference reference;
43 @OneToMany(fetch = FetchType.LAZY)
44 private Set<View> superViews = new HashSet<View>();
45 @Transient
46 private Set<CdmBase> members = new HashSet<CdmBase>();
47 @Transient
48 private Set<CdmBase> nonMembers = new HashSet<CdmBase>();
49
50 public String getName(){
51 logger.debug("getName");
52 return this.name;
53 }
54 public void setName(String name){
55 this.name = name;
56 }
57
58 public String getDescription(){
59 return this.description;
60 }
61
62 public void setDescription(String description){
63 this.description = description;
64 }
65
66 @Transient
67 public Reference getCitation() {
68 return getReference();
69 }
70
71 public Reference getReference() {
72 return reference;
73 }
74
75 public void setReference(Reference reference) {
76 this.reference = reference;
77 }
78
79 public Set<View> getSuperViews() {
80 return superViews;
81 }
82
83 public void addSuperView(View superView) {
84 this.superViews.add(superView);
85 }
86 public void removeSuperView(View superView) {
87 this.superViews.remove(superView);
88 }
89
90 public Set<CdmBase> getMembers() {
91 return members;
92 }
93
94 public void addMember(CdmBase member) {
95 this.members.add(member);
96 }
97 public void removeMember(ICdmBase member) {
98 this.members.remove(member);
99 }
100
101 public Set<CdmBase> getNonMembers() {
102 return nonMembers;
103 }
104
105 public void addNonMember(CdmBase member) {
106 this.nonMembers.add(member);
107 }
108 public void removeNonMember(ICdmBase member) {
109 this.nonMembers.remove(member);
110 }
111 }