Project

General

Profile

Download (21.5 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2007 EDIT
3
* European Distributed Institute of Taxonomy
4
* http://www.e-taxonomy.eu
5
*
6
* The contents of this file are subject to the Mozilla Public License Version 1.1
7
* See LICENSE.TXT at the top of this package for the full license terms.
8
*/
9

    
10
package eu.etaxonomy.cdm.model.common;
11

    
12
import java.util.Set;
13
import java.util.UUID;
14

    
15
import javax.lang.model.element.Modifier;
16
import javax.xml.bind.annotation.XmlEnum;
17
import javax.xml.bind.annotation.XmlEnumValue;
18

    
19
import org.apache.log4j.Logger;
20

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

    
50

    
51

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    
170
    //13
171
    /**
172
     * Term type for the type of a synonym relationship between 2 {@link TaxonBase taxa}
173
     * @see Synonym#getType()
174
     * @see TaxonBase
175
     */
176
    @XmlEnumValue("SynonymType")
177
    SynonymType(UUID.fromString("1eb4fee0-7716-4531-a9ed-a95327f1f4bb"), "Synonym Type", "SRT"),
178

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

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

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

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

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

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

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

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

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

    
260
    //23
261
    @XmlEnumValue("MaterialOrMethod")
262
    MaterialOrMethod(UUID.fromString("285a1406-a606-46b9-b0a4-717748296e50"), "Material or Method", "MOM"),
263

    
264
    //23a
265
    @XmlEnumValue("Material")
266
    Material(UUID.fromString("58499bc1-9808-4e03-861c-4325ca889515"), "Material", "MAT", MaterialOrMethod),
267

    
268
    //23b
269
    @XmlEnumValue("Method")
270
    Method(UUID.fromString("527fc141-7fdf-43c1-9d46-20be13c2590c"), "Method", "MET", MaterialOrMethod),
271

    
272

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

    
281

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

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

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

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

    
355

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

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

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

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

    
394

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

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

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

    
429
  //34
430
    /**
431
     * 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 ....
432
     * But also local identifier types such Sample Designation, Catalog Number,
433
     * Accession Number, ... are allowed.
434
     * {@link Identifier#type}
435
     */
436
    @XmlEnumValue("IdentifierType")
437
    IdentifierType(UUID.fromString("d24eda99-0716-467f-aa1e-4c0f2b6c3922"), "Identifier Type", "IDE", null),
438

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

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

    
457
    ;
458

    
459

    
460
// **************** END ENUM **********************/
461

    
462
    @SuppressWarnings("unused")
463
    private static final Logger logger = Logger.getLogger(TermType.class);
464

    
465
    private TermType(UUID uuid, String defaultString, String key){
466
        this(uuid, defaultString, key, null);
467
    }
468

    
469
    private TermType(UUID uuid, String defaultString, String key, TermType parent){
470
        delegateVocTerm = EnumeratedTermVoc.addTerm(getClass(), this, uuid, defaultString, key, parent);
471
    }
472

    
473

    
474
// *************************** DELEGATE **************************************/
475

    
476
    private static EnumeratedTermVoc<TermType> delegateVoc;
477
    private IEnumTerm<TermType> delegateVocTerm;
478

    
479
    static {
480
        delegateVoc = EnumeratedTermVoc.getVoc(TermType.class);
481
    }
482

    
483
    @Override
484
    public String getKey(){return delegateVocTerm.getKey();}
485

    
486
    @Override
487
    public String getMessage(){return delegateVocTerm.getMessage();}
488

    
489
    @Override
490
    public String getMessage(Language language){return delegateVocTerm.getMessage(language);}
491

    
492
    @Override
493
    public UUID getUuid() {return delegateVocTerm.getUuid();}
494

    
495
    @Override
496
    public TermType getKindOf() {return delegateVocTerm.getKindOf();}
497

    
498
    @Override
499
    public Set<TermType> getGeneralizationOf() {return delegateVocTerm.getGeneralizationOf();}
500

    
501
    @Override
502
    public boolean isKindOf(TermType ancestor) {return delegateVocTerm.isKindOf(ancestor);	}
503

    
504
    @Override
505
    public Set<TermType> getGeneralizationOf(boolean recursive) {return delegateVocTerm.getGeneralizationOf(recursive);}
506

    
507
    public static TermType getByKey(String key){return delegateVoc.getByKey(key);}
508
    public static TermType getByUuid(UUID uuid) {return delegateVoc.getByUuid(uuid);}
509

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

    
547
}
(69-69/79)