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.
10 package eu
.etaxonomy
.cdm
.app
.dwca
;
14 import java
.util
.Arrays
;
15 import java
.util
.List
;
16 import java
.util
.UUID
;
18 import org
.apache
.log4j
.Logger
;
19 import org
.joda
.time
.DateTime
;
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
;
37 public class DwcaExportActivator
{
38 @SuppressWarnings("unused")
39 private static final Logger logger
= Logger
.getLogger(DwcaExportActivator
.class);
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();
47 private static final CHECK check
= CHECK
.EXPORT_WITHOUT_CHECK
;
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
56 // ****************** ALL *****************************************
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;
69 // ************************ NONE **************************************** //
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;
82 public boolean doExport(ICdmDataSource source
){
83 System
.out
.println("Start export to DWC-A ("+ fileDestination
+ ") ...");
85 // CdmUpdater su = CdmUpdater.NewInstance();
86 // IProgressMonitor monitor = DefaultProgressMonitor.NewInstance();
89 // su.updateToCurrentVersion(source, monitor);
90 // } catch (Exception e) {
91 // e.printStackTrace();
97 //make file destination
98 String destination
= fileDestination
;
99 DwcaEmlRecord emlRecord
= getEmlRecord();
101 DwcaTaxExportConfigurator config
= DwcaTaxExportConfigurator
.NewInstance(source
, new File(destination
), emlRecord
);
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
);
115 config
.setFeatureExclusions(featureExclusions
);
117 CdmDefaultExport
<DwcaTaxExportConfigurator
> bmExport
= new CdmDefaultExport
<DwcaTaxExportConfigurator
>();
118 boolean result
= bmExport
.invoke(config
);
120 System
.out
.println("End export to DWC-A ("+ fileDestination
+ ")..." + (result?
"(successful)":"(with errors)"));
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");
142 Person person
= Person
.NewInstance();
143 Institution institution
= Institution
.NewInstance();
145 InstitutionalMembership m
= person
.addInstitutionalMembership(institution
, null, null, null);
146 emlRecord
.setResourceCreator(m
);
155 public static void main(String
[] args
) {
156 DwcaExportActivator ex
= new DwcaExportActivator();
157 ICdmDataSource source
= CdmDestinations
.chooseDestination(args
) != null ? CdmDestinations
.chooseDestination(args
) : cdmSource
;