minor
[cdmlib.git] / cdmlib-model / src / main / java / eu / etaxonomy / cdm / model / reference / ReferenceIdentity.java
1 // $Id$
2 /**
3 * Copyright (C) 2007 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
6 *
7 * The contents of this file are subject to the Mozilla Public License Version 1.1
8 * See LICENSE.TXT at the top of this package for the full license terms.
9 */
10
11
12 // NOT YET IN USE //
13 package eu.etaxonomy.cdm.model.reference;
14
15 import java.util.Set;
16
17 import javax.persistence.FetchType;
18 import javax.persistence.ManyToOne;
19 import javax.persistence.OneToMany;
20 import javax.xml.bind.annotation.XmlAccessType;
21 import javax.xml.bind.annotation.XmlAccessorType;
22 import javax.xml.bind.annotation.XmlElement;
23 import javax.xml.bind.annotation.XmlElementWrapper;
24 import javax.xml.bind.annotation.XmlIDREF;
25 import javax.xml.bind.annotation.XmlSchemaType;
26 import javax.xml.bind.annotation.XmlType;
27
28 import org.apache.log4j.Logger;
29 import org.hibernate.annotations.Cascade;
30 import org.hibernate.annotations.CascadeType;
31 import org.hibernate.envers.Audited;
32
33 import eu.etaxonomy.cdm.model.common.VersionableEntity;
34
35 /**
36 * @author a.mueller
37 * @created 30.06.2009
38 * @version 1.0
39 */
40 @XmlAccessorType(XmlAccessType.FIELD)
41 @XmlType(name = "ReferenceIdentity", propOrder = {
42 "preferredLongForm",
43 "preferredAbbreviation",
44 "references"
45 })
46 @Audited
47 //@Entity
48 public class ReferenceIdentity extends VersionableEntity {
49 private static final long serialVersionUID = -6114973116800471106L;
50 @SuppressWarnings("unused")
51 private static final Logger logger = Logger.getLogger(ReferenceIdentity.class);
52
53 @XmlElementWrapper(name = "References")
54 @XmlElement(name = "Reference")
55 @XmlIDREF
56 @XmlSchemaType(name = "IDREF")
57 @OneToMany(mappedBy="name", fetch= FetchType.LAZY)
58 private Set<ReferenceBase> references;
59
60 @XmlElement(name = "PreferredLongForm")
61 @XmlIDREF
62 @XmlSchemaType(name = "IDREF")
63 @ManyToOne(fetch = FetchType.LAZY)
64 //@IndexedEmbedded
65 @Cascade(CascadeType.SAVE_UPDATE)
66 private ReferenceBase preferredLongForm;
67
68
69 @XmlElement(name = "PreferredAbbreviation")
70 @XmlIDREF
71 @XmlSchemaType(name = "IDREF")
72 @ManyToOne(fetch = FetchType.LAZY)
73 //@IndexedEmbedded
74 @Cascade(CascadeType.SAVE_UPDATE)
75 private ReferenceBase preferredAbbreviation;
76
77
78 /**
79 * @return the references
80 */
81 public Set<ReferenceBase> getReferences() {
82 return references;
83 }
84
85
86 // /**
87 // * Adds the reference to this reference identity
88 // * @param reference
89 // * @return
90 // */
91 // public boolean addReference(ReferenceBase reference){
92 // if (reference == null){
93 // return false;
94 // }
95 // if (reference.getReferenceIdentity() != null){
96 // reference.setReferenceIdentity(this);
97 // }
98 // return this.references.add(reference);
99 // }
100 //
101 // public boolean removeReference(ReferenceBase reference){
102 // if (reference == null){
103 // return false;
104 // }
105 // reference.setReferenceIdentity(null);
106 // return this.references.remove(reference);
107 // }
108
109
110 /**
111 * @return the preferredLongForm
112 */
113 public ReferenceBase getPreferredLongForm() {
114 return preferredLongForm;
115 }
116
117 /**
118 * @param preferredLongForm the preferredLongForm to set
119 */
120 public void setPreferredLongForm(ReferenceBase preferredLongForm) {
121 this.preferredLongForm = preferredLongForm;
122 }
123
124 /**
125 * @return the preferredAbbreviation
126 */
127 public ReferenceBase getPreferredAbbreviation() {
128 return preferredAbbreviation;
129 }
130
131 /**
132 * @param preferredAbbreviation the preferredAbbreviation to set
133 */
134 public void setPreferredAbbreviation(ReferenceBase preferredAbbreviation) {
135 this.preferredAbbreviation = preferredAbbreviation;
136 }
137
138
139
140 }