7418ac52cb53263a39e41b787a5048807bdfb4a8
[cdmlib-apps.git] / app-import / src / main / java / eu / etaxonomy / cdm / app / vibrant / DwcaScratchpadImportActivator.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.vibrant;
11
12 import java.net.URI;
13 import java.util.UUID;
14
15 import org.apache.log4j.Logger;
16
17 import eu.etaxonomy.cdm.app.common.CdmDestinations;
18 import eu.etaxonomy.cdm.database.DbSchemaValidation;
19 import eu.etaxonomy.cdm.database.ICdmDataSource;
20 import eu.etaxonomy.cdm.io.common.CdmDefaultImport;
21 import eu.etaxonomy.cdm.io.common.IImportConfigurator.CHECK;
22 import eu.etaxonomy.cdm.io.common.events.LoggingIoObserver;
23 import eu.etaxonomy.cdm.io.dwca.in.DwcaDataImportConfiguratorBase.DatasetUse;
24 import eu.etaxonomy.cdm.io.dwca.in.DwcaImportConfigurator;
25 import eu.etaxonomy.cdm.io.dwca.in.IImportMapping.MappingType;
26 import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
27 import eu.etaxonomy.cdm.model.reference.Reference;
28 import eu.etaxonomy.cdm.model.reference.ReferenceFactory;
29
30 /**
31 * @author a.mueller
32 * @created 03.04.2012
33 * @version 1.0
34 */
35 public class DwcaScratchpadImportActivator {
36 @SuppressWarnings("unused")
37 private static final Logger logger = Logger.getLogger(DwcaScratchpadImportActivator.class);
38
39 //database validation status (create, update, validate ...)
40 static DbSchemaValidation hbm2dll = DbSchemaValidation.CREATE;
41
42 // static final URI source = dwca_emonocots_dioscoreaceae();
43 // static final URI source = dwca_emonocots_zingiberaceae();
44 //static final URI source = dwca_emonocots_cypripedioideae();
45 static final URI source = dwca_emonocots_dioscoreaceae();
46
47
48 // static final ICdmDataSource cdmDestination = CdmDestinations.localH2();
49 static final ICdmDataSource cdmDestination = CdmDestinations.cdm_test_local_mysql();
50 // static final ICdmDataSource cdmDestination = CdmDestinations.cdm_test_local_mysql_test();
51
52 //default nom code is ICZN as it allows adding publication year
53 static final NomenclaturalCode defaultNomCode = NomenclaturalCode.ICBN;
54
55 //title
56 static final String title = "Scratchpad test import";
57
58 //check - import
59 static final CHECK check = CHECK.IMPORT_WITHOUT_CHECK;
60 static int partitionSize = 1000;
61
62 //config
63 static DatasetUse datasetUse = DatasetUse.CLASSIFICATION;
64
65 //validate
66 static boolean validateRankConsistency = false;
67
68
69 //taxa
70 static final boolean doTaxa = true;
71 static final boolean doDistribution = true;
72
73
74
75 static final MappingType mappingType = MappingType.InMemoryMapping;
76
77 //classification
78 static final UUID classificationUuid = UUID.fromString("d9d199b6-eaf4-47c8-a732-0639bc445c56");
79
80
81 //config
82 static boolean scientificNameIdAsOriginalSourceId = true;
83 static boolean guessNomRef = false;
84 private boolean handleAllRefsAsCitation = false;
85 private static final boolean useSourceReferenceAsSec = true;
86
87
88 //deduplicate
89 static final boolean doDeduplicate = false;
90
91
92
93 protected void doImport(URI source, ICdmDataSource cdmDestination, UUID classificationUuid, String title, DbSchemaValidation hbm2dll){
94
95 //make Source
96 DwcaImportConfigurator config= DwcaImportConfigurator.NewInstance(source, cdmDestination);
97 config.addObserver(new LoggingIoObserver());
98 config.setClassificationUuid(classificationUuid);
99 config.setCheck(check);
100 config.setDbSchemaValidation(hbm2dll);
101 config.setMappingType(mappingType);
102
103 config.setScientificNameIdAsOriginalSourceId(scientificNameIdAsOriginalSourceId);
104 config.setValidateRankConsistency(validateRankConsistency);
105 config.setDefaultPartitionSize(partitionSize);
106 config.setNomenclaturalCode(defaultNomCode);
107 config.setDatasetUse(datasetUse);
108 config.setGuessNomenclaturalReferences(guessNomRef);
109 config.setHandleAllRefsAsCitation(handleAllRefsAsCitation);
110 config.setUseSourceReferenceAsSec(useSourceReferenceAsSec);
111 config.setSourceReferenceTitle(title);
112
113 CdmDefaultImport myImport = new CdmDefaultImport();
114
115
116 //...
117 if (true){
118 System.out.println("Start import from ("+ source.toString() + ") ...");
119 config.setSourceReference(getSourceReference(config.getSourceReferenceTitle()));
120 myImport.invoke(config);
121 System.out.println("End import from ("+ source.toString() + ")...");
122 }
123
124
125 }
126
127 private Reference<?> getSourceReference(String string) {
128 Reference<?> result = ReferenceFactory.newGeneric();
129 result.setTitleCache(string);
130 return result;
131 }
132
133 //Dwca
134 public static URI dwca_emonocots_local() {
135 URI sourceUrl = URI.create("file:///C:/localCopy/Data/dwca/import/Scratchpads/dwca_dioscoreaceae_emonocots.zip");
136 return sourceUrl;
137 }
138
139 //emonocots_dioscoreaceae
140 public static URI dwca_emonocots_dioscoreaceae() {
141 //URI sourceUrl = URI.create("file:////PESIIMPORT3/vibrant/dwca/dwca_emonocots_dioscoreaceae.zip");//dwca_dioscoreaceae_e_monocot.zip
142 URI sourceUrl = URI.create("file:///C:/Users/l.morris/Downloads/dwca_scratchpads/dwca_dioscoreaceae_e_monocot_org.zip");
143 return sourceUrl;
144 }
145
146 //emonocots_zingiberaceae
147 public static URI dwca_emonocots_zingiberaceae() {
148 URI sourceUrl = URI.create("file:////PESIIMPORT3/vibrant/dwca/dwca_emonocots_zingiberaceae.zip");
149 return sourceUrl;
150 }
151 //emonocots_cypripedioideae
152 public static URI dwca_emonocots_cypripedioideae() {
153 //URI sourceUrl = URI.create("file:////PESIIMPORT3/vibrant/dwca/dwca_emonocots_cypripedioideae.zip");
154 URI sourceUrl = URI.create("file:///C:/Users/l.morris/Downloads/dwca_scratchpads/dwca_cypripedioideae_e-monocot_org.zip");
155 return sourceUrl;
156 }
157
158
159 /**
160 * @param args
161 */
162 public static void main(String[] args) {
163 DwcaScratchpadImportActivator me = new DwcaScratchpadImportActivator();
164 me.doImport(source, cdmDestination, classificationUuid, title, hbm2dll);
165 }
166
167 }