2 * Copyright (C) 2016 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.
9 package eu
.etaxonomy
.cdm
.io
.specimen
;
11 import java
.util
.HashMap
;
13 import java
.util
.UUID
;
15 import eu
.etaxonomy
.cdm
.common
.URI
;
16 import eu
.etaxonomy
.cdm
.ext
.occurrence
.OccurenceQuery
;
17 import eu
.etaxonomy
.cdm
.io
.common
.ImportConfiguratorBase
;
18 import eu
.etaxonomy
.cdm
.io
.common
.mapping
.IInputTransformer
;
19 import eu
.etaxonomy
.cdm
.model
.agent
.Person
;
20 import eu
.etaxonomy
.cdm
.model
.agent
.Team
;
21 import eu
.etaxonomy
.cdm
.model
.occurrence
.SpecimenOrObservationType
;
27 public abstract class SpecimenImportConfiguratorBase
<CONFIG
extends SpecimenImportConfiguratorBase
, STATE
extends SpecimenImportStateBase
<CONFIG
,STATE
>, InputStream
>
28 extends ImportConfiguratorBase
<STATE
, InputStream
> {
30 private static final long serialVersionUID
= 4741134251527063988L;
32 public SpecimenImportConfiguratorBase(IInputTransformer transformer
) {
36 //im-/export uses Classification for is_taxonomically_included_in relationships
37 private boolean useClassification
= true;
39 private boolean ignoreImportOfExistingSpecimen
= true;
40 private boolean reuseExistingTaxaWhenPossible
= true;
41 private final Map
<UUID
, UUID
> taxonToDescriptionMap
= new HashMap
<>();
43 private Map
<String
, Team
> titleCacheTeam
;
44 private Map
<String
, Person
> titleCachePerson
;
45 private boolean ignoreAuthorship
= false;
46 private boolean removeCountryFromLocalityText
= false;
47 protected OccurenceQuery query
;
49 private boolean addMediaAsMediaSpecimen
= false;
50 private boolean reuseExistingMetaData
= true;
52 private String sourceReferenceTitle
= null;
54 private String taxonReference
= null;
55 private boolean addIndividualsAssociations
= true;
56 private boolean addDeterminations
= false;
57 private boolean reuseExistingDescriptiveGroups
= false;
60 private String defaultAuthor
="";
61 private boolean allowReuseOtherClassifications
=true;
63 private boolean deduplicateReferences
= false;
64 private boolean deduplicateClassifications
= false;
66 private boolean moveNewTaxaToDefaultClassification
= true;
68 private boolean mapUnitIdToCatalogNumber
= true;
69 private boolean mapUnitIdToAccessionNumber
= false;
70 private boolean mapUnitIdToBarcode
= false;
72 private boolean overwriteExistingSpecimens
= false;
73 private boolean downloadSequenceData
= false;
75 private SpecimenOrObservationType type
;
77 private final SpecimenUserInteraction specimenUserInteraction
= new SpecimenUserInteraction();
79 protected Map
<String
,UUID
> namedAreaDecisions
= new HashMap
<>();
81 private URI reportUri
;
83 public SpecimenOrObservationType
getType() {
87 public void setType(SpecimenOrObservationType type
) {
91 public boolean isIgnoreImportOfExistingSpecimen() {
92 return ignoreImportOfExistingSpecimen
;
95 public void setIgnoreImportOfExistingSpecimen(boolean ignoreImportOfExistingSpecimen
) {
96 this.ignoreImportOfExistingSpecimen
= ignoreImportOfExistingSpecimen
;
99 public Map
<String
, Team
> getTitleCacheTeam() {
100 return titleCacheTeam
;
103 public void setTitleCacheTeam(Map
<String
, Team
> titleCacheTeam
) {
104 this.titleCacheTeam
= titleCacheTeam
;
107 public Map
<String
, Person
> getTitleCachePerson() {
108 return titleCachePerson
;
111 public void setTitleCachePerson(Map
<String
, Person
> titleCachePerson
) {
112 this.titleCachePerson
= titleCachePerson
;
115 public OccurenceQuery
getQuery() {
119 public void setQuery(OccurenceQuery query
) {
123 public String
getTaxonReference() {
124 return taxonReference
;
127 public void setTaxonReference(String taxonReference
) {
128 this.taxonReference
= taxonReference
;
131 public boolean isAddIndividualsAssociations() {
132 return addIndividualsAssociations
;
136 * @return the addDeterminations
138 public boolean isAddDeterminations() {
139 return addDeterminations
;
143 * @param addDeterminations the addDeterminations to set
145 public void setAddDeterminations(boolean addDeterminations
) {
146 this.addDeterminations
= addDeterminations
;
149 public void setAddIndividualsAssociations(
150 boolean addIndividualsAssociations
) {
151 this.addIndividualsAssociations
= addIndividualsAssociations
;
154 public boolean isReuseExistingDescriptiveGroups() {
155 return reuseExistingDescriptiveGroups
;
158 public void setReuseExistingDescriptiveGroups(boolean reuseExistingDescriptiveGroups
) {
159 this.reuseExistingDescriptiveGroups
= reuseExistingDescriptiveGroups
;
162 public String
getDefaultAuthor() {
163 return defaultAuthor
;
166 public void setDefaultAuthor(String defaultAuthor
) {
167 this.defaultAuthor
= defaultAuthor
;
170 public boolean isAllowReuseOtherClassifications() {
171 return allowReuseOtherClassifications
;
174 public void setAllowReuseOtherClassifications(boolean allowReuseOtherClassifications
) {
175 this.allowReuseOtherClassifications
= allowReuseOtherClassifications
;
178 public boolean isDeduplicateReferences() {
179 return deduplicateReferences
;
182 public void setDeduplicateReferences(boolean deduplicateReferences
) {
183 this.deduplicateReferences
= deduplicateReferences
;
186 public boolean isDeduplicateClassifications() {
187 return deduplicateClassifications
;
190 public void setDeduplicateClassifications(boolean deduplicateClassifications
) {
191 this.deduplicateClassifications
= deduplicateClassifications
;
194 public boolean isMoveNewTaxaToDefaultClassification() {
195 return moveNewTaxaToDefaultClassification
;
198 public void setMoveNewTaxaToDefaultClassification(boolean moveNewTaxaToDefaultClassification
) {
199 this.moveNewTaxaToDefaultClassification
= moveNewTaxaToDefaultClassification
;
202 public boolean isMapUnitIdToCatalogNumber() {
203 return mapUnitIdToCatalogNumber
;
206 public void setMapUnitIdToCatalogNumber(boolean mapUnitIdToCatalogNumber
) {
207 this.mapUnitIdToCatalogNumber
= mapUnitIdToCatalogNumber
;
210 public boolean isMapUnitIdToAccessionNumber() {
211 return mapUnitIdToAccessionNumber
;
214 public void setMapUnitIdToAccessionNumber(boolean mapUnitIdToAccessionNumber
) {
215 this.mapUnitIdToAccessionNumber
= mapUnitIdToAccessionNumber
;
218 public boolean isMapUnitIdToBarcode() {
219 return mapUnitIdToBarcode
;
222 public void setMapUnitIdToBarcode(boolean mapUnitIdToBarcode
) {
223 this.mapUnitIdToBarcode
= mapUnitIdToBarcode
;
226 public Map
<String
, UUID
> getNamedAreaDecisions() {
227 return namedAreaDecisions
;
231 public void setNamedAreaDecisions(Map
<String
,UUID
> namedAreaDecisions
) {
232 this.namedAreaDecisions
= namedAreaDecisions
;
235 public void putNamedAreaDecision(String areaStr
,UUID uuid
){
236 this.namedAreaDecisions
.put(areaStr
,uuid
);
239 public UUID
getNamedAreaDecision(String areaStr
){
240 return namedAreaDecisions
.get(areaStr
);
243 public Map
<UUID
, UUID
> getTaxonToDescriptionMap() {
244 return taxonToDescriptionMap
;
249 public SpecimenUserInteraction
getSpecimenUserInteraction() {
250 return specimenUserInteraction
;
253 public void setReuseExistingTaxaWhenPossible(boolean reuseExistingTaxaWhenPossible
) {
254 this.reuseExistingTaxaWhenPossible
= reuseExistingTaxaWhenPossible
;
257 public void setIgnoreAuthorship(boolean ignoreAuthorship
) {
258 this.ignoreAuthorship
= ignoreAuthorship
;
261 public void setRemoveCountryFromLocalityText(boolean removeCountryFromLocalityText
) {
262 this.removeCountryFromLocalityText
= removeCountryFromLocalityText
;
265 public void setAddMediaAsMediaSpecimen(boolean addMediaAsMediaSpecimen
) {
266 this.addMediaAsMediaSpecimen
= addMediaAsMediaSpecimen
;
269 public void setOverwriteExistingSpecimens(boolean overwriteExistingSpecimens
) {
270 this.overwriteExistingSpecimens
= overwriteExistingSpecimens
;
273 public boolean isOverwriteExistingSpecimens(){
274 return overwriteExistingSpecimens
;
277 public boolean isReuseExistingTaxaWhenPossible() {
278 return reuseExistingTaxaWhenPossible
;
281 public void setTeams(Map
<String
, Team
> titleCacheTeam
) {
282 this.titleCacheTeam
= titleCacheTeam
;
285 public Team
getTeam(String titleCache
){
286 return titleCacheTeam
.get(titleCache
);
289 public Map
<String
, Team
> getTeams(){
290 return titleCacheTeam
;
293 public void setPersons(Map
<String
, Person
> titleCachePerson
) {
294 this.titleCachePerson
= titleCachePerson
;
297 public Map
<String
, Person
> getPersons(){
298 return titleCachePerson
;
301 public Person
getPerson(String titleCache
){
302 return titleCachePerson
.get(titleCache
);
305 public boolean isAddMediaAsMediaSpecimen(){
306 return addMediaAsMediaSpecimen
;
309 public void addMediaAsMediaSpecimen(boolean addMediaAsMediaSpecimen
){
310 this.addMediaAsMediaSpecimen
= addMediaAsMediaSpecimen
;
313 public boolean isIgnoreAuthorship() {
314 return ignoreAuthorship
;
317 public boolean isRemoveCountryFromLocalityText() {
318 return removeCountryFromLocalityText
;
321 public OccurenceQuery
getOccurenceQuery(){
325 public void setOccurenceQuery(OccurenceQuery query
){
329 public boolean isReuseExistingMetaData() {
330 return reuseExistingMetaData
;
333 public void setReuseExistingMetaData(boolean reuseExistingMetaData
) {
334 this.reuseExistingMetaData
= reuseExistingMetaData
;
337 public void setReportUri(URI reportUri
) {
338 this.reportUri
= reportUri
;
341 public URI
getReportUri() {
346 public String
getSourceReferenceTitle(){
347 return this.sourceReferenceTitle
;
351 public void setSourceReferenceTitle(String name
){
352 this.sourceReferenceTitle
=name
;
356 public boolean isValid(){
360 public boolean isDownloadSequenceData() {
361 return downloadSequenceData
;
364 public void setDownloadSequenceData(boolean downloadSequenceData
) {
365 this.downloadSequenceData
= downloadSequenceData
;
368 public boolean isUseClassification() {
369 return useClassification
;
371 public void setUseClassification(boolean useClassification
) {
372 this.useClassification
= useClassification
;