2 * Copyright (C) 2007 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
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.
9 package eu
.etaxonomy
.cdm
.app
.dwca
;
12 import java
.util
.Arrays
;
13 import java
.util
.List
;
14 import java
.util
.UUID
;
16 import org
.apache
.logging
.log4j
.LogManager
;
17 import org
.apache
.logging
.log4j
.Logger
;
18 import org
.joda
.time
.DateTime
;
20 import eu
.etaxonomy
.cdm
.app
.common
.CdmDestinations
;
21 import eu
.etaxonomy
.cdm
.common
.URI
;
22 import eu
.etaxonomy
.cdm
.common
.monitor
.DefaultProgressMonitor
;
23 import eu
.etaxonomy
.cdm
.common
.monitor
.IProgressMonitor
;
24 import eu
.etaxonomy
.cdm
.database
.ICdmDataSource
;
25 import eu
.etaxonomy
.cdm
.filter
.TaxonNodeFilter
;
26 import eu
.etaxonomy
.cdm
.io
.common
.CdmDefaultExport
;
27 import eu
.etaxonomy
.cdm
.io
.common
.ExportResult
;
28 import eu
.etaxonomy
.cdm
.io
.common
.IExportConfigurator
.CHECK
;
29 import eu
.etaxonomy
.cdm
.io
.dwca
.out
.DwcaEmlRecord
;
30 import eu
.etaxonomy
.cdm
.io
.dwca
.out
.DwcaTaxExportConfigurator
;
31 import eu
.etaxonomy
.cdm
.model
.agent
.Institution
;
32 import eu
.etaxonomy
.cdm
.model
.agent
.InstitutionalMembership
;
33 import eu
.etaxonomy
.cdm
.model
.agent
.Person
;
36 * Activator for running a general DwC-A export.
38 * Note: there is a specific version for Cichorieae in the Cichorieae folder.
42 public class DwcaExportActivator
{
44 @SuppressWarnings("unused")
45 private static final Logger logger
= LogManager
.getLogger();
47 //database validation status (create, update, validate ...)
48 private static final String fileDestination
= "C:\\Users\\muellera\\tmp\\export\\Cichorieae\\dwca-export.zip";
49 // private static final ICdmDataSource cdmSource = CdmDestinations.cdm_local_cichorieae();
50 // private static final ICdmDataSource cdmSource = CdmDestinations.cdm_test_local_mysql();
51 private static final ICdmDataSource cdmSource
= CdmDestinations
.cdm_production_cichorieae();
52 // private static final ICdmDataSource cdmSource = CdmDestinations.cdm_production_cyprus();
54 private IProgressMonitor monitor
= DefaultProgressMonitor
.NewInstance();
56 private static DateTime dateTime
= new DateTime();
57 private static String date
= dateTime
.getYear() + "-" + dateTime
.getMonthOfYear() + "-" + dateTime
.getDayOfMonth();
59 private static final String defaultBibliographicCitation
= "xxx; " +
60 "accessed ["+date
+"].";
62 private static final String taxonSourceDefault
= "http://wp6-cichorieae.e-taxonomy.eu/portal/?q=cdm_dataportal/taxon/{id}";
64 //Cichorioideae subtree / standard view
65 private static final UUID subtreeUuid
= UUID
.fromString("a523a752-aa7c-4efd-b733-64bf3bf580e9");
68 private static final CHECK check
= CHECK
.EXPORT_WITHOUT_CHECK
;
70 private static List
<UUID
> featureExclusions
= Arrays
.asList(new UUID
[]{
71 UUID
.fromString("5deff505-1a32-4817-9a74-50e6936fd630"), //occurrences
72 UUID
.fromString("8075074c-ace8-496b-ac82-47c14553f7fd"), //Editor_Parenthesis
73 UUID
.fromString("c0cc5ebe-1f0c-4c31-af53-d486858ea415"), //Image Sources
74 UUID
.fromString("9f6c551d-0f19-45ea-a855-4946f6fc1093"), //Credits
75 UUID
.fromString("cbf12c6c-94e6-4724-9c48-0f6f10d83e1c"), //Editor Brackets
76 UUID
.fromString("0508114d-4158-48b5-9100-369fa75120d3") //inedited
80 // ****************** ALL *****************************************
82 // private boolean doTaxa = true;
83 // private boolean doResourceRelation = true;
84 // private boolean doTypesAndSpecimen = true;
85 // private boolean doVernacularNames = true;
86 // private boolean doReferences = true;
87 // private boolean doDescription = true;
88 // private boolean doDistributions = true;
89 // private boolean doImages = false;
90 // private boolean doMetaData = true;
91 // private boolean doEml = true;
93 // ************************ NONE **************************************** //
95 private boolean doTaxa
= true;
96 private boolean doResourceRelation
= true;
97 private boolean doTypesAndSpecimen
= true;
98 private boolean doVernacularNames
= true;
99 private boolean doReferences
= true;
100 private boolean doDescription
= true;
101 private boolean doDistributions
= true;
102 private boolean doImages
= false;
103 private boolean doMetaData
= true;
104 private boolean doEml
= true;
106 public ExportResult
doExport(ICdmDataSource source
){
107 System
.out
.println("Start export to DWC-A ("+ fileDestination
+ ") ...");
109 // CdmUpdater su = CdmUpdater.NewInstance();
110 // IProgressMonitor monitor = DefaultProgressMonitor.NewInstance();
113 // su.updateToCurrentVersion(source, monitor);
114 // } catch (Exception e) {
115 // e.printStackTrace();
121 //make file destination
122 String destination
= fileDestination
;
123 DwcaEmlRecord emlRecord
= getEmlRecord();
125 DwcaTaxExportConfigurator config
= DwcaTaxExportConfigurator
.NewInstance(source
, new File(destination
), emlRecord
);
127 TaxonNodeFilter taxonNodeFilter
= TaxonNodeFilter
.NewSubtreeInstance(subtreeUuid
);
128 config
.setTaxonNodeFilter(taxonNodeFilter
);
130 config
.setDoTaxa(doTaxa
);
131 config
.setDoResourceRelations(doResourceRelation
);
132 config
.setDoTypesAndSpecimen(doTypesAndSpecimen
);
133 config
.setDoVernacularNames(doVernacularNames
);
134 config
.setDoReferences(doReferences
);
135 config
.setDoDescriptions(doDescription
);
136 config
.setDoDistributions(doDistributions
);
137 config
.setDoImages(doImages
);
138 config
.setDoMetaData(doMetaData
);
139 config
.setDoEml(doEml
);
140 config
.setCheck(check
);
141 config
.setProgressMonitor(monitor
);
142 config
.setDefaultBibliographicCitation(defaultBibliographicCitation
);
143 config
.setDefaultTaxonSource(taxonSourceDefault
);
144 monitor
.beginTask("DwcA-Export", 10);
146 config
.setFeatureExclusions(featureExclusions
);
148 CdmDefaultExport
<DwcaTaxExportConfigurator
> dwcaExport
= new CdmDefaultExport
<>();
149 ExportResult result
= dwcaExport
.invoke(config
);
151 System
.out
.println("End export to DWC-A ("+ fileDestination
+ ")..." + "("+result
.getState().toString()+")");
156 private DwcaEmlRecord
getEmlRecord() {
157 DwcaEmlRecord emlRecord
= new DwcaEmlRecord();
158 emlRecord
.setIdentifier("My Identifier");
159 emlRecord
.setTitle("Flora of cyprus");
160 emlRecord
.setPublicationDate(new DateTime());
161 emlRecord
.setExpectedCitation("Expected Citation");
162 emlRecord
.setAbstractInfo("The abstract");
163 emlRecord
.setAdditionalInformation("Add info");
164 emlRecord
.setResourceLanguage(null);
165 emlRecord
.setResourceUrl(URI
.create("http://www.flora-of-cyprus.eu//portal/"));
166 emlRecord
.setMetaDataLanguage(null);
167 emlRecord
.setResourceLogoUri(null);
168 emlRecord
.setCreativeCommonsLicensing(null);
169 emlRecord
.setProjectTitle("Projekt tit");
170 emlRecord
.setProjectLead("Proj Lead");
171 emlRecord
.setProjectDescription("Proj Desc");
173 Person person
= Person
.NewInstance();
174 Institution institution
= Institution
.NewInstance();
176 InstitutionalMembership m
= person
.addInstitutionalMembership(institution
, null, null, null);
177 emlRecord
.setResourceCreator(m
);
182 public static void main(String
[] args
) {
183 DwcaExportActivator ex
= new DwcaExportActivator();
184 ICdmDataSource source
= CdmDestinations
.chooseDestination(args
) != null ? CdmDestinations
.chooseDestination(args
) : cdmSource
;