dwca bugfix for new signature
[cdmlib-apps.git] / app-import / src / main / java / eu / etaxonomy / cdm / app / dwca / DwcaExportActivator.java
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.app.dwca;
11
12 import java.io.File;
13 import java.net.URI;
14 import java.util.Arrays;
15 import java.util.List;
16 import java.util.UUID;
17
18 import org.apache.log4j.Logger;
19 import org.joda.time.DateTime;
20
21 import eu.etaxonomy.cdm.app.common.CdmDestinations;
22 import eu.etaxonomy.cdm.database.ICdmDataSource;
23 import eu.etaxonomy.cdm.io.common.CdmDefaultExport;
24 import eu.etaxonomy.cdm.io.common.IExportConfigurator.CHECK;
25 import eu.etaxonomy.cdm.io.dwca.out.DwcaEmlRecord;
26 import eu.etaxonomy.cdm.io.dwca.out.DwcaTaxExportConfigurator;
27 import eu.etaxonomy.cdm.model.agent.Institution;
28 import eu.etaxonomy.cdm.model.agent.InstitutionalMembership;
29 import eu.etaxonomy.cdm.model.agent.Person;
30
31
32 /**
33 *
34 * @author a.mueller
35 *
36 */
37 public class DwcaExportActivator {
38 @SuppressWarnings("unused")
39 private static final Logger logger = Logger.getLogger(DwcaExportActivator.class);
40
41 //database validation status (create, update, validate ...)
42 private static final String fileDestination = "C:\\tmp\\dwcaTmp\\";
43 private static final ICdmDataSource cdmSource = CdmDestinations.cdm_test_local_mysql();
44 // private static final ICdmDataSource cdmSource = CdmDestinations.cdm_production_cichorieae();
45
46 //check - import
47 private static final CHECK check = CHECK.EXPORT_WITHOUT_CHECK;
48
49 private static List<UUID> featureExclusions = Arrays.asList(new UUID[]{
50 UUID.fromString("5deff505-1a32-4817-9a74-50e6936fd630"), //occurrences
51 UUID.fromString("8075074c-ace8-496b-ac82-47c14553f7fd"), //Editor_Parenthesis
52 UUID.fromString("c0cc5ebe-1f0c-4c31-af53-d486858ea415") //Image Sources
53 });
54
55
56 // ****************** ALL *****************************************
57
58 private boolean doTaxa = true;
59 private boolean doResourceRelation = true;
60 private boolean doTypesAndSpecimen = true;
61 private boolean doVernacularNames = true;
62 private boolean doReferences = true;
63 private boolean doDescription = true;
64 private boolean doDistributions = true;
65 private boolean doImages = true;
66 private boolean doMetaData = true;
67 private boolean doEml = true;
68
69 // ************************ NONE **************************************** //
70
71 // private boolean doTaxa = false;
72 // private boolean doResourceRelation = false;
73 // private boolean doTypesAndSpecimen = false;
74 // private boolean doVernacularNames = false;
75 // private boolean doReferences = false;
76 // private boolean doDescription = false;
77 // private boolean doDistributions = false;
78 // private boolean doImages = false;
79 // private boolean doMetaData = false;
80 // private boolean doEml = false;
81
82 public boolean doExport(ICdmDataSource source){
83 System.out.println("Start export to DWC-A ("+ fileDestination + ") ...");
84
85 // CdmUpdater su = CdmUpdater.NewInstance();
86 // IProgressMonitor monitor = DefaultProgressMonitor.NewInstance();
87 //
88 // try {
89 // su.updateToCurrentVersion(source, monitor);
90 // } catch (Exception e) {
91 // e.printStackTrace();
92 // }
93 // if (true){
94 // return true;
95 // }
96
97 //make file destination
98 String destination = fileDestination;
99 DwcaEmlRecord emlRecord = getEmlRecord();
100
101 DwcaTaxExportConfigurator config = DwcaTaxExportConfigurator.NewInstance(source, new File(destination), emlRecord);
102
103 config.setDoTaxa(doTaxa);
104 config.setDoResourceRelation(doResourceRelation);
105 config.setDoTypesAndSpecimen(doTypesAndSpecimen);
106 config.setDoVernacularNames(doVernacularNames);
107 config.setDoReferences(doReferences);
108 config.setDoDescription(doDescription);
109 config.setDoDistributions(doDistributions);
110 config.setDoImages(doImages);
111 config.setDoMetaData(doMetaData);
112 config.setDoEml(doEml);
113 config.setCheck(check);
114
115 config.setFeatureExclusions(featureExclusions);
116 // invoke import
117 CdmDefaultExport<DwcaTaxExportConfigurator> bmExport = new CdmDefaultExport<DwcaTaxExportConfigurator>();
118 boolean result = bmExport.invoke(config);
119
120 System.out.println("End export to DWC-A ("+ fileDestination + ")..." + (result? "(successful)":"(with errors)"));
121 return result;
122 }
123
124
125 private DwcaEmlRecord getEmlRecord() {
126 DwcaEmlRecord emlRecord = new DwcaEmlRecord();
127 emlRecord.setIdentifier("My Identifier");
128 emlRecord.setTitle("Cich DB");
129 emlRecord.setPublicationDate(new DateTime());
130 emlRecord.setExpectedCitation("Expected Citation");
131 emlRecord.setAbstractInfo("The abstract");
132 emlRecord.setAdditionalInformation("Add info");
133 emlRecord.setResourceLanguage(null);
134 emlRecord.setResourceUrl(URI.create("http://wp6-cichorieae.e-taxonomy.eu/portal/"));
135 emlRecord.setMetaDataLanguage(null);
136 emlRecord.setResourceLogoUri(null);
137 emlRecord.setCreativeCommonsLicensing(null);
138 emlRecord.setProjectTitle("Projekt tit");
139 emlRecord.setProjectLead("Proj Lead");
140 emlRecord.setProjectDescription("Proj Desc");
141
142 Person person = Person.NewInstance();
143 Institution institution = Institution.NewInstance();
144
145 InstitutionalMembership m = person.addInstitutionalMembership(institution, null, null, null);
146 emlRecord.setResourceCreator(m);
147
148 return emlRecord;
149 }
150
151
152 /**
153 * @param args
154 */
155 public static void main(String[] args) {
156 DwcaExportActivator ex = new DwcaExportActivator();
157 ICdmDataSource source = CdmDestinations.chooseDestination(args) != null ? CdmDestinations.chooseDestination(args) : cdmSource;
158
159 ex.doExport(source);
160 }
161
162
163
164
165 }