fix merge problems
[cdmlib.git] / cdmlib-io / src / main / java / eu / etaxonomy / cdm / io / specimen / abcd206 / in / Abcd206ImportConfigurator.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.io.specimen.abcd206.in;
11
12
13 import java.net.URI;
14 import java.util.HashMap;
15 import java.util.Map;
16 import java.util.UUID;
17
18 import org.apache.log4j.Logger;
19
20 import eu.etaxonomy.cdm.common.UriUtils;
21 import eu.etaxonomy.cdm.database.ICdmDataSource;
22 import eu.etaxonomy.cdm.ext.occurrence.OccurenceQuery;
23 import eu.etaxonomy.cdm.io.common.IImportConfigurator;
24 import eu.etaxonomy.cdm.io.common.IMatchingImportConfigurator;
25 import eu.etaxonomy.cdm.io.common.mapping.IInputTransformer;
26 import eu.etaxonomy.cdm.io.specimen.SpecimenImportConfiguratorBase;
27 import eu.etaxonomy.cdm.io.specimen.SpecimenUserInteraction;
28 import eu.etaxonomy.cdm.model.agent.Person;
29 import eu.etaxonomy.cdm.model.agent.Team;
30 import eu.etaxonomy.cdm.model.reference.Reference;
31
32 /**
33 * @author p.kelbert
34 * @created 20.10.2008
35 * @version 1.0
36 * @param <SOURCE>
37 */
38 public class Abcd206ImportConfigurator<AbcdImportState, InputStream> extends SpecimenImportConfiguratorBase implements IImportConfigurator, IMatchingImportConfigurator {
39 private static final Logger logger = Logger.getLogger(Abcd206ImportConfigurator.class);
40
41 private static String sourceReferenceTitle = null;
42 private boolean reuseExistingMetadata = true;
43 private String taxonReference = null;
44 private boolean addIndividualsAssociationsSuchAsSpecimenAndObservations = true;
45 private boolean reuseExistingDescriptiveGroups = false;
46 private boolean reuseExistingTaxaWhenPossible = true;
47 private final Map<UUID, UUID> taxonToDescriptionMap = new HashMap<UUID, UUID>();
48 private Map<String, Team> titleCacheTeam;
49 private Map<String, Person> titleCachePerson;
50 private String defaultAuthor="";
51 private boolean allowReuseOtherClassifications =true;
52 private boolean addMediaAsMediaSpecimen = false;
53 private boolean deduplicateReferences = false;
54 private boolean deduplicateClassifications = false;
55 private boolean ignoreAuthorship = false;
56 private boolean removeCountryFromLocalityText = false;
57 private boolean moveNewTaxaToDefaultClassification = true;
58
59 private boolean mapUnitIdToCatalogNumber = true;
60 private boolean mapUnitIdToAccessionNumber = false;
61 private boolean mapUnitIdToBarcode = false;
62
63 private boolean overwriteExistingSpecimens = false;
64 private boolean ignoreImportOfExistingSpecimens = true;
65
66 private final SpecimenUserInteraction specimenUserInteraction = new SpecimenUserInteraction();
67
68 private Map<String,UUID> namedAreaDecisions = new HashMap<String,UUID>();
69
70 private OccurenceQuery query;
71
72 //TODO
73 private static IInputTransformer defaultTransformer = null;
74
75 private URI sourceUri;
76 private URI reportUri;
77
78
79 @Override
80 @SuppressWarnings("unchecked")
81 protected void makeIoClassList(){
82 System.out.println("makeIOClassList");
83 ioClassList = new Class[]{
84 Abcd206Import.class,
85 };
86 }
87
88 public static Abcd206ImportConfigurator NewInstance(URI uri,ICdmDataSource destination){
89 return new Abcd206ImportConfigurator(null, uri, destination, false);
90 }
91
92 /**
93 * @param uri
94 * @param object
95 * @param b
96 * @return
97 */
98 public static Abcd206ImportConfigurator NewInstance(URI uri, ICdmDataSource destination, boolean interact) {
99 return new Abcd206ImportConfigurator(null, uri, destination, interact);
100 }
101
102 /**
103 * @param uri
104 * @param object
105 * @param b
106 * @return
107 *//*
108 public static Abcd206ImportConfigurator NewInstance(InputStream stream, ICdmDataSource destination, boolean interact) {
109 return new Abcd206ImportConfigurator(stream, null, destination, interact);
110 }
111 */
112
113
114 /**
115 * @param berlinModelSource
116 * @param sourceReference
117 * @param destination
118 */
119 private Abcd206ImportConfigurator(InputStream stream, URI uri, ICdmDataSource destination, boolean interact) {
120 super(defaultTransformer);
121 if (stream != null){
122 setSource(stream);
123 }else{
124 this.sourceUri = uri;
125 }
126 setDestination(destination);
127 setSourceReferenceTitle("ABCD classic");
128 setInteractWithUser(interact);
129 }
130
131
132
133
134
135 @Override
136 public Abcd206ImportState getNewState() {
137 return new Abcd206ImportState(this);
138 }
139
140
141 @Override
142 public InputStream getSource(){
143 if (super.getSource() != null){
144 return (InputStream)super.getSource();
145 }else if (this.sourceUri != null){
146 try {
147 InputStream is = (InputStream) UriUtils.getInputStream(sourceUri);
148 setSource(is);
149 return is;
150 } catch (Exception e) {
151 throw new RuntimeException(e);
152 }
153 }else{
154 return null;
155 }
156 }
157
158
159
160 public URI getSourceUri(){
161 return this.sourceUri;
162 }
163
164 public void setSourceUri(URI sourceUri) {
165 this.sourceUri = sourceUri;
166 super.setSource(null);
167 }
168
169
170 @Override
171 public String getSourceReferenceTitle(){
172 return this.sourceReferenceTitle;
173 }
174
175 @Override
176 public void setSourceReferenceTitle(String name){
177 this.sourceReferenceTitle=name;
178 }
179
180 @Override
181 public Reference getSourceReference() {
182 //TODO
183 return sourceReference;
184 }
185
186 public void setTaxonReference(String taxonReference) {
187 this.taxonReference = taxonReference;
188 }
189
190 public Reference getTaxonReference() {
191 //TODO
192 if (this.taxonReference == null){
193 logger.info("getTaxonReference not yet fully implemented");
194 }
195 return sourceReference;
196 }
197
198 public void setReuseExistingMetadata(boolean reuseMetadata){
199 this.reuseExistingMetadata = reuseMetadata;
200 }
201
202 public boolean isReUseExistingMetadata(){
203 return this.reuseExistingMetadata;
204 }
205
206 public void setAddIndividualsAssociationsSuchAsSpecimenAndObservations(
207 boolean doCreateIndividualsAssociations) {
208 this.addIndividualsAssociationsSuchAsSpecimenAndObservations = doCreateIndividualsAssociations;
209 }
210
211 /**
212 * Create an IndividualsAssociations for each determination element in the ABCD data. ABCD has no such concept as IndividualsAssociations so the only way to
213 *
214 * @return
215 */
216 public boolean isAddIndividualsAssociationsSuchAsSpecimenAndObservations() {
217 return addIndividualsAssociationsSuchAsSpecimenAndObservations;
218 }
219
220 /**
221 * @param doReuseExistingDescription the doReuseExistingDescription to set
222 * NOT USED YET
223 */
224 public void reuseExistingDescriptiveGroups(boolean doReuseExistingDescription) {
225 this.reuseExistingDescriptiveGroups = doReuseExistingDescription;
226 }
227
228 /**
229 * @return the doReuseExistingDescription
230 */
231 public boolean isReuseExistingDescriptiveGroups() {
232 return reuseExistingDescriptiveGroups;
233 }
234
235 @Override
236 public boolean isReuseExistingTaxaWhenPossible() {
237 return reuseExistingTaxaWhenPossible;
238 }
239
240 @Override
241 public void setReuseExistingTaxaWhenPossible(boolean doMatchTaxa) {
242 this.reuseExistingTaxaWhenPossible = doMatchTaxa;
243 }
244
245 public Map<UUID, UUID> getTaxonToDescriptionMap() {
246 // TODO Auto-generated method stub
247 return taxonToDescriptionMap ;
248 }
249
250 public Map<String, Team> getTeams() {
251 return titleCacheTeam;
252 }
253
254
255
256 public Map<String, Person> getPersons() {
257 return titleCachePerson;
258 }
259
260
261
262 public void setDefaultAuthor(String string) {
263 defaultAuthor=string;
264 }
265
266 public String getDefaultAuthor(){
267 return defaultAuthor;
268 }
269
270 public Map<String,UUID> getNamedAreaDecisions() {
271 return namedAreaDecisions;
272 }
273
274 public void setNamedAreaDecisions(Map<String,UUID> namedAreaDecisions) {
275 this.namedAreaDecisions = namedAreaDecisions;
276 }
277
278 public void putNamedAreaDecision(String areaStr,UUID uuid){
279 this.namedAreaDecisions.put(areaStr,uuid);
280 }
281
282 public UUID getNamedAreaDecision(String areaStr){
283 return namedAreaDecisions.get(areaStr);
284 }
285
286 public boolean isAddMediaAsMediaSpecimen() {
287 return addMediaAsMediaSpecimen;
288 }
289
290 public void setAddMediaAsMediaSpecimen(boolean addMediaAsMediaSpecimen) {
291 this.addMediaAsMediaSpecimen = addMediaAsMediaSpecimen;
292 }
293
294 public boolean isDeduplicateClassifications() {
295 return deduplicateClassifications;
296 }
297
298 public void setDeduplicateClassifications(boolean deduplicateClassifications) {
299 this.deduplicateClassifications = deduplicateClassifications;
300 }
301
302 public boolean isDeduplicateReferences() {
303 return deduplicateReferences;
304 }
305
306 public void setDeduplicateReferences(boolean deduplicateReferences) {
307 this.deduplicateReferences = deduplicateReferences;
308 }
309
310 public boolean isAllowReuseOtherClassifications() {
311 return allowReuseOtherClassifications;
312 }
313
314 public void setAllowReuseOtherClassifications(boolean allowReuseOtherClassifications) {
315 this.allowReuseOtherClassifications = allowReuseOtherClassifications;
316 }
317
318 public SpecimenUserInteraction getSpecimenUserInteraction() {
319 return specimenUserInteraction;
320 }
321
322 public void setReportUri(URI reportUri) {
323 this.reportUri = reportUri;
324 }
325
326 public URI getReportUri() {
327 return reportUri;
328 }
329
330 public void setIgnoreAuthorship(boolean ignoreAuthorship) {
331 this.ignoreAuthorship = ignoreAuthorship;
332 }
333
334 @Override
335 public boolean isIgnoreAuthorship() {
336 return ignoreAuthorship;
337 }
338
339 public boolean isMapUnitIdToAccessionNumber() {
340 return mapUnitIdToAccessionNumber;
341 }
342
343 public boolean isMapUnitIdToBarcode() {
344 return mapUnitIdToBarcode;
345 }
346
347 public boolean isMapUnitIdToCatalogNumber() {
348 return mapUnitIdToCatalogNumber;
349 }
350
351 public void setMapUnitIdToAccessionNumber(boolean mapUnitIdToAccessionNumber) {
352 this.mapUnitIdToAccessionNumber = mapUnitIdToAccessionNumber;
353 }
354
355 public void setMapUnitIdToBarcode(boolean mapUnitIdToBarcode) {
356 this.mapUnitIdToBarcode = mapUnitIdToBarcode;
357 }
358
359 public void setMapUnitIdToCatalogNumber(boolean mapUnitIdToCatalogNumber) {
360 this.mapUnitIdToCatalogNumber = mapUnitIdToCatalogNumber;
361 }
362
363 public void setRemoveCountryFromLocalityText(boolean removeCountryFromLocalityText) {
364 this.removeCountryFromLocalityText = removeCountryFromLocalityText;
365 }
366
367 @Override
368 public boolean isRemoveCountryFromLocalityText() {
369 return removeCountryFromLocalityText;
370 }
371
372 public boolean isMoveNewTaxaToDefaultClassification() {
373 return moveNewTaxaToDefaultClassification;
374 }
375
376 public void setMoveNewTaxaToDefaultClassification(boolean moveNewTaxaToDefaultClassification) {
377 this.moveNewTaxaToDefaultClassification = moveNewTaxaToDefaultClassification;
378 }
379
380 public boolean isOverwriteExistingSpecimens() {
381 return overwriteExistingSpecimens;
382 }
383
384 public void setOverwriteExistingSpecimens(boolean overwriteExistingSpecimens) {
385 this.overwriteExistingSpecimens = overwriteExistingSpecimens;
386 }
387
388 @Override
389 public boolean isIgnoreImportOfExistingSpecimens() {
390 return ignoreImportOfExistingSpecimens;
391 }
392
393 public void setIgnoreImportOfExistingSpecimens(boolean ignoreImportOfExistingSpecimens) {
394 this.ignoreImportOfExistingSpecimens = ignoreImportOfExistingSpecimens;
395 }
396
397 @Override
398 public OccurenceQuery getOccurenceQuery(){
399 return query;
400 }
401
402 @Override
403 public void setOccurenceQuery(OccurenceQuery query){
404 this.query = query;
405 }
406
407
408
409 }