Project

General

Profile

Download (7.15 KB) Statistics
| Branch: | 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.app.i4life.col;
11

    
12
import java.io.File;
13
import eu.etaxonomy.cdm.common.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.common.monitor.DefaultProgressMonitor;
23
import eu.etaxonomy.cdm.common.monitor.IProgressMonitor;
24
import eu.etaxonomy.cdm.database.ICdmDataSource;
25
import eu.etaxonomy.cdm.io.common.CdmDefaultExport;
26
import eu.etaxonomy.cdm.io.common.ExportResult;
27
import eu.etaxonomy.cdm.io.common.IExportConfigurator.CHECK;
28
import eu.etaxonomy.cdm.io.dwca.out.DwcaEmlRecord;
29
import eu.etaxonomy.cdm.io.dwca.out.DwcaTaxExportConfigurator;
30
import eu.etaxonomy.cdm.model.agent.Institution;
31
import eu.etaxonomy.cdm.model.agent.InstitutionalMembership;
32
import eu.etaxonomy.cdm.model.agent.Person;
33

    
34

    
35
/**
36
 *
37
 * @author a.mueller
38
 *
39
 */
40
public class ColDwcaExportActivator {
41
	@SuppressWarnings("unused")
42
	private static final Logger logger = Logger.getLogger(ColDwcaExportActivator.class);
43

    
44
	//database validation status (create, update, validate ...)
45
	private static final String fileDestination = "C:\\tmp\\dwcaTmp\\cyprus\\";
46
//	private static final ICdmDataSource cdmSource = CdmDestinations.cdm_local_cichorieae();
47
//	private static final ICdmDataSource cdmSource = CdmDestinations.cdm_test_local_mysql();
48
//	private static final ICdmDataSource cdmSource = CdmDestinations.cdm_production_cichorieae();
49
//	private static final ICdmDataSource cdmSource = CdmDestinations.cdm_flora_central_africa_production();
50
	private static final ICdmDataSource cdmSource = CdmDestinations.cdm_production_cyprus();
51

    
52
	private IProgressMonitor monitor = DefaultProgressMonitor.NewInstance();
53

    
54
	private static DateTime dateTime = new DateTime();
55
	private static String date = dateTime.getYear() + "-" + dateTime.getMonthOfYear() + "-" + dateTime.getDayOfMonth();
56

    
57
	private static final String defaultBibliographicCitation = "ICN (Hand, R., Kilian, N. & Raab-Straube, E. von; general editors) 2009+ (continuously updated): International Cichorieae Network: Cichorieae Portal. Published on the Internet at http://wp6-cichorieae.e-taxonomy.eu/portal/; " +
58
		"accessed ["+date+"].";
59

    
60
	private static final String taxonSourceDefault = "http://wp6-cichorieae.e-taxonomy.eu/portal/?q=cdm_dataportal/taxon/{id}";
61

    
62
	//check - import
63
	private static final CHECK check = CHECK.EXPORT_WITHOUT_CHECK;
64

    
65
	private static List<UUID> featureExclusions = Arrays.asList(new UUID[]{
66
			UUID.fromString("5deff505-1a32-4817-9a74-50e6936fd630"),   //occurrences
67
			UUID.fromString("8075074c-ace8-496b-ac82-47c14553f7fd"),    //Editor_Parenthesis
68
			UUID.fromString("c0cc5ebe-1f0c-4c31-af53-d486858ea415"),   //Image Sources
69
			UUID.fromString("9f6c551d-0f19-45ea-a855-4946f6fc1093"),		//Credits
70
			UUID.fromString("cbf12c6c-94e6-4724-9c48-0f6f10d83e1c"),   //Editor Brackets
71
			UUID.fromString("0508114d-4158-48b5-9100-369fa75120d3")     //inedited
72
	});
73

    
74

    
75
// ****************** ALL *****************************************
76

    
77
//	private boolean doTaxa = true;
78
//	private boolean doResourceRelation = true;
79
//	private boolean doTypesAndSpecimen = true;
80
//	private boolean doVernacularNames = true;
81
//	private boolean doReferences = true;
82
//	private boolean doDescription = true;
83
//	private boolean doDistributions = true;
84
//	private boolean doImages = false;
85
//	private boolean doMetaData = true;
86
//	private boolean doEml = true;
87

    
88
// ************************ NONE **************************************** //
89

    
90
	private boolean doTaxa = true;
91
	private boolean doResourceRelation = false;
92
	private boolean doTypesAndSpecimen = false;
93
	private boolean doVernacularNames = false;
94
	private boolean doReferences = false;
95
	private boolean doDescription = false;
96
	private boolean doDistributions = false;
97
	private boolean doImages = false;
98
	private boolean doMetaData = true;
99
	private boolean doEml = false;
100

    
101
	public ExportResult doExport(ICdmDataSource source){
102
		System.out.println("Start export to DWC-A ("+ fileDestination + ") ...");
103

    
104
//		CdmUpdater su = CdmUpdater.NewInstance();
105
//		IProgressMonitor monitor = DefaultProgressMonitor.NewInstance();
106
//
107
//		try {
108
//			su.updateToCurrentVersion(source, monitor);
109
//		} catch (Exception e) {
110
//			e.printStackTrace();
111
//		}
112
//		if (true){
113
//			return true;
114
//		}
115

    
116
		//make file destination
117
		String destination = fileDestination;
118
		DwcaEmlRecord emlRecord = getEmlRecord();
119

    
120
		DwcaTaxExportConfigurator config = DwcaTaxExportConfigurator.NewInstance(source, new File(destination), emlRecord);
121

    
122
		config.setDoTaxa(doTaxa);
123
		config.setDoResourceRelations(doResourceRelation);
124
		config.setDoTypesAndSpecimen(doTypesAndSpecimen);
125
		config.setDoVernacularNames(doVernacularNames);
126
		config.setDoReferences(doReferences);
127
		config.setDoDescriptions(doDescription);
128
		config.setDoDistributions(doDistributions);
129
		config.setDoImages(doImages);
130
		config.setDoMetaData(doMetaData);
131
		config.setDoEml(doEml);
132
		config.setCheck(check);
133
		config.setProgressMonitor(monitor);
134
		config.setDefaultBibliographicCitation(defaultBibliographicCitation);
135
		config.setDefaultTaxonSource(taxonSourceDefault);
136
		monitor.beginTask("DwcA-Export", 10);
137

    
138
		config.setFeatureExclusions(featureExclusions);
139
		// invoke import
140
		CdmDefaultExport<DwcaTaxExportConfigurator> bmExport = new CdmDefaultExport<DwcaTaxExportConfigurator>();
141
		ExportResult result = bmExport.invoke(config);
142

    
143
		System.out.println("End export to DWC-A ("+ fileDestination + ")..." + "("+result.getState().toString()+")");
144
		return result;
145
	}
146

    
147

    
148
	private DwcaEmlRecord getEmlRecord() {
149
		DwcaEmlRecord emlRecord = new DwcaEmlRecord();
150
		emlRecord.setIdentifier("My Identifier");
151
		emlRecord.setTitle("Flora of cyprus");
152
		emlRecord.setPublicationDate(new DateTime());
153
		emlRecord.setExpectedCitation("Expected Citation");
154
		emlRecord.setAbstractInfo("The abstract");
155
		emlRecord.setAdditionalInformation("Add info");
156
		emlRecord.setResourceLanguage(null);
157
		emlRecord.setResourceUrl(URI.create("http://www.flora-of-cyprus.eu//portal/"));
158
		emlRecord.setMetaDataLanguage(null);
159
		emlRecord.setResourceLogoUri(null);
160
		emlRecord.setCreativeCommonsLicensing(null);
161
		emlRecord.setProjectTitle("Projekt tit");
162
		emlRecord.setProjectLead("Proj Lead");
163
		emlRecord.setProjectDescription("Proj Desc");
164

    
165
		Person person = Person.NewInstance();
166
		Institution institution = Institution.NewInstance();
167

    
168
		InstitutionalMembership m = person.addInstitutionalMembership(institution, null, null, null);
169
		emlRecord.setResourceCreator(m);
170

    
171
		return emlRecord;
172
	}
173

    
174

    
175
	/**
176
	 * @param args
177
	 */
178
	public static void main(String[] args) {
179
		ColDwcaExportActivator ex = new ColDwcaExportActivator();
180
		ICdmDataSource source = CdmDestinations.chooseDestination(args) != null ? CdmDestinations.chooseDestination(args) : cdmSource;
181

    
182
		ex.doExport(source);
183
	}
184

    
185

    
186

    
187

    
188
}
(1-1/2)