Project

General

Profile

Download (19.3 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2017 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
package eu.etaxonomy.cdm.io.cdmLight;
10

    
11
/**
12
 * An enumeration with each instance representing a table type in the Output Model.
13
 *
14
 * @author a.mueller
15
 * @since 15.03.2017
16
 */
17
public enum CdmLightExportTable {
18
    METADATA("Metadata", metaDataColumns()),
19
    SCIENTIFIC_NAME("ScientificName", nameColumns()),
20
    NAME_RELATIONSHIP("NameRelationship",nameRelationColumns()),
21
    HOMOTYPIC_GROUP("HomotypicGroup", homotypicGroupColumns()),
22
    NOMENCLATURAL_AUTHOR("PersonOrTeam", nomenclaturalAuthorColumns()),
23
    NOMENCLATURAL_AUTHOR_TEAM_RELATION("PersonTeamRelation", nomenclaturalAuthorTeamRelColumns()),
24
    //TYPE_DESIGNATION("TypeDesignation", typeDesignationColumns()),
25
    SPECIMEN("Specimen", specimenColumns()),
26
    TAXON("Taxon", taxonColumns()),
27
    SYNONYM("Synonym", synonymColumns()),
28
    REFERENCE("Reference", referenceColumns()),
29
    SIMPLE_FACT("SimpleFact", simpleFactsColumns()),
30
    TAXON_INTERACTION_FACT("TaxonInteractionFact", taxonInteractionFactsColumns()),
31
    SPECIMEN_FACT("SpecimenFact", specimenFactsColumns()),
32
    GEOGRAPHIC_AREA_FACT("GeographicAreaFact", geographicAreaFactsColumns()),
33
    COMMON_NAME_FACT("CommonNameFact", commonNameFactsColumns()),
34
    FACT_SOURCES("FactSources", factSourcesColumns()),
35
    IDENTIFIER("Identifier", identifierColumns()),
36
    MEDIA("MediaFact", mediaColumns()),
37
//    CONDENSED_DISTRIBUTION_FACT("CondensedDistributionFact", compressedDistributionFactColumns()),
38
    NAME_FACT("NameFact", nameFactColumns())
39
    ;
40

    
41
    //Taxon/Synonym
42
    protected static final String NAME_FK = "Name_Fk";
43
    protected static final String TAXON_ID = "Taxon_ID";
44
    protected static final String TAXON_FK = "Taxon_Fk";
45
    protected static final String CLASSIFICATION_ID = "Classification_ID";
46
    protected static final String CLASSIFICATION_TITLE = "ClassificationName";
47
    protected static final String SYNONYM_ID = "Synonym_ID";
48
    protected static final String PARENT_FK = "Parent_Fk";
49
    protected static final String SEC_REFERENCE_FK = "SecReference_Fk";
50
    protected static final String SEC_REFERENCE = "SecReference";
51
    protected static final String SORT_INDEX = "SortIndex";
52
    protected static final String UNPLACED = "Unplaced";
53
    protected static final String EXCLUDED = "Excluded";
54
    protected static final String DOUBTFUL = "PlacementDoubtful";
55
    protected static final String PUBLISHED = "Published";
56
    protected static final String STATUS_NOTES = "StatusNotes";
57

    
58
    //pro parte / misapplied
59
    protected static final String SYN_SEC_REFERENCE_FK = "SynSecReference_Fk";
60
    protected static final String SYN_SEC_REFERENCE = "SynSecReference";
61
    protected static final String IS_PRO_PARTE = "IsProParteSynonym";
62
    protected static final String IS_PARTIAL = "IsPartial";
63
    protected static final String IS_MISAPPLIED = "IsMisapplied";
64

    
65
    //Reference
66
    protected static final String REFERENCE_ID = "Reference_ID";
67
    protected static final String BIBLIO_SHORT_CITATION = "BibliographicShortCitation";
68
    protected static final String REF_TITLE = "Title";
69
    protected static final String ABBREV_REF_TITLE = "AbbrevTitle";
70
    protected static final String DATE_PUBLISHED = "DatePublished";
71
    protected static final String EDITION = "Edition";
72
    protected static final String EDITOR= "Editor";
73
    protected static final String ISBN = "ISBN";
74
    protected static final String ISSN = "ISSN";
75
    protected static final String ORGANISATION = "Organisation";
76
    protected static final String PAGES = "Pages";
77
    protected static final String PLACE_PUBLISHED = "PlacePublished";
78
    protected static final String PUBLISHER = "Publisher";
79
    protected static final String REF_ABSTRACT = "ReferenceAbstract";
80
    protected static final String SERIES_PART = "SeriesPart";
81
    protected static final String VOLUME = "Volume";
82
    protected static final String YEAR = "Year";
83
    protected static final String AUTHORSHIP_TITLE = "FullAuthor";
84

    
85

    
86
    protected static final String IN_REFERENCE = "InReference";
87
    protected static final String INSTITUTION = "Institution";
88
   // protected static final String LSID = "LSID";
89
    protected static final String SCHOOL = "School";
90
    protected static final String REF_TYPE = "ReferenceType";
91
    protected static final String URI = "URI";
92

    
93
    //Name
94
    protected static final String NAME_ID = "Name_ID";
95
//    protected static final String TROPICOS_ID = "Tropicos_ID";
96
//    protected static final String IPNI_ID = "IPNI_ID";
97
//    protected static final String WFO_ID = "WorldFloraOnline_ID";
98
    protected static final String LSID = "LSID";
99
    protected static final String RANK = "Rank";
100
    protected static final String RANK_SEQUENCE = "RankSequence";
101
    protected static final String FULL_NAME_WITH_AUTHORS = "FullNameWithAuthors";
102
    protected static final String FULL_NAME_WITH_REF = "FullNameWithRef";
103
    protected static final String FULL_NAME_NO_AUTHORS = "FullNameNoAuthors";
104
    protected static final String GENUS_UNINOMIAL = "GenusOrUninomial";
105
    protected static final String INFRAGENERIC_RANK = "InfragenericRank";
106
    protected static final String INFRAGENERIC_EPITHET = "InfraGenericEpithet";
107
    protected static final String SPECIFIC_EPITHET = "SpecificEpithet";
108
    protected static final String INFRASPECIFIC_RANK = "InfraspecificRank";
109
    protected static final String INFRASPECIFIC_EPITHET = "InfraSpecificEpithet ";
110
    protected static final String APPENDED_PHRASE = "AppendedPhrase";
111
    protected static final String BAS_EX_AUTHORTEAM_FK = "BasionymExAuthorTeam_Fk";
112
    protected static final String BAS_AUTHORTEAM_FK = "BasionymAuthorTeam_Fk";
113
    protected static final String COMB_EX_AUTHORTEAM_FK = "PublishingExAuthorTeam_Fk";
114
    protected static final String COMB_AUTHORTEAM_FK = "PublishingAuthorTeam_Fk";
115
    protected static final String AUTHOR_TEAM_STRING = "AuthorTeamString";
116
    protected static final String NAME_USED_IN_SOURCE = "NameUsedInSource_Fk";
117
   // protected static final String REFERENCE_FK = "Reference_Fk"
118
    protected static final String PUBLICATION_TYPE = "PublicationType";
119
    protected static final String ABBREV_TITLE = "AbbreviatedTitle";
120
    protected static final String FULL_TITLE = "FullTitle";
121
    protected static final String ABBREV_REF_AUTHOR = "AbbreviatedInRefAuthor";
122
    protected static final String FULL_REF_AUTHOR = "FullInRefAuthor";
123
    protected static final String COLLATION = "Collation";
124
    protected static final String VOLUME_ISSUE = "VolumeIssue";
125
    protected static final String DETAIL = "Detail";
126
    protected static final String YEAR_PUBLISHED = "YearPublished";
127
    protected static final String VERBATIM_DATE = "VerbatimDate";
128
    protected static final String PROTOLOGUE_URI = "ProtologueURI";
129
    protected static final String NOM_STATUS = "NomenclaturalStatus";
130
    protected static final String NOM_STATUS_ABBREV = "NomenclaturalStatusAbbreviation";
131
    protected static final String HOMOTYPIC_GROUP_FK = "HomotypicGroup_Fk";
132
    protected static final String HOMOTYPIC_GROUP_SEQ = "HomotypicGroupSequenceNumber";
133
    protected static final String PROTOLOGUE_TYPE_STATEMENT = "ProtologueTypeStatement";
134
    protected static final String TYPE_SPECIMEN = "TypeSpecimens";
135
    protected static final String TYPE_STATEMENT = "TypeStatements";
136

    
137

    
138

    
139
    //Name Relationship
140
    protected static final String NAME1_FK = "Name1_Fk";
141
    protected static final String NAME2_FK = "Name2_Fk";
142
    protected static final String NAME_REL_TYPE = "NameRelationshipType";
143

    
144
    //CDM MetaData
145
    protected static final String INSTANCE_ID = "EditInstance_ID";
146
    protected static final String INSTANCE_NAME = "EditInstanceName";
147

    
148
    protected static final String DATASET_DESCRIPTION = "DatasetDescription";
149
    protected static final String DATASET_CREATOR = "DatasetCreator";
150
    protected static final String DATASET_CONTRIBUTOR = "DatasetContributor";
151
    protected static final String DATASET_TITLE = "DatasetTitle";
152
    protected static final String DATASET_LANGUAGE = "Language";
153
    protected static final String DATASET_LANDINGPAGE = "DataSetLandingPage";
154
    protected static final String DATASET_DOWNLOAD_LINK = "DatasetDownloadLink";
155
    protected static final String DATASET_BASE_URL = "DatasetBaseUrl";
156
    protected static final String DATASET_RECOMMENDED_CITATTION = "RecommendedCitation";
157
    protected static final String DATASET_LOCATION = "DatasetLocation";
158
    protected static final String DATASET_KEYWORDS = "DatasetKeywords";
159
    protected static final String DATASET_LICENCE = "Licence";
160

    
161

    
162
    //Homotypic Group
163
    protected static final String HOMOTYPIC_GROUP_ID = "HomotypicGroup_ID";
164
    protected static final String HOMOTYPIC_GROUP_STRING = "HomotypicGroupString";
165
    protected static final String HOMOTYPIC_GROUP_WITH_SEC_STRING = "HomotypicGroupStringWithSec";
166
    protected static final String HOMOTYPIC_GROUP_WITHOUT_ACCEPTED = "HomotypicGroupStringWithoutAccepted";
167
    protected static final String HOMOTYPIC_GROUP_WITHOUT_ACCEPTEDWITHSEC = "HomotypicGroupStringWithoutAcceptedWithSec";
168
    protected static final String HOMOTYPIC_GROUP_TYPE_STATEMENT_REFERENCE = "HomotypicGroupTypeStatementReference";
169

    
170
    protected static final String TYPE_STRING = "TypeSpecimenString";
171
    protected static final String TYPE_CACHE = "TypeStatementsString";
172
    protected static final String TYPE_STRING_WITH_REF = "TypeSpecimenStringWithRef";
173
    protected static final String TYPE_CACHE_WITH_REF = "TypeStatementsStringWithRef";
174

    
175
    //NomenclaturalAuthor
176
    protected static final String AUTHOR_ID = "PersonOrTeam_ID";
177
    protected static final String ABBREV_AUTHOR = "AbbrevNames";
178
    protected static final String AUTHOR_TITLE = "FullNames";
179
    protected static final String AUTHOR_GIVEN_NAME = "PersonOtherNames";
180
    protected static final String AUTHOR_FAMILY_NAME = "PersonFamiliyNames";
181
    protected static final String AUTHOR_PREFIX = "PersonPrefix";
182
    protected static final String AUTHOR_SUFFIX = "PersonSuffix";
183

    
184
  //Nomenclatural Author AuthorTeam Relations
185

    
186
    protected static final String AUTHOR_FK = "Author_Fk";
187
    protected static final String AUTHOR_TEAM_FK = "AuthorTeam_Fk";
188
    protected static final String AUTHOR_TEAM_SEQ_NUMBER = "SequenceNumber";
189

    
190
    //TypeDesignations
191
    protected static final String SPECIMEN_FK = "Specimen_Fk";
192
    protected static final String TYPE_VERBATIM_CITATION = "TypeVerbatimCitation";
193
    protected static final String TYPE_CATEGORY = "TypeCategory";
194
    protected static final String TYPE_DESIGNATED_BY_STRING = "TypeDesignatedByString";
195
    protected static final String TYPE_DESIGNATED_BY_REF_FK = "TypeDesignationByRef_Fk";
196

    
197
    //Specimen
198
    protected static final String SPECIMEN_ID = "Specimen_ID";
199
    protected static final String SPECIMEN_CITATION = "SpecimenCitation";
200
    protected static final String FIELDUNIT_CITATION = "FieldUnitCitation";
201
    protected static final String LOCALITY= "Locality";
202
    protected static final String COUNTRY = "Country";
203
    protected static final String AREA_CATEGORY1 = "AreaCategory1";
204
    protected static final String AREA_NAME1 = "AreaName1";
205
    protected static final String AREA_CATEGORY2 = "AreaCategory2";
206
    protected static final String AREA_NAME2 = "AreaName2";
207
    protected static final String AREA_CATEGORY3 = "AreaCategory3";
208
    protected static final String AREA_NAME3 = "AreaName3";
209
    protected static final String FURTHER_AREAS = "FurtherAreas";
210
    protected static final String COLLECTOR_STRING = "CollectorString";
211
    protected static final String COLLECTOR_NUMBER = "CollectorNumber";
212
    protected static final String COLLECTION_DATE = "CollectionDate";
213
    protected static final String SPECIMEN_IMAGE_URIS = "SpecimenImageURIs";
214
    protected static final String HERBARIUM_ABBREV = "HerbariumAbbrev";
215
    protected static final String MEDIA_SPECIMEN_URL = "MediaSpecimenURI";
216
    protected static final String PREFERREDSTABLE_ID = "PreferredStableId";
217
    protected static final String BARCODE = "Barcode";
218
    protected static final String ACCESSION_NUMBER = "AccessionNumber";
219
    protected static final String CATALOGUE_NUMBER = "CatalogueNumber ";
220
    //other specimen attributes
221

    
222
    //SimpleFacts
223
    protected static final String FACT_ID = "Fact_ID";
224
    protected static final String FACT_TEXT = "FactText";
225
    protected static final String LANGUAGE = "Language";
226
    protected static final String MEDIA_URI = "MediaURI";
227
    protected static final String FACT_CATEGORY = "FactCategory";
228

    
229
    // Specimen Facts
230
    protected static final String SPECIMEN_NOTES = "SpecimenNotes";
231
    protected static final String SPECIMEN_DESCRIPTION = "SpecimenDescription";
232

    
233
    // TaxonInteraction Facts
234
    protected static final String TAXON2_FK = "Taxon2_FK";
235
    protected static final String DESCRIPTION = "Description";
236

    
237
    //Geographic Area Facts
238
    protected static final String AREA_LABEL = "AreaLabel";
239
    protected static final String STATUS_LABEL = "StatusLabel";
240

    
241
    //FactSources
242
    protected static final String FACT_FK = "Fact_Fk";
243
    protected static final String REFERENCE_FK = "Reference_Fk";
244
    protected static final String NAME_IN_SOURCE_FK = "NameInSource_Fk";
245
    protected static final String FACT_TYPE = "FactType";
246

    
247
    //Annotations
248

    
249

    
250
    //Identifiers
251
    protected static final String EXTERNAL_NAME_IDENTIFIER = "ExternalIdentifier";
252
    protected static final String IDENTIFIER_TYPE = "IdentifierType";
253
    protected static final String FK = "ForeignKey";
254
    protected static final String REF_TABLE = "ReferencedTable";
255

    
256
    final static String[] homotypicGroupColumns(){
257
        return new String[]{HOMOTYPIC_GROUP_ID, HOMOTYPIC_GROUP_STRING, TYPE_STRING, TYPE_CACHE, HOMOTYPIC_GROUP_WITH_SEC_STRING, HOMOTYPIC_GROUP_WITHOUT_ACCEPTED, HOMOTYPIC_GROUP_WITHOUT_ACCEPTEDWITHSEC, SORT_INDEX, HOMOTYPIC_GROUP_TYPE_STATEMENT_REFERENCE};
258

    
259
    }
260

    
261
//    private static String[] compressedDistributionFactColumns() {
262
//        return new String[]{FACT_ID, TAXON_FK, FACT_TEXT};
263
//    }
264

    
265
    private Object usageFactColumns() {
266
        return new String[]{FACT_ID, TAXON_FK, FACT_TEXT, LANGUAGE, MEDIA_URI, FACT_CATEGORY};
267
    }
268

    
269
    final static String[] nameFactColumns() {
270
        return new String[]{FACT_ID, NAME_FK, FACT_TEXT, LANGUAGE, MEDIA_URI, FACT_CATEGORY};
271
    }
272
    final static String[] taxonInteractionFactsColumns(){
273
        return new String[]{FACT_ID, TAXON_FK, TAXON2_FK, DESCRIPTION};
274
    }
275

    
276
    final static String[] identifierColumns() {
277
        return new String[]{ FK, REF_TABLE, EXTERNAL_NAME_IDENTIFIER, IDENTIFIER_TYPE};
278
    }
279

    
280
    final static String[] mediaColumns() {
281
        return new String[]{ FACT_ID, TAXON_FK, NAME_FK, MEDIA_URI};
282
    }
283

    
284
    final static String[]  factSourcesColumns() {
285
        return new String[]{FACT_FK, REFERENCE_FK, NAME_IN_SOURCE_FK, FACT_TYPE};
286
    }
287

    
288
    final static String[] specimenFactsColumns() {
289
        return new String[]{FACT_ID, TAXON_FK, SPECIMEN_FK, SPECIMEN_DESCRIPTION, SPECIMEN_NOTES};
290
    }
291

    
292
    final static String[] commonNameFactsColumns() {
293
        return new String[]{FACT_ID, TAXON_FK, FACT_TEXT, LANGUAGE, AREA_LABEL};
294

    
295
    }
296
    final static String[] geographicAreaFactsColumns() {
297
        return new String[]{FACT_ID, TAXON_FK, AREA_LABEL, STATUS_LABEL};
298
    }
299

    
300
    final static String[] simpleFactsColumns() {
301
        return new String[]{FACT_ID, TAXON_FK, FACT_TEXT, LANGUAGE, MEDIA_URI, FACT_CATEGORY};
302
    }
303

    
304
    final static String[] nomenclaturalAuthorColumns() {
305
        return new String[]{AUTHOR_ID, ABBREV_AUTHOR, AUTHOR_TITLE, AUTHOR_GIVEN_NAME, AUTHOR_FAMILY_NAME, AUTHOR_PREFIX, AUTHOR_SUFFIX};
306
    }
307

    
308
    final static String[] nomenclaturalAuthorTeamRelColumns() {
309
        return new String[]{AUTHOR_TEAM_FK, AUTHOR_FK, AUTHOR_TEAM_SEQ_NUMBER};
310
    }
311

    
312
    final static String[] metaDataColumns(){
313
        return new String[]{INSTANCE_ID, INSTANCE_NAME, DATASET_TITLE, DATASET_CONTRIBUTOR, DATASET_CREATOR, DATASET_DESCRIPTION,
314
                DATASET_DOWNLOAD_LINK, DATASET_BASE_URL, DATASET_KEYWORDS, DATASET_LANDINGPAGE, DATASET_LANGUAGE, DATASET_LICENCE,
315
                DATASET_LOCATION, DATASET_RECOMMENDED_CITATTION};
316
    }
317

    
318
    final static String[] nameRelationColumns(){
319
        return new String[]{NAME1_FK, NAME2_FK, NAME_REL_TYPE};
320
    }
321

    
322
    final static String[] nameColumns(){
323
        return new String[]{NAME_ID, LSID, RANK, RANK_SEQUENCE,
324
                FULL_NAME_WITH_AUTHORS, FULL_NAME_NO_AUTHORS, GENUS_UNINOMIAL,
325
                INFRAGENERIC_RANK, INFRAGENERIC_EPITHET, SPECIFIC_EPITHET,
326
                INFRASPECIFIC_RANK, INFRASPECIFIC_EPITHET,
327
                BAS_EX_AUTHORTEAM_FK, BAS_AUTHORTEAM_FK, COMB_EX_AUTHORTEAM_FK, COMB_AUTHORTEAM_FK,
328
                AUTHOR_TEAM_STRING, REFERENCE_FK, PUBLICATION_TYPE, ABBREV_TITLE, FULL_TITLE,
329
                ABBREV_REF_AUTHOR, FULL_REF_AUTHOR, COLLATION, VOLUME_ISSUE,
330
                DETAIL, DATE_PUBLISHED, YEAR_PUBLISHED, VERBATIM_DATE, PROTOLOGUE_URI,
331
                NOM_STATUS, NOM_STATUS_ABBREV, HOMOTYPIC_GROUP_FK,
332
                HOMOTYPIC_GROUP_SEQ, PROTOLOGUE_TYPE_STATEMENT, TYPE_SPECIMEN, TYPE_STATEMENT, FULL_NAME_WITH_REF, NAME_USED_IN_SOURCE, APPENDED_PHRASE
333
        };
334
    }
335

    
336
    final static String[] taxonColumns(){
337
        return new String[]{TAXON_ID, CLASSIFICATION_ID, CLASSIFICATION_TITLE, NAME_FK, PARENT_FK, SEC_REFERENCE_FK, SEC_REFERENCE, SORT_INDEX, EXCLUDED, STATUS_NOTES, PUBLISHED, UNPLACED, DOUBTFUL, APPENDED_PHRASE};
338
    }
339

    
340
    final static String[] synonymColumns(){
341
        return new String[]{SYNONYM_ID, TAXON_FK, NAME_FK, SYN_SEC_REFERENCE_FK, SYN_SEC_REFERENCE, SEC_REFERENCE_FK, SEC_REFERENCE,
342
                IS_PRO_PARTE, IS_PARTIAL, IS_MISAPPLIED, PUBLISHED, SORT_INDEX, APPENDED_PHRASE};
343
    }
344

    
345
    final static String[] referenceColumns(){
346
        return new String[]{REFERENCE_ID, BIBLIO_SHORT_CITATION, REF_TITLE,ABBREV_REF_TITLE, DATE_PUBLISHED, EDITION, EDITOR, ISBN,ISSN, ORGANISATION, PAGES, PLACE_PUBLISHED, PUBLISHER,
347
                REF_ABSTRACT, SERIES_PART, VOLUME, YEAR, AUTHORSHIP_TITLE, AUTHOR_FK, IN_REFERENCE, INSTITUTION, LSID, SCHOOL, REF_TYPE, URI};
348
    }
349

    
350
    final static String[] typeDesignationColumns(){
351
        return new String[]{SPECIMEN_FK, NAME_FK, TYPE_VERBATIM_CITATION, TYPE_CATEGORY, TYPE_DESIGNATED_BY_STRING, TYPE_DESIGNATED_BY_REF_FK};
352
    }
353

    
354
    final static String[] specimenColumns() {
355
        return new String[]{SPECIMEN_ID, SPECIMEN_CITATION, FIELDUNIT_CITATION, LOCALITY, COUNTRY, AREA_CATEGORY1, AREA_NAME1, AREA_CATEGORY2, AREA_NAME2, AREA_CATEGORY3, AREA_NAME3,
356
                FURTHER_AREAS, COLLECTOR_STRING, COLLECTOR_NUMBER, COLLECTION_DATE, SPECIMEN_IMAGE_URIS, HERBARIUM_ABBREV, MEDIA_SPECIMEN_URL, PREFERREDSTABLE_ID, BARCODE, CATALOGUE_NUMBER, ACCESSION_NUMBER};
357
    }
358

    
359
    private String tableName;
360
    private String[] columnNames;
361

    
362
// ************** CONSTRUCTOR *******************/
363

    
364
    private CdmLightExportTable(String tableName, String[] columnNames){
365
        this.tableName = tableName;
366
        this.columnNames = columnNames;
367
    }
368

    
369
// ****************** GETTER / SETTER *************/
370

    
371
    public String getTableName() {return tableName;}
372

    
373
    public int getSize(){ return columnNames.length;}
374

    
375
    public String[] getColumnNames(){return columnNames;}
376

    
377
    public int getIndex(String columnName) {
378
        int index= 0;
379
        for(String column : getColumnNames()){
380
            if (column.equals(columnName)){
381
                return index;
382
            }
383
            index++;
384
        }
385
        return -1;
386
    }
387
}
(5-5/6)