Project

General

Profile

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

    
33

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

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

    
50
	private IProgressMonitor monitor = DefaultProgressMonitor.NewInstance();
51
	
52
	private static DateTime dateTime = new DateTime();
53
	private static String date = dateTime.getYear() + "-" + dateTime.getMonthOfYear() + "-" + dateTime.getDayOfMonth();
54
	
55
	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/; " + 
56
		"accessed ["+date+"].";
57

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

    
63
	private static List<UUID> featureExclusions = Arrays.asList(new UUID[]{
64
			UUID.fromString("5deff505-1a32-4817-9a74-50e6936fd630"),   //occurrences
65
			UUID.fromString("8075074c-ace8-496b-ac82-47c14553f7fd"),    //Editor_Parenthesis
66
			UUID.fromString("c0cc5ebe-1f0c-4c31-af53-d486858ea415"),   //Image Sources
67
			UUID.fromString("9f6c551d-0f19-45ea-a855-4946f6fc1093"),		//Credits
68
			UUID.fromString("cbf12c6c-94e6-4724-9c48-0f6f10d83e1c"),   //Editor Brackets
69
			UUID.fromString("0508114d-4158-48b5-9100-369fa75120d3")     //inedited
70
	});
71
	
72
	
73
// ****************** ALL *****************************************
74
	
75
//	private boolean doTaxa = true;
76
//	private boolean doResourceRelation = true;
77
//	private boolean doTypesAndSpecimen = true;
78
//	private boolean doVernacularNames = true;
79
//	private boolean doReferences = true;
80
//	private boolean doDescription = true;
81
//	private boolean doDistributions = true;
82
//	private boolean doImages = false;
83
//	private boolean doMetaData = true;
84
//	private boolean doEml = true;
85

    
86
// ************************ NONE **************************************** //
87
	
88
	private boolean doTaxa = true;
89
	private boolean doResourceRelation = false;
90
	private boolean doTypesAndSpecimen = false;
91
	private boolean doVernacularNames = false;
92
	private boolean doReferences = false;
93
	private boolean doDescription = false;
94
	private boolean doDistributions = false;
95
	private boolean doImages = false;
96
	private boolean doMetaData = true;
97
	private boolean doEml = false;
98
	
99
	public boolean 	doExport(ICdmDataSource source){
100
		System.out.println("Start export to DWC-A ("+ fileDestination + ") ...");
101
		
102
//		CdmUpdater su = CdmUpdater.NewInstance();
103
//		IProgressMonitor monitor = DefaultProgressMonitor.NewInstance();
104
//		
105
//		try {
106
//			su.updateToCurrentVersion(source, monitor);
107
//		} catch (Exception e) {
108
//			e.printStackTrace();
109
//		}
110
//		if (true){
111
//			return true;
112
//		}
113
		
114
		//make file destination
115
		String destination = fileDestination;
116
		DwcaEmlRecord emlRecord = getEmlRecord();
117
		
118
		DwcaTaxExportConfigurator config = DwcaTaxExportConfigurator.NewInstance(source, new File(destination), emlRecord);
119
		
120
		config.setDoTaxa(doTaxa);
121
		config.setDoResourceRelation(doResourceRelation);
122
		config.setDoTypesAndSpecimen(doTypesAndSpecimen);
123
		config.setDoVernacularNames(doVernacularNames);
124
		config.setDoReferences(doReferences);
125
		config.setDoDescription(doDescription);
126
		config.setDoDistributions(doDistributions);
127
		config.setDoImages(doImages);
128
		config.setDoMetaData(doMetaData);
129
		config.setDoEml(doEml);
130
		config.setCheck(check);
131
		config.setProgressMonitor(monitor);
132
		config.setDefaultBibliographicCitation(defaultBibliographicCitation);
133
		config.setDefaultTaxonSource(taxonSourceDefault);
134
		monitor.beginTask("DwcA-Export", 10);
135
		
136
		config.setFeatureExclusions(featureExclusions);
137
		// invoke import
138
		CdmDefaultExport<DwcaTaxExportConfigurator> bmExport = new CdmDefaultExport<DwcaTaxExportConfigurator>();
139
		boolean result = bmExport.invoke(config);
140
		
141
		System.out.println("End export to DWC-A ("+ fileDestination + ")..." + (result? "(successful)":"(with errors)"));
142
		return result;
143
	}
144

    
145

    
146
	private DwcaEmlRecord getEmlRecord() {
147
		DwcaEmlRecord emlRecord = new DwcaEmlRecord();
148
		emlRecord.setIdentifier("My Identifier");
149
		emlRecord.setTitle("Cich DB");
150
		emlRecord.setPublicationDate(new DateTime());
151
		emlRecord.setExpectedCitation("Expected Citation");
152
		emlRecord.setAbstractInfo("The abstract");
153
		emlRecord.setAdditionalInformation("Add info");
154
		emlRecord.setResourceLanguage(null);
155
		emlRecord.setResourceUrl(URI.create("http://wp6-cichorieae.e-taxonomy.eu/portal/"));
156
		emlRecord.setMetaDataLanguage(null);
157
		emlRecord.setResourceLogoUri(null);
158
		emlRecord.setCreativeCommonsLicensing(null);
159
		emlRecord.setProjectTitle("Projekt tit");
160
		emlRecord.setProjectLead("Proj Lead");
161
		emlRecord.setProjectDescription("Proj Desc");
162
		
163
		Person person = Person.NewInstance();
164
		Institution institution = Institution.NewInstance();
165
		
166
		InstitutionalMembership m = person.addInstitutionalMembership(institution, null, null, null);
167
		emlRecord.setResourceCreator(m);
168
		
169
		return emlRecord;
170
	}
171

    
172

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

    
180
		ex.doExport(source);
181
	}
182
	
183
	
184
	
185

    
186
}
    (1-1/1)