Project

General

Profile

Download (26.8 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2008 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.io.jaxb;
11

    
12
import java.util.ArrayList;
13
import java.util.Collection;
14
import java.util.List;
15

    
16
import javax.xml.bind.annotation.XmlAccessType;
17
import javax.xml.bind.annotation.XmlAccessorType;
18
import javax.xml.bind.annotation.XmlElement;
19
import javax.xml.bind.annotation.XmlElementWrapper;
20
import javax.xml.bind.annotation.XmlElements;
21
import javax.xml.bind.annotation.XmlRootElement;
22
import javax.xml.bind.annotation.XmlType;
23

    
24
import org.springframework.security.core.GrantedAuthority;
25

    
26
import eu.etaxonomy.cdm.io.common.IExportData;
27
import eu.etaxonomy.cdm.model.agent.AgentBase;
28
import eu.etaxonomy.cdm.model.agent.Institution;
29
import eu.etaxonomy.cdm.model.agent.Person;
30
import eu.etaxonomy.cdm.model.agent.Team;
31
import eu.etaxonomy.cdm.model.common.AnnotationType;
32
import eu.etaxonomy.cdm.model.common.DefinedTerm;
33
import eu.etaxonomy.cdm.model.common.DefinedTermBase;
34
import eu.etaxonomy.cdm.model.common.EventBase;
35
import eu.etaxonomy.cdm.model.common.ExtensionType;
36
import eu.etaxonomy.cdm.model.common.GrantedAuthorityImpl;
37
import eu.etaxonomy.cdm.model.common.Group;
38
import eu.etaxonomy.cdm.model.common.Language;
39
import eu.etaxonomy.cdm.model.common.LanguageString;
40
import eu.etaxonomy.cdm.model.common.MarkerType;
41
import eu.etaxonomy.cdm.model.common.OrderedTermVocabulary;
42
import eu.etaxonomy.cdm.model.common.TermVocabulary;
43
import eu.etaxonomy.cdm.model.common.User;
44
import eu.etaxonomy.cdm.model.description.Feature;
45
import eu.etaxonomy.cdm.model.description.FeatureTree;
46
import eu.etaxonomy.cdm.model.description.MeasurementUnit;
47
import eu.etaxonomy.cdm.model.description.MediaKey;
48
import eu.etaxonomy.cdm.model.description.PolytomousKey;
49
import eu.etaxonomy.cdm.model.description.PresenceAbsenceTerm;
50
import eu.etaxonomy.cdm.model.description.State;
51
import eu.etaxonomy.cdm.model.description.StatisticalMeasure;
52
import eu.etaxonomy.cdm.model.description.TextFormat;
53
import eu.etaxonomy.cdm.model.location.Country;
54
import eu.etaxonomy.cdm.model.location.NamedArea;
55
import eu.etaxonomy.cdm.model.location.NamedAreaLevel;
56
import eu.etaxonomy.cdm.model.location.NamedAreaType;
57
import eu.etaxonomy.cdm.model.location.ReferenceSystem;
58
import eu.etaxonomy.cdm.model.media.Media;
59
import eu.etaxonomy.cdm.model.media.RightsType;
60
import eu.etaxonomy.cdm.model.molecular.DnaSample;
61
import eu.etaxonomy.cdm.model.molecular.PhylogeneticTree;
62
import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
63
import eu.etaxonomy.cdm.model.name.HybridRelationshipType;
64
import eu.etaxonomy.cdm.model.name.NameRelationshipType;
65
import eu.etaxonomy.cdm.model.name.NameTypeDesignation;
66
import eu.etaxonomy.cdm.model.name.NameTypeDesignationStatus;
67
import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
68
import eu.etaxonomy.cdm.model.name.NomenclaturalStatusType;
69
import eu.etaxonomy.cdm.model.name.Rank;
70
import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;
71
import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignationStatus;
72
import eu.etaxonomy.cdm.model.name.TaxonNameBase;
73
import eu.etaxonomy.cdm.model.name.TypeDesignationBase;
74
import eu.etaxonomy.cdm.model.occurrence.DerivationEvent;
75
import eu.etaxonomy.cdm.model.occurrence.DerivationEventType;
76
import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
77
import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
78
import eu.etaxonomy.cdm.model.occurrence.GatheringEvent;
79
import eu.etaxonomy.cdm.model.occurrence.PreservationMethod;
80
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
81
import eu.etaxonomy.cdm.model.reference.Reference;
82
import eu.etaxonomy.cdm.model.taxon.Classification;
83
import eu.etaxonomy.cdm.model.taxon.Synonym;
84
import eu.etaxonomy.cdm.model.taxon.SynonymType;
85
import eu.etaxonomy.cdm.model.taxon.Taxon;
86
import eu.etaxonomy.cdm.model.taxon.TaxonBase;
87
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
88
import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;
89

    
90
/**
91
 * @author a.babadshanjan
92
 */
93
@XmlAccessorType(XmlAccessType.FIELD)
94
@XmlType(name = "DataSet", propOrder = {
95
	    "terms",
96
	    "termVocabularies",
97
		"agents",
98
		"collections",
99
		"occurrences",
100
		"eventBases",
101
	    "references",
102
	    "typeDesignations",
103
	    "featureTrees",
104
	    "polytomousKeys",
105
	    "taxonNodes",
106
	    "classifications",
107
	    "taxonomicNames",
108
	    "homotypicalGroups",
109
	    "taxonBases",
110
	    "media",
111
	    "users",
112
	    "groups",
113
	    "grantedAuthorities",
114
	    "languageStrings"
115
})
116
@XmlRootElement(name = "DataSet")
117
public class DataSet implements IExportData {
118

    
119
    private static final long serialVersionUID = -657623965517589622L;
120

    
121
    @XmlElementWrapper(name = "Terms")
122
    @XmlElements({
123
    	@XmlElement(name = "AnnotationType", namespace = "http://etaxonomy.eu/cdm/model/common/1.0", type = AnnotationType.class),
124
    	@XmlElement(name = "Continent", namespace = "http://etaxonomy.eu/cdm/model/location/1.0", type = NamedArea.class),
125
    	@XmlElement(name = "DerivationEventType", namespace = "http://etaxonomy.eu/cdm/model/occurrence/1.0", type = DerivationEventType.class),
126
    	@XmlElement(name = "DeterminationModifier", namespace = "http://etaxonomy.eu/cdm/model/occurrence/1.0", type = DefinedTerm.class),
127
    	@XmlElement(name = "ExtensionType", namespace = "http://etaxonomy.eu/cdm/model/common/1.0", type = ExtensionType.class),
128
    	@XmlElement(name = "Feature", namespace = "http://etaxonomy.eu/cdm/model/description/1.0", type = Feature.class),
129
    	@XmlElement(name = "HybridRelationshipType", namespace = "http://etaxonomy.eu/cdm/model/name/1.0", type = HybridRelationshipType.class),
130
    	@XmlElement(name = "InstitutionType", namespace = "http://etaxonomy.eu/cdm/model/agent/1.0", type = DefinedTerm.class),
131
    	@XmlElement(name = "Language", namespace = "http://etaxonomy.eu/cdm/model/common/1.0", type = Language.class),
132
    	@XmlElement(name = "MarkerType", namespace = "http://etaxonomy.eu/cdm/model/common/1.0", type = MarkerType.class),
133
    	@XmlElement(name = "MeasurementUnit", namespace = "http://etaxonomy.eu/cdm/model/description/1.0", type = MeasurementUnit.class),
134
    	@XmlElement(name = "Modifier", namespace = "http://etaxonomy.eu/cdm/model/description/1.0", type = DefinedTerm.class),
135
    	@XmlElement(name = "NamedArea", namespace = "http://etaxonomy.eu/cdm/model/location/1.0", type = NamedArea.class),
136
    	@XmlElement(name = "NamedAreaLevel", namespace = "http://etaxonomy.eu/cdm/model/location/1.0", type = NamedAreaLevel.class),
137
    	@XmlElement(name = "NamedAreaType", namespace = "http://etaxonomy.eu/cdm/model/location/1.0", type = NamedAreaType.class),
138
    	@XmlElement(name = "NameRelationshipType", namespace = "http://etaxonomy.eu/cdm/model/name/1.0", type = NameRelationshipType.class),
139
    	@XmlElement(name = "NameTypeDesignationStatus", namespace = "http://etaxonomy.eu/cdm/model/name/1.0", type = NameTypeDesignationStatus.class),
140
    	@XmlElement(name = "NomenclaturalCode", namespace = "http://etaxonomy.eu/cdm/model/name/1.0", type = NomenclaturalCode.class),
141
    	@XmlElement(name = "NomenclaturalStatusType", namespace = "http://etaxonomy.eu/cdm/model/name/1.0", type = NomenclaturalStatusType.class),
142
    	@XmlElement(name = "PresenceAbsenceTerm", namespace = "http://etaxonomy.eu/cdm/model/description/1.0", type = PresenceAbsenceTerm.class),
143
    	@XmlElement(name = "PreservationMethod", namespace = "http://etaxonomy.eu/cdm/model/occurrence/1.0", type = PreservationMethod.class),
144
        @XmlElement(name = "Rank", namespace = "http://etaxonomy.eu/cdm/model/name/1.0", type = Rank.class),
145
    	@XmlElement(name = "ReferenceSystem", namespace = "http://etaxonomy.eu/cdm/model/location/1.0", type = ReferenceSystem.class),
146
    	@XmlElement(name = "RightsType", namespace = "http://etaxonomy.eu/cdm/model/media/1.0", type = RightsType.class),
147
    	@XmlElement(name = "Scope", namespace = "http://etaxonomy.eu/cdm/model/description/1.0", type = DefinedTerm.class),
148
    	@XmlElement(name = "Sex", namespace = "http://etaxonomy.eu/cdm/model/description/1.0", type = DefinedTerm.class),
149
    	@XmlElement(name = "SpecimenTypeDesignationStatus", namespace = "http://etaxonomy.eu/cdm/model/name/1.0", type = SpecimenTypeDesignationStatus.class),
150
    	@XmlElement(name = "Stage", namespace = "http://etaxonomy.eu/cdm/model/description/1.0", type = DefinedTerm.class),
151
    	@XmlElement(name = "State", namespace = "http://etaxonomy.eu/cdm/model/description/1.0", type = State.class),
152
    	@XmlElement(name = "StatisticalMeasure", namespace = "http://etaxonomy.eu/cdm/model/description/1.0", type = StatisticalMeasure.class),
153
    	@XmlElement(name = "SynonymType", namespace = "http://etaxonomy.eu/cdm/model/taxon/1.0", type = SynonymType.class),
154
    	@XmlElement(name = "TaxonRelationshipType", namespace = "http://etaxonomy.eu/cdm/model/taxon/1.0", type = TaxonRelationshipType.class),
155
    	//    	@XmlElement(name = "TdwgArea", namespace = "http://etaxonomy.eu/cdm/model/location/1.0", type = TdwgArea.class),
156
    	@XmlElement(name = "TextFormat", namespace = "http://etaxonomy.eu/cdm/model/description/1.0", type = TextFormat.class),
157
    	@XmlElement(name = "Country", namespace = "http://etaxonomy.eu/cdm/model/location/1.0", type = Country.class)
158

    
159
    })
160
    protected List<DefinedTermBase> terms = new ArrayList<>();
161

    
162
	@XmlElementWrapper(name = "TermVocabularies")
163
    @XmlElements({
164
        @XmlElement(name = "TermVocabulary", namespace = "http://etaxonomy.eu/cdm/model/common/1.0", type = TermVocabulary.class),
165
        @XmlElement(name = "OrderedTermVocabulary", namespace = "http://etaxonomy.eu/cdm/model/common/1.0", type = OrderedTermVocabulary.class)
166
    })
167

    
168
    protected List<TermVocabulary<DefinedTermBase>> termVocabularies = new ArrayList<>();
169

    
170

    
171
    @XmlElementWrapper(name = "Agents")
172
    @XmlElements({
173
        @XmlElement(name = "Team", namespace = "http://etaxonomy.eu/cdm/model/agent/1.0", type = Team.class),
174
        @XmlElement(name = "Institution", namespace = "http://etaxonomy.eu/cdm/model/agent/1.0", type = Institution.class),
175
        @XmlElement(name = "Person", namespace = "http://etaxonomy.eu/cdm/model/agent/1.0", type = Person.class)
176
    })
177
    protected List<AgentBase> agents = new ArrayList<>();
178

    
179

    
180
    @XmlElementWrapper(name = "Collections")
181
    @XmlElement(name = "Collection", namespace = "http://etaxonomy.eu/cdm/model/occurrence/1.0")
182
    protected List<eu.etaxonomy.cdm.model.occurrence.Collection> collections = new ArrayList<>();
183

    
184
    @XmlElementWrapper(name = "FeatureTrees")
185
    @XmlElements({
186
      @XmlElement(name = "FeatureTree", namespace = "http://etaxonomy.eu/cdm/model/description/1.0", type = FeatureTree.class)
187
    })
188
    protected List<FeatureTree> featureTrees = new ArrayList<>();
189

    
190
    @XmlElementWrapper(name = "PolytomousKeys")
191
    @XmlElements({
192
      @XmlElement(name = "PolytomousKey", namespace = "http://etaxonomy.eu/cdm/model/description/1.0", type = PolytomousKey.class)
193
    })
194
    protected List<PolytomousKey> polytomousKeys = new ArrayList<>();
195

    
196

    
197
    @XmlElementWrapper(name = "Classifications")
198
    @XmlElement(name = "Classification", namespace = "http://etaxonomy.eu/cdm/model/taxon/1.0")
199
    protected List<Classification> classifications = new ArrayList<>();
200

    
201
    @XmlElementWrapper(name = "TaxonNodes")
202
    @XmlElement(name = "TaxonNodes", namespace = "http://etaxonomy.eu/cdm/model/taxon/1.0")
203
    protected List<TaxonNode> taxonNodes = new ArrayList<>();
204

    
205
    protected List<LanguageString> languageStrings =new ArrayList<>();
206

    
207

    
208
    @XmlElementWrapper(name = "Occurrences")
209
    @XmlElements({
210
    	@XmlElement(name = "DerivedUnit", namespace = "http://etaxonomy.eu/cdm/model/occurrence/1.0", type = DerivedUnit.class),
211
    	@XmlElement(name = "DnaSample", namespace = "http://etaxonomy.eu/cdm/model/occurrence/1.0", type = DnaSample.class),
212
    	@XmlElement(name = "FieldUnit", namespace = "http://etaxonomy.eu/cdm/model/occurrence/1.0", type = FieldUnit.class)
213
    })
214
    protected List<SpecimenOrObservationBase> occurrences = new ArrayList<>();
215

    
216
    @XmlElementWrapper(name = "EventBases")
217
    @XmlElements({
218
    	@XmlElement(name = "DerivationEvent", namespace = "http://etaxonomy.eu/cdm/model/occurrence/1.0", type = DerivationEvent.class),
219
    	@XmlElement(name = "GatheringEvent", namespace = "http://etaxonomy.eu/cdm/model/occurrence/1.0", type = GatheringEvent.class)
220
    })
221
    protected List<EventBase> eventBases = new ArrayList<>();
222

    
223
    @XmlElementWrapper(name = "References")
224
    @XmlElements({
225
    	@XmlElement(name = "Reference", namespace = "http://etaxonomy.eu/cdm/model/reference/1.0", type = Reference.class)
226
    })
227
    protected List<Reference> references = new ArrayList<>();
228

    
229
    @XmlElementWrapper(name = "TypeDesignations")
230
    @XmlElements({
231
    	@XmlElement(name = "NameTypeDesignation", namespace = "http://etaxonomy.eu/cdm/model/name/1.0", type = NameTypeDesignation.class),
232
    	@XmlElement(name = "SpecimenTypeDesignation", namespace = "http://etaxonomy.eu/cdm/model/name/1.0", type = SpecimenTypeDesignation.class)
233
    })
234
    protected List<TypeDesignationBase> typeDesignations = new ArrayList<>();
235

    
236
    @XmlElementWrapper(name = "TaxonomicNames")
237
    @XmlElements({
238
    	@XmlElement(name = "TaxonNameBase", namespace = "http://etaxonomy.eu/cdm/model/name/1.0", type = TaxonNameBase.class),
239
     })
240
    protected List<TaxonNameBase> taxonomicNames = new ArrayList<>();
241

    
242
    @XmlElementWrapper(name = "TaxonBases")
243
    @XmlElements({
244
      @XmlElement(name = "Taxon", namespace = "http://etaxonomy.eu/cdm/model/taxon/1.0", type = Taxon.class),
245
      @XmlElement(name = "Synonym", namespace = "http://etaxonomy.eu/cdm/model/taxon/1.0", type = Synonym.class)
246
    })
247
    protected List<TaxonBase<?>> taxonBases = new ArrayList<>();
248

    
249
    @XmlElementWrapper(name = "Media")
250
    @XmlElements({
251
      @XmlElement(name = "Media", namespace = "http://etaxonomy.eu/cdm/model/media/1.0", type = Media.class),
252
      @XmlElement(name = "MediaKey", namespace = "http://etaxonomy.eu/cdm/model/description/1.0", type = MediaKey.class),
253
      @XmlElement(name = "PhylogeneticTree", namespace = "http://etaxonomy.eu/cdm/model/molecular/1.0", type = PhylogeneticTree.class)
254
    })
255
    protected List<Media> media = new ArrayList<>();
256

    
257
    @XmlElementWrapper(name = "HomotypicalGroups")
258
    @XmlElement(name = "HomotypicalGroup", namespace = "http://etaxonomy.eu/cdm/model/name/1.0")
259
    protected List<HomotypicalGroup> homotypicalGroups = new ArrayList<>();
260

    
261
    @XmlElementWrapper(name = "Users")
262
    @XmlElement(name = "User", namespace = "http://etaxonomy.eu/cdm/model/common/1.0")
263
    protected List<User> users = new ArrayList<>();
264

    
265
    @XmlElementWrapper(name = "Groups")
266
    @XmlElement(name = "Group", namespace = "http://etaxonomy.eu/cdm/model/common/1.0")
267
    protected List<Group> groups = new ArrayList<>();
268

    
269
    @XmlElementWrapper(name = "GrantedAuthorities")
270
    @XmlElement(name = "GrantedAuthority", namespace = "http://etaxonomy.eu/cdm/model/common/1.0", type = GrantedAuthorityImpl.class)
271
    protected List<GrantedAuthority> grantedAuthorities = new ArrayList<GrantedAuthority>();
272

    
273
    /**
274
     * Gets the value of the agents property.
275
     *
276
     * @return
277
     *     possible object is
278
     *     {@link List<Agent> }
279
     *
280
     */
281
    public List<AgentBase> getAgents() {
282
        return agents;
283
    }
284

    
285
    /**
286
     * Sets the value of the agents property.
287
     *
288
     * @param value
289
     *     allowed object is
290
     *     {@link List<Agent> }
291
     *
292
     */
293
    public void setAgents(List<AgentBase> value) {
294
        this.agents = value;
295
    }
296

    
297
    /**
298
     * Gets the value of the collections property.
299
     *
300
     * @return
301
     *     possible object is
302
     *     {@link List<eu.etaxonomy.cdm.model.occurrence.Collection> }
303
     *
304
     */
305
    public List<eu.etaxonomy.cdm.model.occurrence.Collection> getCollections() {
306
        return collections;
307
    }
308

    
309
    /**
310
     * Sets the value of the collections property.
311
     *
312
     * @param value
313
     *     allowed object is
314
     *     {@link List<eu.etaxonomy.cdm.model.occurrence.Collection> }
315
     *
316
     */
317
    public void setCollections(List<eu.etaxonomy.cdm.model.occurrence.Collection> value) {
318
        this.collections = value;
319
    }
320

    
321
    /**
322
     * Gets the value of the terms property.
323
     *
324
     * @return
325
     *     possible object is
326
     *     {@link List<TermBase> }
327
     *
328
     */
329
    public List<DefinedTermBase> getTerms() {
330
        return terms;
331
    }
332

    
333
    /**
334
     * Sets the value of the terms property.
335
     *
336
     * @param value
337
     *     allowed object is
338
     *     {@link List<TermBase> }
339
     *
340
     */
341
    public void setTerms(List<DefinedTermBase> value) {
342
        this.terms = value;
343
    }
344

    
345
    /**
346
     * Gets the value of the term vocabularies property.
347
     *
348
     * @return
349
     *     possible object is
350
     *     {@link List<TermVocabulary> }
351
     *
352
     */
353

    
354
    public List<TermVocabulary<DefinedTermBase>> getTermVocabularies() {
355
        return termVocabularies;
356
    }
357

    
358
    /**
359
     * Sets the value of the term vocabularies property.
360
     *
361
     * @param value
362
     *     allowed object is
363
     *     {@link List<TermVocabulary> }
364
     *
365
     */
366
    public void setTermVocabularies(List<TermVocabulary<DefinedTermBase>> value) {
367
        this.termVocabularies = value;
368
    }
369

    
370

    
371

    
372
    /**
373
     * Gets the value of the taxonomicNames property.
374
     *
375
     * @return
376
     *     possible object is
377
     *     {@link List<axonNameBase> }
378
     *
379
     */
380
    public List<TaxonNameBase> getTaxonomicNames() {
381
        return taxonomicNames;
382
    }
383

    
384
    /**
385
     * Sets the value of the taxonomicNames property.
386
     *
387
     * @param value
388
     *     allowed object is
389
     *     {@link List<TaxonNameBase> }
390
     *
391
     */
392
    public void setTaxonomicNames(List<TaxonNameBase> value) {
393
        this.taxonomicNames = value;
394
    }
395

    
396
    /**
397
     * Gets the value of the eventBases property.
398
     *
399
     * @return
400
     *     possible object is
401
     *     {@link List<EventBase> }
402
     *
403
     */
404
    public List<EventBase> getEventBases() {
405
        return eventBases;
406
    }
407

    
408
    /**
409
     * Sets the value of the eventBases property.
410
     *
411
     * @param value
412
     *     allowed object is
413
     *     {@link List<EventBase> }
414
     *
415
     */
416
    public void setEventBases(List<EventBase> value) {
417
        this.eventBases = value;
418
    }
419

    
420
    /**
421
     * Gets the value of the occurrences property.
422
     *
423
     * @return
424
     *     possible object is
425
     *     {@link List<SpecimenOrObservationBase> }
426
     *
427
     */
428
    public List<SpecimenOrObservationBase> getOccurrences() {
429
        return occurrences;
430
    }
431

    
432
    /**
433
     * Sets the value of the occurrences property.
434
     *
435
     * @param value
436
     *     allowed object is
437
     *     {@link List<SpecimenOrObservationBase> }
438
     *
439
     */
440
    public void setOccurrences(List<SpecimenOrObservationBase> value) {
441
        this.occurrences = value;
442
    }
443
    /*
444
    * Gets the value of the occurrences property.
445
    *
446
    * @return
447
    *     possible object is
448
    *     {@link List<LanguageStringBase> }
449
    *
450
    */
451
   public List<LanguageString> getLanguageStrings() {
452
       return languageStrings;
453
   }
454

    
455
   /**
456
    * Sets the value of the occurrences property.
457
    *
458
    * @param value
459
    *     allowed object is
460
    *     {@link List<SpecimenOrObservationBase> }
461
    *
462
    */
463
   public void setLanguageStrings(List<LanguageString> value) {
464
       this.languageStrings = value;
465
   }
466
    /**
467
     * Gets the value of the references property.
468
     *
469
     * @return
470
     *     possible object is
471
     *     {@link List<Reference> }
472
     *
473
     */
474
    public List<Reference> getReferences() {
475
        return references;
476
    }
477

    
478
    /**
479
     * Sets the value of the references property.
480
     *
481
     * @param value
482
     *     allowed object is
483
     *     {@link List<Reference> }
484
     *
485
     */
486
    public void setReferences(List<Reference> value) {
487
        this.references = value;
488
    }
489

    
490
    /**
491
     * Gets the value of the featureTrees property.
492
     *
493
     * @return
494
     *     possible object is
495
     *     {@link List<FeatureTree> }
496
     *
497
     */
498
    public List<FeatureTree> getFeatureTrees() {
499
        return featureTrees;
500
    }
501

    
502

    
503
    /**
504
     * Gets the value of the polytomousKeys property.
505
     *
506
     * @return
507
     *     possible object is
508
     *     {@link List<PolytomousKey> }
509
     *
510
     */
511
    public List<PolytomousKey> getPolytomousKeys() {
512
        return polytomousKeys;
513
    }
514

    
515
    /**
516
     * Sets the value of the featureTrees property.
517
     *
518
     * @param value
519
     *     allowed object is
520
     *     {@link List<FeatureTree> }
521
     *
522
     */
523
    public void setClassifications(List<Classification> value) {
524
    	this.classifications = value;
525
    }
526

    
527

    
528
    /**
529
     * Gets the value of the featureTrees property.
530
     *
531
     * @return
532
     *     possible object is
533
     *     {@link List<FeatureTree> }
534
     *
535
     */
536
    public List<Classification> getClassifications() {
537
        return classifications;
538
    }
539
    /**
540
     * Sets the value of the featureTrees property.
541
     *
542
     * @param value
543
     *     allowed object is
544
     *     {@link List<FeatureTree> }
545
     *
546
     */
547
    public void setTaxonNodes(List<TaxonNode> value) {
548
    	this.taxonNodes = value;
549
    }
550

    
551

    
552
    /**
553
     * Gets the value of the featureTrees property.
554
     *
555
     * @return
556
     *     possible object is
557
     *     {@link List<FeatureTree> }
558
     *
559
     */
560
    public List<TaxonNode> getTaxonNodes() {
561
        return taxonNodes;
562
    }
563

    
564
    /**
565
     * Sets the value of the featureTrees property.
566
     *
567
     * @param value
568
     *     allowed object is
569
     *     {@link List<FeatureTree> }
570
     *
571
     */
572
    public void setFeatureTrees(List<FeatureTree> value) {
573
    	this.featureTrees = value;
574
    }
575

    
576
    /**
577
     * Sets the value of the polytomousKeys property.
578
     *
579
     * @param value
580
     *     allowed object is
581
     *     {@link List<PolytomousKey> }
582
     *
583
     */
584
    public void setPolytomousKeys(List<PolytomousKey> value) {
585
    	this.polytomousKeys = value;
586
    }
587

    
588
    /**
589
     * Adds the taxonBases in value to the taxonBases property list.
590
     *
591
     * @param value
592
     *     allowed object is
593
     *     {@link Collection<TaxonBase> }
594
     *
595
     */
596
    public void addTaxonBases(Collection<TaxonBase<?>> value) {
597
    	this.taxonBases.addAll(value);
598
    }
599

    
600
    /**
601
     * Gets the value of the taxonBases property as {@link Collection<TaxonBase> }
602
     *
603
     * @return
604
     *     possible object is
605
     *     {@link List<TaxonBase> }
606
     *
607
     */
608
    public List<TaxonBase<?>> getTaxonBases() {
609
    	return taxonBases;
610
    }
611

    
612
    /**
613
     * Sets the value of the taxonBases property.
614
     *
615
     * @param value
616
     *     allowed object is
617
     *     {@link List<TaxonBase> }
618
     *
619
     */
620
    public void setTaxonBases(List<TaxonBase<?>> value) {
621
        this.taxonBases = value;
622
    }
623

    
624
    /**
625
     * Adds the taxonBase in value to the taxonBases property list.
626
     *
627
     * @param value
628
     *
629
     */
630
    public void addTaxonBase(TaxonBase value) {
631
    		this.taxonBases.add(value);
632
    }
633

    
634
    /**
635
     * Adds the media in value to the media property list.
636
     *
637
     * @param value
638
     *     allowed object is
639
     *     {@link Collection<VersionableEntity> }
640
     *
641
     */
642
    public <T extends Media> void addMedia(Collection<T> value) {
643
    	for (T medium: value) {
644
    		this.media.add(medium);
645
    	}
646
    }
647

    
648
    /**
649
     * Gets the value of the  property.
650
     *
651
     * @return
652
     *     possible object is
653
     *     {@link List<ReferencedEntityBase> }
654
     *
655
     */
656
    public List<Media> getMedia() {
657
        return media;
658
    }
659

    
660
    /**
661
     * Sets the value of the referencedEntities property.
662
     *
663
     * @param value
664
     *     allowed object is
665
     *     {@link List<ReferencedEntityBase> }
666
     *
667
     */
668
    public void setMedia(List<Media> value) {
669
        this.media = new ArrayList<Media>();
670
        media.addAll(value);
671
    }
672

    
673
    /**
674
     * Gets the value of the synonyms property.
675
     *
676
     * @return
677
     *     possible object is
678
     *     {@link List<Synonym> }
679
     *
680
     */
681
    public List<HomotypicalGroup> getHomotypicalGroups() {
682
        return homotypicalGroups;
683
    }
684

    
685
    /**
686
     * Sets the value of the synonyms property.
687
     *
688
     * @param value
689
     *     allowed object is
690
     *     {@link List<Synonym> }
691
     *
692
     */
693
    public void setHomotypicalGroups(List<HomotypicalGroup> value) {
694
        this.homotypicalGroups = value;
695
    }
696

    
697
    /**
698
     * Gets the value of the typeDesignations property.
699
     *
700
     * @return
701
     *     possible object is
702
     *     {@link List<TypeDesignationBase> }
703
     *
704
     */
705
    public List<TypeDesignationBase> getTypeDesignations() {
706
    	return typeDesignations;
707
    }
708

    
709
    /**
710
     * Sets the value of the typeDesignations property.
711
     *
712
     * @param value
713
     *     allowed object is
714
     *     {@link List<TypeDesignationBase> }
715
     *
716
     */
717
	public void addTypeDesignations(List<TypeDesignationBase> typeDesignations) {
718
		this.typeDesignations.addAll(typeDesignations);
719
	}
720

    
721
	/**
722
     * Gets the value of the users property.
723
     *
724
     * @return
725
     *     possible object is
726
     *     {@link List<User> }
727
     *
728
     */
729
	public List<User> getUsers() {
730
		return users;
731
	}
732

    
733
	/**
734
     * Sets the value of the users property.
735
     *
736
     * @param value
737
     *     allowed object is
738
     *     {@link List<User> }
739
     *
740
     */
741
	public void setUsers(List<User> users) {
742
		this.users = users;
743
	}
744

    
745
	/**
746
     * Gets the value of the groups property.
747
     *
748
     * @return
749
     *     possible object is
750
     *     {@link List<Group> }
751
     *
752
     */
753
	public List<Group> getGroups() {
754
		return groups;
755
	}
756

    
757
	/**
758
     * Sets the value of the groups property.
759
     *
760
     * @param value
761
     *     allowed object is
762
     *     {@link List<Group> }
763
     *
764
     */
765
	public void setGroups(List<Group> groups) {
766
		this.groups = groups;
767
	}
768

    
769
	/**
770
     * Gets the value of the grantedAuthorities property.
771
     *
772
     * @return
773
     *     possible object is
774
     *     {@link List<GrantedAuthority> }
775
     *
776
     */
777
	public List<GrantedAuthority> getGrantedAuthorities() {
778
		return grantedAuthorities;
779
	}
780

    
781
	/**
782
     * Sets the value of the grantedAuthorities property.
783
     *
784
     * @param value
785
     *     allowed object is
786
     *     {@link List<GrantedAuthority> }
787
     *
788
     */
789
	public void setGrantedAuthorities(List<GrantedAuthority> grantedAuthorities) {
790
		this.grantedAuthorities = grantedAuthorities;
791
	}
792

    
793
	public void addUser(User deproxy) {
794
		this.users.add(deproxy);
795

    
796
	}
797
}
(6-6/17)