Project

General

Profile

Download (25.9 KB) Statistics
| Branch: | Tag: | Revision:
1 0451b182 h.fradin
/**
2 01be5674 Andreas Müller
* Copyright (C) 2007 EDIT
3 f476ff86 Andreas Müller
* European Distributed Institute of Taxonomy
4 0451b182 h.fradin
* http://www.e-taxonomy.eu
5 f476ff86 Andreas Müller
*
6 01be5674 Andreas Müller
* 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 0451b182 h.fradin
*/
9
10 036cf746 Andreas Müller
package eu.etaxonomy.cdm.io.sdd.out;
11 0451b182 h.fradin
12
import java.util.ArrayList;
13
import java.util.Collection;
14
import java.util.HashSet;
15
import java.util.List;
16
import java.util.Set;
17
18
import javax.xml.bind.annotation.XmlAccessType;
19
import javax.xml.bind.annotation.XmlAccessorType;
20
import javax.xml.bind.annotation.XmlElement;
21
import javax.xml.bind.annotation.XmlElementWrapper;
22
import javax.xml.bind.annotation.XmlElements;
23
import javax.xml.bind.annotation.XmlRootElement;
24
import javax.xml.bind.annotation.XmlType;
25
26
import eu.etaxonomy.cdm.model.agent.Address;
27 08b9a163 ben.clark
import eu.etaxonomy.cdm.model.agent.AgentBase;
28 0451b182 h.fradin
import eu.etaxonomy.cdm.model.agent.Contact;
29
import eu.etaxonomy.cdm.model.agent.Institution;
30
import eu.etaxonomy.cdm.model.agent.InstitutionalMembership;
31
import eu.etaxonomy.cdm.model.agent.Person;
32
import eu.etaxonomy.cdm.model.agent.Team;
33
import eu.etaxonomy.cdm.model.common.AnnotationType;
34 533cbb43 Andreas Müller
import eu.etaxonomy.cdm.model.common.DefinedTerm;
35 0451b182 h.fradin
import eu.etaxonomy.cdm.model.common.DefinedTermBase;
36
import eu.etaxonomy.cdm.model.common.ExtensionType;
37
import eu.etaxonomy.cdm.model.common.Language;
38
import eu.etaxonomy.cdm.model.common.LanguageString;
39
import eu.etaxonomy.cdm.model.common.LanguageStringBase;
40
import eu.etaxonomy.cdm.model.common.MarkerType;
41
import eu.etaxonomy.cdm.model.common.ReferencedEntityBase;
42
import eu.etaxonomy.cdm.model.common.RelationshipBase;
43
import eu.etaxonomy.cdm.model.common.Representation;
44
import eu.etaxonomy.cdm.model.common.TermVocabulary;
45
import eu.etaxonomy.cdm.model.common.VersionableEntity;
46
import eu.etaxonomy.cdm.model.description.Feature;
47
import eu.etaxonomy.cdm.model.description.FeatureNode;
48
import eu.etaxonomy.cdm.model.description.FeatureTree;
49
import eu.etaxonomy.cdm.model.description.MeasurementUnit;
50 ccf1f2f1 Andreas Müller
import eu.etaxonomy.cdm.model.description.PresenceAbsenceTerm;
51 0451b182 h.fradin
import eu.etaxonomy.cdm.model.description.State;
52
import eu.etaxonomy.cdm.model.description.StatisticalMeasure;
53
import eu.etaxonomy.cdm.model.description.TextFormat;
54 ccf1f2f1 Andreas Müller
import eu.etaxonomy.cdm.model.location.Country;
55 0451b182 h.fradin
import eu.etaxonomy.cdm.model.location.NamedArea;
56
import eu.etaxonomy.cdm.model.location.NamedAreaLevel;
57
import eu.etaxonomy.cdm.model.location.NamedAreaType;
58
import eu.etaxonomy.cdm.model.location.ReferenceSystem;
59 ff3882c8 Andreas Müller
import eu.etaxonomy.cdm.model.media.RightsType;
60 0451b182 h.fradin
import eu.etaxonomy.cdm.model.molecular.DnaSample;
61
import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
62
import eu.etaxonomy.cdm.model.name.HybridRelationship;
63
import eu.etaxonomy.cdm.model.name.HybridRelationshipType;
64
import eu.etaxonomy.cdm.model.name.NameRelationship;
65
import eu.etaxonomy.cdm.model.name.NameRelationshipType;
66
import eu.etaxonomy.cdm.model.name.NameTypeDesignation;
67
import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
68
import eu.etaxonomy.cdm.model.name.NomenclaturalStatus;
69
import eu.etaxonomy.cdm.model.name.NomenclaturalStatusType;
70
import eu.etaxonomy.cdm.model.name.Rank;
71
import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;
72 1eeb2fb0 a.babadshanjan
import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignationStatus;
73 05663465 Andreas Müller
import eu.etaxonomy.cdm.model.name.TaxonNameBase;
74 0451b182 h.fradin
import eu.etaxonomy.cdm.model.occurrence.DerivationEventType;
75 c150ee7f Andreas Müller
import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
76 0451b182 h.fradin
import eu.etaxonomy.cdm.model.occurrence.PreservationMethod;
77
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
78 1d36aa54 Andreas Müller
import eu.etaxonomy.cdm.model.reference.Reference;
79 0451b182 h.fradin
import eu.etaxonomy.cdm.model.taxon.Synonym;
80 fbeefcaf Andreas Müller
import eu.etaxonomy.cdm.model.taxon.SynonymType;
81 0451b182 h.fradin
import eu.etaxonomy.cdm.model.taxon.Taxon;
82
import eu.etaxonomy.cdm.model.taxon.TaxonBase;
83
import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
84
import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
85
86
/**
87
 * @author a.babadshanjan
88
 */
89
@XmlAccessorType(XmlAccessType.FIELD)
90
@XmlType(name = "", propOrder = {
91
	    "terms",
92
	    "termVocabularies",
93
		"agents",
94
		"agentData",
95
		"occurrences",
96
	    "references",
97
	    "referencedEntities",
98
	    "featureData",
99
	    "languageData",
100
	    "taxonomicNames",
101
	    "homotypicalGroups",
102
	    "taxa",
103
	    "synonyms",
104
	    "relationships",
105
	    "media"
106
})
107
@XmlRootElement(name = "DataSet", namespace = "http://etaxonomy.eu/cdm/model/1.0")
108
public class SDDDataSet {
109 f476ff86 Andreas Müller
110
    // Some fields are of type List and some are of type Set.
111 0451b182 h.fradin
	// This is mainly because
112
	// the service classes return lists, i.e.
113
    // TaxonServiceImpl.getRootTaxa() returns List<Taxon>
114
	// and the Taxon methods return sets, i.e.
115
    // Taxon.getTaxonomicChildren() returns Set<Taxon>.
116
117
    @XmlElementWrapper(name = "Agents")
118
    @XmlElements({
119
        @XmlElement(name = "Team", namespace = "http://etaxonomy.eu/cdm/model/agent/1.0", type = Team.class),
120
        @XmlElement(name = "Institution", namespace = "http://etaxonomy.eu/cdm/model/agent/1.0", type = Institution.class),
121
        @XmlElement(name = "Person", namespace = "http://etaxonomy.eu/cdm/model/agent/1.0", type = Person.class)
122
    })
123 08b9a163 ben.clark
    protected List<? extends AgentBase> agents;
124 f476ff86 Andreas Müller
125 0451b182 h.fradin
    @XmlElementWrapper(name = "AgentData")
126
    @XmlElements({
127
    @XmlElement(name = "Address", namespace = "http://etaxonomy.eu/cdm/model/agent/1.0", type = Address.class),
128
    @XmlElement(name = "Contact", namespace = "http://etaxonomy.eu/cdm/model/agent/1.0", type = Contact.class),
129
    @XmlElement(name = "InstitutionalMembership", namespace = "http://etaxonomy.eu/cdm/model/agent/1.0", type = InstitutionalMembership.class)
130
    })
131
    protected List<VersionableEntity> agentData;
132
133
    @XmlElementWrapper(name = "FeatureData")
134
    @XmlElements({
135
    @XmlElement(name = "FeatureNode", namespace = "http://etaxonomy.eu/cdm/model/description/1.0", type = FeatureNode.class),
136
    @XmlElement(name = "FeatureTree", namespace = "http://etaxonomy.eu/cdm/model/description/1.0", type = FeatureTree.class)
137
    })
138
//    protected List<VersionableEntity> featureData;
139 d37cd796 ben.clark
    protected List<VersionableEntity> featureData;
140 0451b182 h.fradin
141
    @XmlElementWrapper(name = "LanguageData")
142
    @XmlElements({
143
    @XmlElement(name = "Representation", namespace = "http://etaxonomy.eu/cdm/model/common/1.0", type = Representation.class),
144
    @XmlElement(name = "LanguageString", namespace = "http://etaxonomy.eu/cdm/model/common/1.0", type = LanguageString.class)
145
    })
146
    protected List<LanguageStringBase> languageData;
147 f476ff86 Andreas Müller
148 0451b182 h.fradin
    @XmlElementWrapper(name = "Terms")
149
    @XmlElements({
150
    	@XmlElement(name = "AnnotationType", namespace = "http://etaxonomy.eu/cdm/model/common/1.0", type = AnnotationType.class),
151 9e3239f6 Andreas Müller
    	@XmlElement(name = "Continent", namespace = "http://etaxonomy.eu/cdm/model/location/1.0", type = NamedArea.class),
152 0451b182 h.fradin
    	@XmlElement(name = "DerivationEventType", namespace = "http://etaxonomy.eu/cdm/model/occurrence/1.0", type = DerivationEventType.class),
153 533cbb43 Andreas Müller
    	@XmlElement(name = "DeterminationModifier", namespace = "http://etaxonomy.eu/cdm/model/occurrence/1.0", type = DefinedTerm.class),
154 0451b182 h.fradin
    	@XmlElement(name = "ExtensionType", namespace = "http://etaxonomy.eu/cdm/model/common/1.0", type = ExtensionType.class),
155
    	@XmlElement(name = "Feature", namespace = "http://etaxonomy.eu/cdm/model/description/1.0", type = Feature.class),
156
    	@XmlElement(name = "HybridRelationshipType", namespace = "http://etaxonomy.eu/cdm/model/name/1.0", type = HybridRelationshipType.class),
157 9e3239f6 Andreas Müller
    	@XmlElement(name = "InstitutionType", namespace = "http://etaxonomy.eu/cdm/model/agent/1.0", type = DefinedTerm.class),
158 0451b182 h.fradin
    	@XmlElement(name = "Language", namespace = "http://etaxonomy.eu/cdm/model/common/1.0", type = Language.class),
159
    	@XmlElement(name = "MarkerType", namespace = "http://etaxonomy.eu/cdm/model/common/1.0", type = MarkerType.class),
160
    	@XmlElement(name = "MeasurementUnit", namespace = "http://etaxonomy.eu/cdm/model/description/1.0", type = MeasurementUnit.class),
161 533cbb43 Andreas Müller
    	@XmlElement(name = "Modifier", namespace = "http://etaxonomy.eu/cdm/model/description/1.0", type = DefinedTerm.class),
162 0451b182 h.fradin
    	@XmlElement(name = "NamedArea", namespace = "http://etaxonomy.eu/cdm/model/location/1.0", type = NamedArea.class),
163
    	@XmlElement(name = "NamedAreaLevel", namespace = "http://etaxonomy.eu/cdm/model/location/1.0", type = NamedAreaLevel.class),
164
    	@XmlElement(name = "NamedAreaType", namespace = "http://etaxonomy.eu/cdm/model/location/1.0", type = NamedAreaType.class),
165
    	@XmlElement(name = "NameRelationshipType", namespace = "http://etaxonomy.eu/cdm/model/name/1.0", type = NameRelationshipType.class),
166
    	@XmlElement(name = "NomenclaturalCode", namespace = "http://etaxonomy.eu/cdm/model/name/1.0", type = NomenclaturalCode.class),
167
    	@XmlElement(name = "NomenclaturalStatusType", namespace = "http://etaxonomy.eu/cdm/model/name/1.0", type = NomenclaturalStatusType.class),
168 ccf1f2f1 Andreas Müller
    	@XmlElement(name = "PresenceAbsenceTerm", namespace = "http://etaxonomy.eu/cdm/model/description/1.0", type = PresenceAbsenceTerm.class),
169 0451b182 h.fradin
    	@XmlElement(name = "PreservationMethod", namespace = "http://etaxonomy.eu/cdm/model/occurrence/1.0", type = PreservationMethod.class),
170
        @XmlElement(name = "Rank", namespace = "http://etaxonomy.eu/cdm/model/name/1.0", type = Rank.class),
171
    	@XmlElement(name = "ReferenceSystem", namespace = "http://etaxonomy.eu/cdm/model/location/1.0", type = ReferenceSystem.class),
172 ff3882c8 Andreas Müller
    	@XmlElement(name = "RightsType", namespace = "http://etaxonomy.eu/cdm/model/media/1.0", type = RightsType.class),
173 533cbb43 Andreas Müller
    	@XmlElement(name = "Scope", namespace = "http://etaxonomy.eu/cdm/model/description/1.0", type = DefinedTerm.class),
174
    	@XmlElement(name = "Sex", namespace = "http://etaxonomy.eu/cdm/model/description/1.0", type = DefinedTerm.class),
175
    	@XmlElement(name = "Stage", namespace = "http://etaxonomy.eu/cdm/model/description/1.0", type = DefinedTerm.class),
176 0451b182 h.fradin
    	@XmlElement(name = "State", namespace = "http://etaxonomy.eu/cdm/model/description/1.0", type = State.class),
177
    	@XmlElement(name = "StatisticalMeasure", namespace = "http://etaxonomy.eu/cdm/model/description/1.0", type = StatisticalMeasure.class),
178 fbeefcaf Andreas Müller
    	@XmlElement(name = "SynonymType", namespace = "http://etaxonomy.eu/cdm/model/taxon/1.0", type = SynonymType.class),
179 0451b182 h.fradin
    	@XmlElement(name = "TaxonRelationshipType", namespace = "http://etaxonomy.eu/cdm/model/taxon/1.0", type = TaxonRelationshipType.class),
180
    	@XmlElement(name = "TextFormat", namespace = "http://etaxonomy.eu/cdm/model/description/1.0", type = TextFormat.class),
181 1eeb2fb0 a.babadshanjan
    	@XmlElement(name = "TypeDesignationStatus", namespace = "http://etaxonomy.eu/cdm/model/name/1.0", type = SpecimenTypeDesignationStatus.class),
182 15348b34 Andreas Müller
    	@XmlElement(name = "Country", namespace = "http://etaxonomy.eu/cdm/model/location/1.0", type = Country.class)
183 0451b182 h.fradin
    })
184
    protected List<DefinedTermBase> terms;
185
186
    @XmlElementWrapper(name = "TermVocabularies")
187
    @XmlElement(name = "TermVocabulary", namespace = "http://etaxonomy.eu/cdm/model/common/1.0")
188
    protected List<TermVocabulary<DefinedTermBase>> termVocabularies;
189
190
    @XmlElementWrapper(name = "Occurrences")
191
    @XmlElements({
192
    	@XmlElement(name = "DnaSample", namespace = "http://etaxonomy.eu/cdm/model/occurrence/1.0", type = DnaSample.class),
193 c150ee7f Andreas Müller
    	@XmlElement(name = "FieldUnit", namespace = "http://etaxonomy.eu/cdm/model/occurrence/1.0", type = FieldUnit.class)
194 0451b182 h.fradin
    })
195
    protected List<SpecimenOrObservationBase> occurrences;
196 f476ff86 Andreas Müller
197 0451b182 h.fradin
    @XmlElementWrapper(name = "References")
198 1d36aa54 Andreas Müller
   	@XmlElement(name = "Reference", namespace = "http://etaxonomy.eu/cdm/model/reference/1.0", type = Reference.class)
199 f53af173 Katja Luther
200 1d36aa54 Andreas Müller
    protected List<Reference> references;
201 0451b182 h.fradin
202
    @XmlElementWrapper(name = "ReferencedEntities")
203
    @XmlElements({
204
    	@XmlElement(name = "NomenclaturalStatus", namespace = "http://etaxonomy.eu/cdm/model/name/1.0", type = NomenclaturalStatus.class),
205
    	@XmlElement(name = "NameTypeDesignation", namespace = "http://etaxonomy.eu/cdm/model/name/1.0", type = NameTypeDesignation.class),
206
    	@XmlElement(name = "SpecimenTypeDesignation", namespace = "http://etaxonomy.eu/cdm/model/name/1.0", type = SpecimenTypeDesignation.class)
207
    })
208
    protected List<ReferencedEntityBase> referencedEntities;
209
210 f476ff86 Andreas Müller
211 0451b182 h.fradin
    @XmlElementWrapper(name = "TaxonomicNames")
212
    @XmlElements({
213 e6d7b501 Andreas Müller
    	@XmlElement(name = "TaxonNameBase", namespace = "http://etaxonomy.eu/cdm/model/name/1.0", type = TaxonNameBase.class),
214 0451b182 h.fradin
    })
215
    protected List<TaxonNameBase> taxonomicNames;
216
217
    @XmlElementWrapper(name = "Taxa")
218
    @XmlElement(name = "Taxon", namespace = "http://etaxonomy.eu/cdm/model/taxon/1.0")
219
    protected List<Taxon> taxa;
220 f476ff86 Andreas Müller
221 0451b182 h.fradin
    @XmlElementWrapper(name = "Synonyms")
222
    @XmlElement(name = "Synonym", namespace = "http://etaxonomy.eu/cdm/model/taxon/1.0")
223
    protected List<Synonym> synonyms;
224
225
    @XmlElementWrapper(name = "Relationships")
226
    @XmlElements({
227
    	@XmlElement(name = "TaxonRelationship", namespace = "http://etaxonomy.eu/cdm/model/taxon/1.0", type = TaxonRelationship.class),
228 f476ff86 Andreas Müller
     	@XmlElement(name = "NameRelationship", namespace = "http://etaxonomy.eu/cdm/model/name/1.0", type = NameRelationship.class),
229 0451b182 h.fradin
    	@XmlElement(name = "HybridRelationship", namespace = "http://etaxonomy.eu/cdm/model/name/1.0", type = HybridRelationship.class)
230
    })
231 f476ff86 Andreas Müller
    protected Set<RelationshipBase> relationshipsX;
232 0451b182 h.fradin
233
    @XmlElementWrapper(name = "Media_")
234
    @XmlElement(name = "Media", namespace = "http://etaxonomy.eu/cdm/model/media/1.0")
235
    protected List<VersionableEntity> media;
236 f476ff86 Andreas Müller
237 0451b182 h.fradin
    @XmlElementWrapper(name = "HomotypicalGroups")
238
    @XmlElement(name = "HomotypicalGroup", namespace = "http://etaxonomy.eu/cdm/model/name/1.0")
239
    protected List<HomotypicalGroup> homotypicalGroups;
240
241
//	@XmlElement(name = "TdwgArea", namespace = "http://etaxonomy.eu/cdm/model/location/1.0", type = TdwgArea.class),
242
243
	public SDDDataSet () {
244 f476ff86 Andreas Müller
245
		agents = new ArrayList<>();
246
		agentData = new ArrayList<>();
247 0451b182 h.fradin
//		featureData = new ArrayList<VersionableEntity>();
248 f476ff86 Andreas Müller
		featureData = new ArrayList<>();
249
		languageData = new ArrayList<>();
250
		terms = new ArrayList<>();
251
		termVocabularies = new ArrayList<>();
252
		occurrences = new ArrayList<>();
253
		references = new ArrayList<>();
254
		referencedEntities = new ArrayList<>();
255
		taxonomicNames = new ArrayList<>();
256
		taxa = new ArrayList<>();
257
		synonyms = new ArrayList<>();
258
		media = new ArrayList<>();
259
		homotypicalGroups = new ArrayList<>();
260 0451b182 h.fradin
	}
261
262
    /**
263
     * Gets the value of the agents property.
264 f476ff86 Andreas Müller
     *
265 0451b182 h.fradin
     * @return
266
     *     possible object is
267
     *     {@link List<Agent> }
268 f476ff86 Andreas Müller
     *
269 0451b182 h.fradin
     */
270 08b9a163 ben.clark
    public List<? extends AgentBase> getAgents() {
271 0451b182 h.fradin
        return agents;
272
    }
273
274
    /**
275
     * Sets the value of the agents property.
276 f476ff86 Andreas Müller
     *
277 0451b182 h.fradin
     * @param value
278
     *     allowed object is
279
     *     {@link List<Agent> }
280 f476ff86 Andreas Müller
     *
281 0451b182 h.fradin
     */
282 08b9a163 ben.clark
    public void setAgents(List<? extends AgentBase> value) {
283 0451b182 h.fradin
        this.agents = value;
284
    }
285
286
    /**
287
     * Gets the value of the agentData property.
288 f476ff86 Andreas Müller
     *
289 0451b182 h.fradin
     * @return
290
     *     possible object is
291
     *     {@link List<VersionableEntity> }
292 f476ff86 Andreas Müller
     *
293 0451b182 h.fradin
     */
294
    public List<VersionableEntity> getAgentData() {
295
        return agentData;
296
    }
297
298
    /**
299
     * Sets the value of the agentData property.
300 f476ff86 Andreas Müller
     *
301 0451b182 h.fradin
     * @param value
302
     *     allowed object is
303
     *     {@link List<VersionableEntity> }
304 f476ff86 Andreas Müller
     *
305 0451b182 h.fradin
     */
306
    public void setAgentData(List<VersionableEntity> value) {
307
        this.agentData = value;
308
    }
309
310
    /**
311
     * Gets the value of the terms property.
312 f476ff86 Andreas Müller
     *
313 0451b182 h.fradin
     * @return
314
     *     possible object is
315
     *     {@link List<TermBase> }
316 f476ff86 Andreas Müller
     *
317 0451b182 h.fradin
     */
318 f476ff86 Andreas Müller
319 0451b182 h.fradin
    //public List<? extends TermBase> getTerms() {
320
    public List<DefinedTermBase> getTerms() {
321
        return terms;
322
    }
323
324
    /**
325
     * Sets the value of the terms property.
326 f476ff86 Andreas Müller
     *
327 0451b182 h.fradin
     * @param value
328
     *     allowed object is
329
     *     {@link List<TermBase> }
330 f476ff86 Andreas Müller
     *
331 0451b182 h.fradin
     */
332
    //public void setTerms(List<? extends TermBase> value) {
333
    public void setTerms(List<DefinedTermBase> value) {
334
        this.terms = value;
335
    }
336
337
    /**
338
     * Gets the value of the term vocabularies property.
339 f476ff86 Andreas Müller
     *
340 0451b182 h.fradin
     * @return
341
     *     possible object is
342
     *     {@link List<TermVocabulary> }
343 f476ff86 Andreas Müller
     *
344 0451b182 h.fradin
     */
345 f476ff86 Andreas Müller
346 0451b182 h.fradin
    public List<TermVocabulary<DefinedTermBase>> getTermVocabularies() {
347
        return termVocabularies;
348
    }
349
350
    /**
351
     * Sets the value of the term vocabularies property.
352 f476ff86 Andreas Müller
     *
353 0451b182 h.fradin
     * @param value
354
     *     allowed object is
355
     *     {@link List<TermVocabulary> }
356 f476ff86 Andreas Müller
     *
357 0451b182 h.fradin
     */
358
    public void setTermVocabularies(List<TermVocabulary<DefinedTermBase>> value) {
359
        this.termVocabularies = value;
360
    }
361
362
    /**
363
     * Gets the value of the taxonomicNames property.
364 f476ff86 Andreas Müller
     *
365 0451b182 h.fradin
     * @return
366
     *     possible object is
367
     *     {@link List<axonNameBase> }
368 f476ff86 Andreas Müller
     *
369 0451b182 h.fradin
     */
370
    public List<TaxonNameBase> getTaxonomicNames() {
371
        return taxonomicNames;
372
    }
373
374
    /**
375
     * Sets the value of the taxonomicNames property.
376 f476ff86 Andreas Müller
     *
377 0451b182 h.fradin
     * @param value
378
     *     allowed object is
379
     *     {@link List<TaxonNameBase> }
380 f476ff86 Andreas Müller
     *
381 0451b182 h.fradin
     */
382
    public void setTaxonomicNames(List<TaxonNameBase> value) {
383
        this.taxonomicNames = value;
384
    }
385
386
    /**
387
     * Gets the value of the references property.
388 f476ff86 Andreas Müller
     *
389 0451b182 h.fradin
     * @return
390
     *     possible object is
391
     *     {@link List<SpecimenOrObservationBase> }
392 f476ff86 Andreas Müller
     *
393 0451b182 h.fradin
     */
394
    public List<SpecimenOrObservationBase> getOccurrences() {
395
        return occurrences;
396
    }
397
398
    /**
399
     * Sets the value of the references property.
400 f476ff86 Andreas Müller
     *
401 0451b182 h.fradin
     * @param value
402
     *     allowed object is
403
     *     {@link List<SpecimenOrObservationBase> }
404 f476ff86 Andreas Müller
     *
405 0451b182 h.fradin
     */
406
    public void setOccurrences(List<SpecimenOrObservationBase> value) {
407
        this.occurrences = value;
408
    }
409
410
    /**
411
     * Gets the value of the references property.
412 f476ff86 Andreas Müller
     *
413 0451b182 h.fradin
     * @return
414
     *     possible object is
415 1d36aa54 Andreas Müller
     *     {@link List<Reference> }
416 f476ff86 Andreas Müller
     *
417 0451b182 h.fradin
     */
418 1d36aa54 Andreas Müller
    public List<Reference> getReferences() {
419 0451b182 h.fradin
        return references;
420
    }
421
422
    /**
423
     * Sets the value of the references property.
424 f476ff86 Andreas Müller
     *
425 0451b182 h.fradin
     * @param value
426
     *     allowed object is
427 1d36aa54 Andreas Müller
     *     {@link List<Reference> }
428 f476ff86 Andreas Müller
     *
429 0451b182 h.fradin
     */
430 1d36aa54 Andreas Müller
    public void setReferences(List<Reference> value) {
431 0451b182 h.fradin
        this.references = value;
432
    }
433
434
    /**
435
     * Adds the referenced entities in value to the referenced entity property list.
436 f476ff86 Andreas Müller
     *
437 0451b182 h.fradin
     * @param value
438
     *     allowed object is
439
     *     {@link Collection<ReferencedEntityBase> }
440 f476ff86 Andreas Müller
     *
441 0451b182 h.fradin
     */
442
    public <T extends ReferencedEntityBase> void addReferencedEntities(Collection<T> value) {
443
    	for (T referencedEntity: value) {
444
    		this.referencedEntities.add(referencedEntity);
445
    	}
446
    }
447
448
    /**
449
     * Gets the value of the  property.
450 f476ff86 Andreas Müller
     *
451 0451b182 h.fradin
     * @return
452
     *     possible object is
453
     *     {@link List<ReferencedEntityBase> }
454 f476ff86 Andreas Müller
     *
455 0451b182 h.fradin
     */
456
    public List<ReferencedEntityBase> getReferencedEntities() {
457
        return referencedEntities;
458
    }
459
460
    /**
461
     * Sets the value of the referencedEntities property.
462 f476ff86 Andreas Müller
     *
463 0451b182 h.fradin
     * @param value
464
     *     allowed object is
465
     *     {@link List<ReferencedEntityBase> }
466 f476ff86 Andreas Müller
     *
467 0451b182 h.fradin
     */
468
    public void setReferencedEntities(List<? extends ReferencedEntityBase> value) {
469
        this.referencedEntities = new ArrayList<ReferencedEntityBase>();
470
        referencedEntities.addAll(value);
471
    }
472 f476ff86 Andreas Müller
473 0451b182 h.fradin
    /**
474
     * Adds the features in value to the feature data property list.
475 f476ff86 Andreas Müller
     *
476 0451b182 h.fradin
     * @param value
477
     *     allowed object is
478
     *     {@link Collection<VersionableEntity> }
479 f476ff86 Andreas Müller
     *
480 0451b182 h.fradin
     */
481
    public <T extends VersionableEntity> void addFeatureData(Collection<T> value) {
482
    	for (T featureItem: value) {
483
    		this.featureData.add(featureItem);
484
    	}
485
    }
486
487
    /**
488
     * Gets the value of the feature data property.
489 f476ff86 Andreas Müller
     *
490 0451b182 h.fradin
     * @return
491
     *     possible object is
492
     *     {@link List<VersionableEntity> }
493 f476ff86 Andreas Müller
     *
494 0451b182 h.fradin
     */
495
//    public List<VersionableEntity> getFeatureData() {
496 d37cd796 ben.clark
    public List<VersionableEntity> getFeatureData() {
497 0451b182 h.fradin
        return featureData;
498
    }
499
500
    /**
501
     * Sets the value of the feature data property.
502 f476ff86 Andreas Müller
     *
503 0451b182 h.fradin
     * @param value
504
     *     allowed object is
505
     *     {@link List<VersionableEntity> }
506 f476ff86 Andreas Müller
     *
507 0451b182 h.fradin
     */
508
    public <T extends VersionableEntity> void setFeatureData(List<T> value) {
509 d37cd796 ben.clark
        featureData = new ArrayList<VersionableEntity>();
510 0451b182 h.fradin
    	for (T featureItem: value) {
511
    		this.featureData.add(featureItem);
512
    	}
513
    }
514
515
//    public void setFeatureData(List<? extends VersionableEntity> value) {
516
    //public void setFeatureData(List<? extends VersionableEntity<?>> value) {
517
//        this.featureData = new ArrayList<VersionableEntity>();
518
    //    this.featureData = new ArrayList<VersionableEntity<?>>();
519
    //    featureData.addAll(value);
520
    //}
521 f476ff86 Andreas Müller
522 0451b182 h.fradin
    /**
523
     * Adds the features in value to the language data property list.
524 f476ff86 Andreas Müller
     *
525 0451b182 h.fradin
     * @param value
526
     *     allowed object is
527
     *     {@link Collection<LanguageStringBase> }
528 f476ff86 Andreas Müller
     *
529 0451b182 h.fradin
     */
530
    public <T extends LanguageStringBase> void addLanguageData(Collection<T> value) {
531
    	for (T languageItem: value) {
532
    		this.languageData.add(languageItem);
533
    	}
534
    }
535
536
    /**
537
     * Gets the value of the language data property.
538 f476ff86 Andreas Müller
     *
539 0451b182 h.fradin
     * @return
540
     *     possible object is
541
     *     {@link List<LanguageStringBase> }
542 f476ff86 Andreas Müller
     *
543 0451b182 h.fradin
     */
544
    public List<LanguageStringBase> getLanguageData() {
545
        return languageData;
546
    }
547
548
    /**
549
     * Sets the value of the feature data property.
550 f476ff86 Andreas Müller
     *
551 0451b182 h.fradin
     * @param value
552
     *     allowed object is
553
     *     {@link List<LanguageStringBase> }
554 f476ff86 Andreas Müller
     *
555 0451b182 h.fradin
     */
556
    public void setLanguageData(List<? extends LanguageStringBase> value) {
557
        this.languageData = new ArrayList<LanguageStringBase>();
558
        languageData.addAll(value);
559
    }
560 f476ff86 Andreas Müller
561 0451b182 h.fradin
    /**
562
     * Adds the taxa in value to the taxa property list.
563 f476ff86 Andreas Müller
     *
564 0451b182 h.fradin
     * @param value
565
     *     allowed object is
566
     *     {@link Collection<Taxon> }
567 f476ff86 Andreas Müller
     *
568 0451b182 h.fradin
     */
569
    public void addTaxa(Collection<Taxon> value) {
570
    	for (Taxon taxon: value) {
571
    		this.taxa.add(taxon);
572
    	}
573
    }
574
575
    /**
576
     * Gets the value of the taxa property.
577 f476ff86 Andreas Müller
     *
578 0451b182 h.fradin
     * @return
579
     *     possible object is
580
     *     {@link List<Taxon> }
581 f476ff86 Andreas Müller
     *
582 0451b182 h.fradin
     */
583
//    public List<Taxon> getTaxa() {
584
//        return taxa;
585
//    }
586
587
    /**
588
     * Gets the value of the taxa property as {@link Collection<TaxonBase> }
589 f476ff86 Andreas Müller
     *
590 0451b182 h.fradin
     * @return
591
     *     possible object is
592
     *     {@link Collection<TaxonBase> }
593 f476ff86 Andreas Müller
     *
594 0451b182 h.fradin
     */
595
    public Collection<? extends TaxonBase> getTaxa() {
596 f476ff86 Andreas Müller
597 0451b182 h.fradin
    	//TODO can be deleted when everything works
598
    	//Object obj = taxa;
599
    	//Collection<TaxonBase> taxonBases = (Collection<TaxonBase>)obj;
600
        List<Taxon> list = taxa;
601
    	return list;
602
    }
603
604
    public Collection<TaxonBase> getTaxonBases() {
605 f476ff86 Andreas Müller
606 0451b182 h.fradin
    	Collection<TaxonBase> result = new HashSet<TaxonBase>();;
607
    	if (taxa != null) {
608
        	result.addAll(taxa);
609
    	}
610
    	if (synonyms != null) {
611
        	result.addAll(synonyms);
612
    	}
613
        return result;
614
    }
615
616
    /**
617
     * Sets the value of the taxa property.
618 f476ff86 Andreas Müller
     *
619 0451b182 h.fradin
     * @param value
620
     *     allowed object is
621
     *     {@link List<Taxon> }
622 f476ff86 Andreas Müller
     *
623 0451b182 h.fradin
     */
624
    public void setTaxa(List<Taxon> value) {
625
        this.taxa = value;
626
    }
627
628
    /**
629
     * Adds the taxon in value to the taxa property list.
630 f476ff86 Andreas Müller
     *
631 0451b182 h.fradin
     * @param value
632 f476ff86 Andreas Müller
     *
633 0451b182 h.fradin
     */
634
    public void addTaxon(Taxon value) {
635
    		this.taxa.add(value);
636
    }
637
638
639
    /**
640
     * Gets the value of the synonyms property.
641 f476ff86 Andreas Müller
     *
642 0451b182 h.fradin
     * @return
643
     *     possible object is
644
     *     {@link List<Synonym> }
645 f476ff86 Andreas Müller
     *
646 0451b182 h.fradin
     */
647
    public List<Synonym> getSynonyms() {
648
        return synonyms;
649
    }
650
651
    /**
652
     * Sets the value of the synonyms property.
653 f476ff86 Andreas Müller
     *
654 0451b182 h.fradin
     * @param value
655
     *     allowed object is
656
     *     {@link List<Synonym> }
657 f476ff86 Andreas Müller
     *
658 0451b182 h.fradin
     */
659
    public void setSynonyms(List<Synonym> value) {
660
        this.synonyms = value;
661
    }
662 f476ff86 Andreas Müller
663 0451b182 h.fradin
    /**
664
     * Adds the synonym in value to the taxa property list.
665 f476ff86 Andreas Müller
     *
666 0451b182 h.fradin
     * @param value
667 f476ff86 Andreas Müller
     *
668 0451b182 h.fradin
     */
669
    public void addSynonym(Synonym value) {
670
    		this.synonyms.add(value);
671
    }
672 f476ff86 Andreas Müller
673 0451b182 h.fradin
    /**
674
     * Adds the synonym in value to the synonyms property list.
675 f476ff86 Andreas Müller
     *
676 0451b182 h.fradin
     * @param value
677
     *     allowed object is
678
     *     {@link Collection<Synonym> }
679 f476ff86 Andreas Müller
     *
680 0451b182 h.fradin
     */
681
    public void addSynonyms(Collection<Synonym> value) {
682
    	for (Synonym synonym: value) {
683
    		this.synonyms.add(synonym);
684
    	}
685
    }
686
687
    /**
688
     * Adds the media in value to the media property list.
689 f476ff86 Andreas Müller
     *
690 0451b182 h.fradin
     * @param value
691
     *     allowed object is
692
     *     {@link Collection<VersionableEntity> }
693 f476ff86 Andreas Müller
     *
694 0451b182 h.fradin
     */
695
    public <T extends VersionableEntity> void addMedia(Collection<T> value) {
696
    	for (T medium: value) {
697
    		this.media.add(medium);
698
    	}
699
    }
700
701
    /**
702
     * Gets the value of the  property.
703 f476ff86 Andreas Müller
     *
704 0451b182 h.fradin
     * @return
705
     *     possible object is
706
     *     {@link List<ReferencedEntityBase> }
707 f476ff86 Andreas Müller
     *
708 0451b182 h.fradin
     */
709
    public List<VersionableEntity> getMedia() {
710
        return media;
711
    }
712
713
    /**
714
     * Sets the value of the referencedEntities property.
715 f476ff86 Andreas Müller
     *
716 0451b182 h.fradin
     * @param value
717
     *     allowed object is
718
     *     {@link List<ReferencedEntityBase> }
719 f476ff86 Andreas Müller
     *
720 0451b182 h.fradin
     */
721
    public void setMedia(List<? extends VersionableEntity> value) {
722
        this.media = new ArrayList<VersionableEntity>();
723
        media.addAll(value);
724
    }
725 f476ff86 Andreas Müller
726 0451b182 h.fradin
    /**
727
     * Gets the value of the synonyms property.
728 f476ff86 Andreas Müller
     *
729 0451b182 h.fradin
     * @return
730
     *     possible object is
731
     *     {@link List<Synonym> }
732 f476ff86 Andreas Müller
     *
733 0451b182 h.fradin
     */
734
    public List<HomotypicalGroup> getHomotypicalGroups() {
735
        return homotypicalGroups;
736
    }
737
738
    /**
739
     * Sets the value of the synonyms property.
740 f476ff86 Andreas Müller
     *
741 0451b182 h.fradin
     * @param value
742
     *     allowed object is
743
     *     {@link List<Synonym> }
744 f476ff86 Andreas Müller
     *
745 0451b182 h.fradin
     */
746
    public void setHomotypicalGroups(List<HomotypicalGroup> value) {
747
        this.homotypicalGroups = value;
748
    }
749 f476ff86 Andreas Müller
750 0451b182 h.fradin
}