Project

General

Profile

Download (21.7 KB) Statistics
| Branch: | Tag: | Revision:
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
package eu.etaxonomy.cdm.model.common;
12

    
13
import java.io.Serializable;
14
import java.util.Set;
15
import java.util.UUID;
16

    
17
import javax.lang.model.element.Modifier;
18
import javax.xml.bind.annotation.XmlEnum;
19
import javax.xml.bind.annotation.XmlEnumValue;
20

    
21
import org.apache.log4j.Logger;
22

    
23
import eu.etaxonomy.cdm.model.agent.Institution;
24
import eu.etaxonomy.cdm.model.description.CategoricalData;
25
import eu.etaxonomy.cdm.model.description.DescriptionBase;
26
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
27
import eu.etaxonomy.cdm.model.description.Distribution;
28
import eu.etaxonomy.cdm.model.description.MeasurementUnit;
29
import eu.etaxonomy.cdm.model.description.SpecimenDescription;
30
import eu.etaxonomy.cdm.model.description.StateData;
31
import eu.etaxonomy.cdm.model.description.StatisticalMeasurementValue;
32
import eu.etaxonomy.cdm.model.description.TaxonDescription;
33
import eu.etaxonomy.cdm.model.description.TextData;
34
import eu.etaxonomy.cdm.model.location.NamedArea;
35
import eu.etaxonomy.cdm.model.location.Point;
36
import eu.etaxonomy.cdm.model.media.Rights;
37
import eu.etaxonomy.cdm.model.molecular.Amplification;
38
import eu.etaxonomy.cdm.model.name.HybridRelationship;
39
import eu.etaxonomy.cdm.model.name.NameRelationship;
40
import eu.etaxonomy.cdm.model.name.NameTypeDesignation;
41
import eu.etaxonomy.cdm.model.name.NomenclaturalStatus;
42
import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;
43
import eu.etaxonomy.cdm.model.name.TaxonNameBase;
44
import eu.etaxonomy.cdm.model.occurrence.DerivationEvent;
45
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
46
import eu.etaxonomy.cdm.model.taxon.Synonym;
47
import eu.etaxonomy.cdm.model.taxon.SynonymRelationship;
48
import eu.etaxonomy.cdm.model.taxon.Taxon;
49
import eu.etaxonomy.cdm.model.taxon.TaxonBase;
50
import eu.etaxonomy.cdm.model.taxon.TaxonNodeAgentRelation;
51
import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
52

    
53

    
54

    
55
/**
56
 * The term type is used to define the type of a {@link TermBase term}, may it be a vocabulary or a defined term.<BR>
57
 * It is used to define in which context a term may be used. From v3.3 on this replaces the semantic part of the subclasses
58
 * of the class {@link DefinedTermBase}. E.g. before v3.3 a term defining a sex and a term defining a stage had to different
59
 * classes Sex and Stage. With v3.3 they both became {@link DefinedTerm}s but with different types.<BR>
60
 * The type of a term and the type of its vocabulary should be the same. Before v3.3 it was not always possible to define
61
 * what the context of an (empty) vocabulary is.
62
 * In future versions this enum may also be expressed as a term, not an enum. For now the general policy is to
63
 * transform former classes to general classes with enums as their types.
64
 *
65
 * @author a.mueller
66
 * @created 11.06.2013
67
 */
68
@XmlEnum
69
public enum TermType implements IEnumTerm<TermType>, Serializable{
70

    
71
    //0
72
    /**
73
     * Unknown term type is the type to be used if no information is available about the type.
74
     * In the current model this type should never be used. However, it is a placeholder in case
75
     * we find an appropriate usage in future.
76
     */
77
    @XmlEnumValue("Unknown")
78
    Unknown(UUID.fromString("b2836c89-3b1d-4758-ba6d-568ef8d6fbc4"), "Unknown Term Type","UNK", null),
79

    
80
    //1
81
    /**
82
     * Term type to represent languages.
83
     */
84
    @XmlEnumValue("Language")
85
    Language(UUID.fromString("5591dc6c-ad1f-4abd-b6c2-4852ea8e46df"), "Language", "LA", null),
86

    
87
    //2
88
    /**
89
     * Term type for areas.
90
     */
91
    @XmlEnumValue("NamedArea")
92
    NamedArea(UUID.fromString("8c9a0bc9-da91-478d-bc8b-44b11565e160"), "Named Area", "NA", null),
93

    
94
    //3
95
    /**
96
     * Term type for taxonomic ranks.
97
     */
98
    @XmlEnumValue("Rank")
99
    Rank(UUID.fromString("8d26b6a9-8a89-45d5-8358-49c3e4f30ade"), "Rank", "RK", null),
100

    
101
    //4
102
    /**
103
     * Term type for descriptive features.
104
     * @see DescriptionElementBase
105
     */
106
    @XmlEnumValue("Feature")
107
    Feature(UUID.fromString("b866a1d6-f962-4c23-bb8e-a3b66d33aedc"), "Feature", "FE", null),
108

    
109
    //5
110
    /**
111
     * Term type for annotation types.
112
     * @see Annotation
113
     */
114
    @XmlEnumValue("AnnotationType")
115
    AnnotationType(UUID.fromString("c3aabb64-6174-4152-95b1-7cec57e485cf"), "Annotation Type", "ANT", null),
116

    
117
    //6
118
    /**
119
     * Term type for marker types.
120
     * @see Marker
121
     */
122
    @XmlEnumValue("MarkerType")
123
    MarkerType(UUID.fromString("d28a1bf8-95ed-483a-8f02-3515b14998e0"), "Marker Type", "MKT", null),
124

    
125
    //7
126
    /**
127
     * Term type for extension types.
128
     * @see Extension
129
     */
130
    @XmlEnumValue("ExtensionType")
131
    ExtensionType(UUID.fromString("12f5c03b-528a-4909-b81b-e525feabc97c"), "Extension Type", "EXT", null),
132

    
133
    //8
134
    /**
135
     * Term type for derivation event types.
136
     * @see DerivationEvent
137
     */
138
    @XmlEnumValue("DerivationEventType")
139
    DerivationEventType(UUID.fromString("ba8e4b10-c792-42e7-a3f5-874708f10094"), "Derivation Event Type", "DET", null),
140

    
141
    //9
142
    /**
143
     * Term type for presence or absence status
144
     * @see Distribution
145
     */
146
    @XmlEnumValue("PresenceAbsenceTerm")
147
    PresenceAbsenceTerm(UUID.fromString("f6b80f88-c8c5-456b-bbd6-d63ecf35606e"), "Presence or Absence Term", "PAT", null),
148

    
149
    //10
150
    /**
151
     * Term type for the taxonomic nomenclatural status of a {@link TaxonNameBase taxon name}.
152
     * @see NomenclaturalStatus
153
     */
154
    @XmlEnumValue("NomenclaturalStatusType")
155
    NomenclaturalStatusType(UUID.fromString("c1acb71a-1d11-4305-8818-c2268d341742"), "Nomenclatural Status Type", "NST", null),
156

    
157
    //11
158
    /**
159
     * Term type for the type of a name relationship between {@link TaxonNameBase taxon names}
160
     * @see NameRelationship
161
     */
162
    @XmlEnumValue("NameRelationshipType")
163
    NameRelationshipType(UUID.fromString("acd8189a-23b9-4a53-8f48-1d2aa270a6ba"), "Name Relationship Type", "NRT"),
164

    
165
    //12
166
    /**
167
     * Term type for the type of a hybrid relationship between {@link TaxonNameBase taxon names}
168
     * @see HybridRelationship
169
     */
170
    @XmlEnumValue("HybridRelationshipType")
171
    HybridRelationshipType(UUID.fromString("aade9e61-eaa1-40fe-9eb1-40f9e8ae1114"), "Hybrid Relationship Type", "HRT"),
172

    
173
    //13
174
    /**
175
     * Term type for the type of a synonym relationship between 2 {@link TaxonBase taxa}
176
     * @see SynonymRelationship
177
     * @see Synonym
178
     * @see TaxonBase
179
     */
180
    @XmlEnumValue("SynonymRelationshipType")
181
    SynonymRelationshipType(UUID.fromString("1eb4fee0-7716-4531-a9ed-a95327f1f4bb"), "Synonym Relationship Type", "SRT"),
182

    
183
    //14
184
    /**
185
     * Term type for the type of a taxonomic concept relationship between
186
     * 2 {@link Taxon accepted taxa}  with different secundum referece.
187
     * @see TaxonRelationship
188
     * @see Taxon
189
     */
190
    @XmlEnumValue("TaxonRelationshipType")
191
    TaxonRelationshipType(UUID.fromString("2d4b281c-142e-42c5-8eb5-1747592b54d8"), "Taxon Relationship Type", "TRT"),
192

    
193
    //15
194
    /**
195
     * Term type for the type of a typification of a taxonomic name
196
     * with a rank higher then species.
197
     * @see eu.etaxonomy.cdm.model.name.NameTypeDesignationStatus
198
     * @see NameTypeDesignation
199
     */
200
    @XmlEnumValue("NameTypeDesignationStatus")
201
    NameTypeDesignationStatus(UUID.fromString("d3860be6-8a08-4fff-984a-6ee8b42937c9"), "Name Type Designation Status", "NTD"),
202

    
203
    //16
204
    /**
205
     * Term type for the type of a typification of a taxonomic name
206
     * with a rank equal or lower then species.
207
     * @see {@link eu.etaxonomy.cdm.model.name.SpecimenTypeDesignationStatus}
208
     * @see SpecimenTypeDesignation
209
     */
210
    @XmlEnumValue("SpecimenTypeDesignationStatus")
211
    SpecimenTypeDesignationStatus(UUID.fromString("4014d7d4-f2dd-4328-8015-357a1a77c1ed"), "Specimen Type Designation Status", "STD"),
212

    
213
    //17
214
    /**
215
     * Term type for an institution type.
216
     * @see Institution
217
     */
218
    @XmlEnumValue("InstitutionType")
219
    InstitutionType(UUID.fromString("09d78265-18b5-4352-b154-d2f39e84d3f3"), "Institution Type", "IT", null),
220

    
221
    //18
222
    /**
223
     * Term type for a named area type.
224
     * @see NamedArea
225
     * @see eu.etaxonomy.cdm.model.location.NamedAreaType
226
     */
227
    @XmlEnumValue("NamedAreaType")
228
    NamedAreaType(UUID.fromString("6a9aba35-6272-4373-8386-000cf95b729e"), "Named Area Type", "NAT", null),
229

    
230
    //19
231
    /**
232
     * Term type for a named area level.
233
     * @see NamedArea
234
     * @see eu.etaxonomy.cdm.model.location.NamedAreaLevel
235
     */
236
    @XmlEnumValue("NamedAreaLevel")
237
    NamedAreaLevel(UUID.fromString("62c16c74-dc79-4970-9031-bb1504be46f5"), "Named Area Level", "NAL", null),
238

    
239
    //20
240
    /**
241
     * Term type for rights.
242
     * @see Rights
243
     */
244
    @XmlEnumValue("RightsType")
245
    RightsType(UUID.fromString("80e06b04-8d0d-4bd5-bcd6-d35f73c24d55"), "Rights Type", "RT", null),
246

    
247
    //21
248
    /**
249
     * Term type for a measurement unit.
250
     * @see MeasurementUnit
251
     */
252
    @XmlEnumValue("MeasurementUnit")
253
    MeasurementUnit(UUID.fromString("f9e6c44f-f0d6-428b-9bc0-bb00a6514883"), "Measurement Unit", "MU", null),
254

    
255
    //22
256
    /**
257
     * Term type for a statistical measure.
258
     * @see eu.etaxonomy.cdm.model.description.StatisticalMeasure
259
     * @see StatisticalMeasurementValue
260
     */
261
    @XmlEnumValue("StatisticalMeasure")
262
    StatisticalMeasure(UUID.fromString("a22d19cd-a342-4af2-b156-d688a7aa8a6b"), "Statistical Measure", "SM", null),
263

    
264
    //23
265
    @XmlEnumValue("MaterialOrMethod")
266
    MaterialOrMethod(UUID.fromString("285a1406-a606-46b9-b0a4-717748296e50"), "Material or Method", "MOM"),
267

    
268
    //23a
269
    @XmlEnumValue("Material")
270
    Material(UUID.fromString("58499bc1-9808-4e03-861c-4325ca889515"), "Material", "MAT", MaterialOrMethod),
271

    
272
    //23b
273
    @XmlEnumValue("Method")
274
    Method(UUID.fromString("527fc141-7fdf-43c1-9d46-20be13c2590c"), "Method", "MET", MaterialOrMethod),
275

    
276

    
277
//	//23c TODO required??
278
//	@XmlEnumValue("PreservationMethod")   --> Method
279
//	PreservationMethod(UUID.fromString("9cadbee4-22b5-40f5-bb37-e4f5340d246e"), "Preservation method", "PRM", MaterialOrMethod),
280
//
281
//	//23d TODO required??  --> Material
282
//	@XmlEnumValue("PreservationMedium")
283
//	PreservationMedium(UUID.fromString("c6269a06-6954-4838-a7a7-7f94ba372f3d"), "Preservation medium", "PME", MaterialOrMethod),
284

    
285

    
286
    //24
287
    /**
288
     * This type represents possible modulations for the validity of
289
     * information pieces ({@link DescriptionElementBase} description elements).
290
     * It can cover probability ("perhaps"), frequency ("often") intensity ("very"),
291
     * timing ("spring") and other domains. Its instances can be grouped to build
292
     * different controlled {@link TermVocabulary term vocabularies}.
293
     * <P>
294
     * This class corresponds to GeneralModifierNLDType according to
295
     * the SDD schema.
296
     * This class is a generalization of {@link #Scope} and {@link #DeterminationModifier}
297
     *
298
     * @see DescriptionElementBase#getModifiers()
299
     * @see StateData#getModifiers()
300
     */
301
    @XmlEnumValue("Modifier")
302
    Modifier(UUID.fromString("97c4db67-ccf5-40bf-9fb8-83fb7446a364"), "Modifier", "MO", null),
303

    
304
    //25
305
    /**
306
     * The type representing restrictions for the validity of
307
     * {@link TaxonDescription taxon descriptions} and others.
308
     * This could include not only Stage (life stage) and Sex
309
     * but also for instance particular organism parts or seasons.<BR>
310
     * Scope is a specialization of {@link #Modifier} and a generalization of
311
     * {@link #Sex} and {@link #Stage}
312
     *
313
     * @see Modifier
314
     * @see DescriptionElementBase
315
     * @see TaxonDescription
316
     * @see TaxonDescription#getScopes()
317
     */
318
    @XmlEnumValue("Scope")
319
    Scope(UUID.fromString("8862b66e-9059-4ea4-885e-47a373357075"), "Scope", "SCO", Modifier),
320

    
321
    //26
322
    /** The stage type represents the restriction (scope) concerning the life stage for
323
     * the applicability of {@link TaxonDescription taxon descriptions}. The life stage of a
324
     * {@link SpecimenOrObservationBase specimen or observation}
325
     * does not belong to a {@link SpecimenDescription specimen description} but is an attribute of
326
     * the specimen itself.<BR>
327
     *
328
     * Stage is a specialization of {@link #Scope}.
329
     */
330
    @XmlEnumValue("Stage")
331
    Stage(UUID.fromString("cf411ef0-8eee-4461-99e9-c03f4f0a1656"), "Stage", "STG", Scope),
332

    
333
    //26a
334
    /** The kind-of-unit type represents the restriction (scope) concerning the part(s) of an
335
     * organism or the class of materials represented by a specimen or observation or described
336
     * by a {@link DescriptionBase taxon or specimen description}.<BR>
337
     * In a {@link DescriptionBase description} it can be used as a {@link #Modifier} or
338
     * a {@link #Scope} and therefore it is a specialization of {@link #Scope}.<BR>
339
     * The kind-of-unit of a {@link SpecimenOrObservationBase specimen or observation}
340
     * should be added as an {@link SpecimenOrObservationBase#getKindOfUnit() kindOfUnit} attribute
341
     * if the specimen is only a part of an organism and this part is described by the part-of-unit.
342
     * If only a part of a specimen is described in a {@link SpecimenDescription specimen description}
343
     * the kind-of-unit should be used as a {@link DescriptionBase description} scope
344
     * (not yet implemented for specimen descriptions) or as a modifier in a
345
     * {@link DescriptionElementBase description item}.<BR><BR>
346
     *
347
     * Value examples are: fruits, seeds, tissue, gDNA, leaves, ... <BR>
348
     *
349
     * KindOfUnit is a Specialization of {@link #Scope}.
350
     *
351
     * @see SpecimenOrObservationBase#getKindOfUnit()
352
     * @see TaxonDescription#getScopes()
353
     * @see DescriptionElementBase#getModifiers()
354
     * @see StateData#getModifiers()
355
     */
356
    @XmlEnumValue("KindOfUnit")
357
    KindOfUnit(UUID.fromString("e3edf086-ff7b-4e58-ab1c-d509352fe5f4"), "Kind of Unit", "KOU", Scope),
358

    
359

    
360
    //27
361
    /**
362
     * The type represents the restriction concerning the sex for
363
     * the applicability of {@link TaxonDescription taxon descriptions} or others. The sex of a
364
     * {@link SpecimenOrObservationBase specimen or observation}
365
     * does not belong to a {@link SpecimenDescription specimen description} but is an attribute of
366
     * the specimen itself.<BR>
367
     *
368
     * Sex is a specialization of {@link #Scope}.
369
     */
370
    @XmlEnumValue("Sex")
371
    Sex(UUID.fromString("4046f91f-063b-4b84-b34a-6245c2abc06f"), "Sex", "SEX", Scope),
372

    
373
    //28
374
    /**
375
     * Term type for a reference system of a geographic information.
376
     * @see Point
377
     * @see Point#getReferenceSystem()
378
     */
379
    @XmlEnumValue("ReferenceSystem")
380
    ReferenceSystem(UUID.fromString("b8cfa986-ef90-465e-9609-1dadae2a0f5b"), "Reference System", "RS", null),
381

    
382
    //29
383
    /**
384
     * Term type for a term representing a state for {@link CategoricalData categorical data}
385
     * @see CategoricalData#getStateData()
386
     * @see StateData#getState()
387
     */
388
    @XmlEnumValue("State")
389
    State(UUID.fromString("5e5b8b60-7300-440a-8706-72fbf31a594f"), "State", "STA", null),
390

    
391
    //30
392
    /**
393
     * Term type representing a natural language term.
394
     */
395
    @XmlEnumValue("NaturalLanguageTerm")
396
    NaturalLanguageTerm(UUID.fromString("9a42ac4e-c175-4633-8b31-74ba8203566a"), "Natural Language Term", "NLT", null),
397

    
398

    
399
    //31
400
    /**
401
     * Term type for a text format.
402
     * @see TextData
403
     */
404
    @XmlEnumValue("TextFormat")
405
    TextFormat(UUID.fromString("d26cfdb4-baeb-43d0-a51b-a3428d838790"), "Text Format", "TF", null),
406

    
407
    //32
408
    /**
409
     * TODO
410
     *
411
     * Determination modifier is a specialization of {@link #Modifier}.
412
     */
413
    @XmlEnumValue("DeterminationModifier")
414
    DeterminationModifier(UUID.fromString("ce910516-bc5d-4ac5-be4d-f3c14c27dd85"), "Determination Modifier", "DMO", Modifier),
415

    
416
    //33
417
    /**
418
     * A marker is a region on a DNA which is addressed in an {@link Amplification amplification process}.
419
     * It is very similar to a locus, a term which is often used as a synonym. However, a locus is correctly
420
     * defining one concrete place on a given DNA and therefore is more specific. As this specific information
421
     * is usually not available the marker information is provided instead.
422
     * Sometimes marker information includes multiple markers. To handle this it was decided that for such
423
     * combined markers we need to create a new "parent" marker which includes the single markers as "partOf" marker.
424
     * However, this works only if you have a distinct marker hierarchy, so futuere
425
     * @see Amplification
426
     * @see Amplification#getMarker()
427
     * @see Sequencing
428
     * @see Sequencing#getMarker()
429
     */
430
    @XmlEnumValue("DnaMarker")
431
    DnaMarker(UUID.fromString("7fdddb4f-b0ec-4ce0-bc28-dc94e30e8252"), "DNA Marker", "DMA", null),
432

    
433
  //34
434
    /**
435
     * An Identifier Type which can be used as a type in {@link Identifier#type} . It may often be a global unique identifier such as DOI, LSID, Barcode ....
436
     * But also local identifier types such Sample Designation, Catalog Number,
437
     * Accession Number, ... are allowed.
438
     * {@link Identifier#type}
439
     */
440
    @XmlEnumValue("IdentifierType")
441
    IdentifierType(UUID.fromString("d24eda99-0716-467f-aa1e-4c0f2b6c3922"), "Identifier Type", "IDE", null),
442

    
443
    //35
444
    /**
445
     * DNA Quality levels {link DnaQuality#type} . It may often be a global unique identifier such as DOI, LSID, Barcode ....
446
     * But also local identifier types such Sample Designation, Catalog Number,
447
     * Accession Number, ... are allowed.
448
     * {@link DnaQu}
449
     */
450
    @XmlEnumValue("DnaQualityType")
451
    DnaQualityType(UUID.fromString("18049372-56e6-4d45-85fc-6a403fecb881"), "DNA Quality Type", "DQT", null),
452

    
453
    //36
454
    /**
455
     * {@link TaxonNodeAgentRelation#getType() TaxonNode Agent Relation Type}.
456
     * The role an agent plays for a taxon node (classification subtree).
457
     */
458
    @XmlEnumValue("DnaQualityType")
459
    TaxonNodeAgentRelationType(UUID.fromString("8e28881a-0744-41ff-a5ed-31246125c424"), "TaxonNode Agent Relation Type", "TART", null),
460

    
461
    ;
462

    
463

    
464
// **************** END ENUM **********************/
465

    
466
    @SuppressWarnings("unused")
467
    private static final Logger logger = Logger.getLogger(TermType.class);
468

    
469
    private TermType(UUID uuid, String defaultString, String key){
470
        this(uuid, defaultString, key, null);
471
    }
472

    
473
    private TermType(UUID uuid, String defaultString, String key, TermType parent){
474
        delegateVocTerm = EnumeratedTermVoc.addTerm(getClass(), this, uuid, defaultString, key, parent);
475
    }
476

    
477

    
478
// *************************** DELEGATE **************************************/
479

    
480
    private static EnumeratedTermVoc<TermType> delegateVoc;
481
    private IEnumTerm<TermType> delegateVocTerm;
482

    
483
    static {
484
        delegateVoc = EnumeratedTermVoc.getVoc(TermType.class);
485
    }
486

    
487
    @Override
488
    public String getKey(){return delegateVocTerm.getKey();}
489

    
490
    @Override
491
    public String getMessage(){return delegateVocTerm.getMessage();}
492

    
493
    @Override
494
    public String getMessage(Language language){return delegateVocTerm.getMessage(language);}
495

    
496
    @Override
497
    public UUID getUuid() {return delegateVocTerm.getUuid();}
498

    
499
    @Override
500
    public TermType getKindOf() {return delegateVocTerm.getKindOf();}
501

    
502
    @Override
503
    public Set<TermType> getGeneralizationOf() {return delegateVocTerm.getGeneralizationOf();}
504

    
505
    @Override
506
    public boolean isKindOf(TermType ancestor) {return delegateVocTerm.isKindOf(ancestor);	}
507

    
508
    @Override
509
    public Set<TermType> getGeneralizationOf(boolean recursive) {return delegateVocTerm.getGeneralizationOf(recursive);}
510

    
511
    public static TermType getByKey(String key){return delegateVoc.getByKey(key);}
512
    public static TermType getByUuid(UUID uuid) {return delegateVoc.getByUuid(uuid);}
513

    
514
    /**
515
     * Returns a defined term base object corresponding to this term type object
516
     *
517
     * @return a defined term base object
518
     */
519
    public DefinedTermBase getEmptyDefinedTermBase() {
520
        switch(this) {
521
            case DeterminationModifier:
522
            case Modifier:
523
            case Scope:
524
            case Sex:
525
            case Stage:
526
            case KindOfUnit:
527
            case IdentifierType:
528
            case DnaMarker:
529
                return DefinedTerm.NewInstance(this, null, "Untitled", null);
530
            case Feature:
531
                return eu.etaxonomy.cdm.model.description.Feature.NewInstance(null, "Untitled", null);
532
            case State:
533
                return eu.etaxonomy.cdm.model.description.State.NewInstance(null, "Untitled", null);
534
            case MarkerType:
535
                return eu.etaxonomy.cdm.model.common.MarkerType.NewInstance(null, "Untitled", null);
536
            case ExtensionType:
537
                return eu.etaxonomy.cdm.model.common.ExtensionType.NewInstance(null, "Untitled", null);
538
            case NamedArea:
539
                return eu.etaxonomy.cdm.model.location.NamedArea.NewInstance(null, "Untitled", null);
540
            case NamedAreaLevel:
541
                return eu.etaxonomy.cdm.model.location.NamedAreaLevel.NewInstance(null, "Untitled", null);
542
            case NamedAreaType:
543
                return eu.etaxonomy.cdm.model.location.NamedAreaType.NewInstance(null, "Untitled", null);
544
            case PresenceAbsenceTerm:
545
            	return eu.etaxonomy.cdm.model.description.PresenceAbsenceTerm.NewPresenceInstance(null, "Untitled", null);
546
            default:
547
                return null;
548
        }
549
    }
550

    
551
}
(64-64/72)