3 * Copyright (C) 2016 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
7 * The contents of this file are subject to the Mozilla Public License Version 1.1
8 * See LICENSE.TXT at the top of this package for the full license terms.
10 package eu
.etaxonomy
.cdm
.io
.specimen
;
13 import java
.util
.HashMap
;
15 import java
.util
.UUID
;
17 import eu
.etaxonomy
.cdm
.ext
.occurrence
.OccurenceQuery
;
18 import eu
.etaxonomy
.cdm
.io
.common
.ImportConfiguratorBase
;
19 import eu
.etaxonomy
.cdm
.io
.common
.mapping
.IInputTransformer
;
20 import eu
.etaxonomy
.cdm
.model
.agent
.Person
;
21 import eu
.etaxonomy
.cdm
.model
.agent
.Team
;
28 public abstract class SpecimenImportConfiguratorBase
<STATE
extends SpecimenImportStateBase
, InputStream
> extends ImportConfiguratorBase
<STATE
, InputStream
> {
33 public SpecimenImportConfiguratorBase(IInputTransformer transformer
) {
38 private boolean ignoreImportOfExistingSpecimen
= true;
39 private boolean reuseExistingTaxaWhenPossible
= true;
40 private final Map
<UUID
, UUID
> taxonToDescriptionMap
= new HashMap
<UUID
, UUID
>();
42 private Map
<String
, Team
> titleCacheTeam
;
43 private Map
<String
, Person
> titleCachePerson
;
44 private boolean ignoreAuthorship
= false;
45 private boolean removeCountryFromLocalityText
= false;
46 protected OccurenceQuery query
;
48 private boolean addMediaAsMediaSpecimen
= false;
49 private boolean reuseExistingMetaData
= true;
51 private static String sourceReferenceTitle
= null;
53 private String taxonReference
= null;
54 private boolean addIndividualsAssociationsSuchAsSpecimenAndObservations
= true;
55 private boolean reuseExistingDescriptiveGroups
= false;
58 private String defaultAuthor
="";
59 private boolean allowReuseOtherClassifications
=true;
61 private boolean deduplicateReferences
= false;
62 private boolean deduplicateClassifications
= false;
64 private boolean moveNewTaxaToDefaultClassification
= true;
66 private boolean mapUnitIdToCatalogNumber
= true;
67 private boolean mapUnitIdToAccessionNumber
= false;
68 private boolean mapUnitIdToBarcode
= false;
70 private boolean overwriteExistingSpecimens
= false;
73 private final SpecimenUserInteraction specimenUserInteraction
= new SpecimenUserInteraction();
75 protected Map
<String
,UUID
> namedAreaDecisions
= new HashMap
<String
,UUID
>();
77 private URI reportUri
;
80 public boolean isIgnoreImportOfExistingSpecimen() {
81 return ignoreImportOfExistingSpecimen
;
84 public void setIgnoreImportOfExistingSpecimen(boolean ignoreImportOfExistingSpecimen
) {
85 this.ignoreImportOfExistingSpecimen
= ignoreImportOfExistingSpecimen
;
88 public Map
<String
, Team
> getTitleCacheTeam() {
89 return titleCacheTeam
;
92 public void setTitleCacheTeam(Map
<String
, Team
> titleCacheTeam
) {
93 this.titleCacheTeam
= titleCacheTeam
;
96 public Map
<String
, Person
> getTitleCachePerson() {
97 return titleCachePerson
;
100 public void setTitleCachePerson(Map
<String
, Person
> titleCachePerson
) {
101 this.titleCachePerson
= titleCachePerson
;
104 public OccurenceQuery
getQuery() {
108 public void setQuery(OccurenceQuery query
) {
116 public String
getTaxonReference() {
117 return taxonReference
;
120 public void setTaxonReference(String taxonReference
) {
121 this.taxonReference
= taxonReference
;
124 public boolean isAddIndividualsAssociationsSuchAsSpecimenAndObservations() {
125 return addIndividualsAssociationsSuchAsSpecimenAndObservations
;
128 public void setAddIndividualsAssociationsSuchAsSpecimenAndObservations(
129 boolean addIndividualsAssociationsSuchAsSpecimenAndObservations
) {
130 this.addIndividualsAssociationsSuchAsSpecimenAndObservations
= addIndividualsAssociationsSuchAsSpecimenAndObservations
;
133 public boolean isReuseExistingDescriptiveGroups() {
134 return reuseExistingDescriptiveGroups
;
137 public void setReuseExistingDescriptiveGroups(boolean reuseExistingDescriptiveGroups
) {
138 this.reuseExistingDescriptiveGroups
= reuseExistingDescriptiveGroups
;
141 public String
getDefaultAuthor() {
142 return defaultAuthor
;
145 public void setDefaultAuthor(String defaultAuthor
) {
146 this.defaultAuthor
= defaultAuthor
;
149 public boolean isAllowReuseOtherClassifications() {
150 return allowReuseOtherClassifications
;
153 public void setAllowReuseOtherClassifications(boolean allowReuseOtherClassifications
) {
154 this.allowReuseOtherClassifications
= allowReuseOtherClassifications
;
157 public boolean isDeduplicateReferences() {
158 return deduplicateReferences
;
161 public void setDeduplicateReferences(boolean deduplicateReferences
) {
162 this.deduplicateReferences
= deduplicateReferences
;
165 public boolean isDeduplicateClassifications() {
166 return deduplicateClassifications
;
169 public void setDeduplicateClassifications(boolean deduplicateClassifications
) {
170 this.deduplicateClassifications
= deduplicateClassifications
;
173 public boolean isMoveNewTaxaToDefaultClassification() {
174 return moveNewTaxaToDefaultClassification
;
177 public void setMoveNewTaxaToDefaultClassification(boolean moveNewTaxaToDefaultClassification
) {
178 this.moveNewTaxaToDefaultClassification
= moveNewTaxaToDefaultClassification
;
181 public boolean isMapUnitIdToCatalogNumber() {
182 return mapUnitIdToCatalogNumber
;
185 public void setMapUnitIdToCatalogNumber(boolean mapUnitIdToCatalogNumber
) {
186 this.mapUnitIdToCatalogNumber
= mapUnitIdToCatalogNumber
;
189 public boolean isMapUnitIdToAccessionNumber() {
190 return mapUnitIdToAccessionNumber
;
193 public void setMapUnitIdToAccessionNumber(boolean mapUnitIdToAccessionNumber
) {
194 this.mapUnitIdToAccessionNumber
= mapUnitIdToAccessionNumber
;
197 public boolean isMapUnitIdToBarcode() {
198 return mapUnitIdToBarcode
;
201 public void setMapUnitIdToBarcode(boolean mapUnitIdToBarcode
) {
202 this.mapUnitIdToBarcode
= mapUnitIdToBarcode
;
205 public Map
<String
, UUID
> getNamedAreaDecisions() {
206 return namedAreaDecisions
;
210 public void setNamedAreaDecisions(Map
<String
,UUID
> namedAreaDecisions
) {
211 this.namedAreaDecisions
= namedAreaDecisions
;
214 public void putNamedAreaDecision(String areaStr
,UUID uuid
){
215 this.namedAreaDecisions
.put(areaStr
,uuid
);
218 public UUID
getNamedAreaDecision(String areaStr
){
219 return namedAreaDecisions
.get(areaStr
);
222 public Map
<UUID
, UUID
> getTaxonToDescriptionMap() {
223 return taxonToDescriptionMap
;
228 public SpecimenUserInteraction
getSpecimenUserInteraction() {
229 return specimenUserInteraction
;
232 public void setReuseExistingTaxaWhenPossible(boolean reuseExistingTaxaWhenPossible
) {
233 this.reuseExistingTaxaWhenPossible
= reuseExistingTaxaWhenPossible
;
236 public void setIgnoreAuthorship(boolean ignoreAuthorship
) {
237 this.ignoreAuthorship
= ignoreAuthorship
;
240 public void setRemoveCountryFromLocalityText(boolean removeCountryFromLocalityText
) {
241 this.removeCountryFromLocalityText
= removeCountryFromLocalityText
;
244 public void setAddMediaAsMediaSpecimen(boolean addMediaAsMediaSpecimen
) {
245 this.addMediaAsMediaSpecimen
= addMediaAsMediaSpecimen
;
248 public void setOverwriteExistingSpecimens(boolean overwriteExistingSpecimens
) {
249 this.overwriteExistingSpecimens
= overwriteExistingSpecimens
;
252 public boolean isOverwriteExistingSpecimens(){
253 return overwriteExistingSpecimens
;
262 public boolean isReuseExistingTaxaWhenPossible() {
264 return reuseExistingTaxaWhenPossible
;
268 * @param titleCacheTeam
270 public void setTeams(Map
<String
, Team
> titleCacheTeam
) {
271 this.titleCacheTeam
= titleCacheTeam
;
275 public Team
getTeam(String titleCache
){
276 return titleCacheTeam
.get(titleCache
);
279 public Map
<String
, Team
> getTeams(){
280 return titleCacheTeam
;
283 * @param titleCachePerson
285 public void setPersons(Map
<String
, Person
> titleCachePerson
) {
286 this.titleCachePerson
= titleCachePerson
;
289 public Map
<String
, Person
> getPersons(){
290 return titleCachePerson
;
293 public Person
getPerson(String titleCache
){
294 return titleCachePerson
.get(titleCache
);
297 public boolean isAddMediaAsMediaSpecimen(){
298 return addMediaAsMediaSpecimen
;
301 public void addMediaAsMediaSpecimen(boolean addMediaAsMediaSpecimen
){
302 this.addMediaAsMediaSpecimen
= addMediaAsMediaSpecimen
;
309 public boolean isIgnoreAuthorship() {
310 return ignoreAuthorship
;
316 public boolean isRemoveCountryFromLocalityText() {
317 return removeCountryFromLocalityText
;
320 public OccurenceQuery
getOccurenceQuery(){
324 public void setOccurenceQuery(OccurenceQuery query
){
331 * @return the reuseExistingMetaData
333 public boolean isReuseExistingMetaData() {
334 return reuseExistingMetaData
;
338 * @param reuseExistingMetaData the reuseExistingMetaData to set
340 public void setReuseExistingMetaData(boolean reuseExistingMetaData
) {
341 this.reuseExistingMetaData
= reuseExistingMetaData
;
344 public void setReportUri(URI reportUri
) {
345 this.reportUri
= reportUri
;
348 public URI
getReportUri() {
353 public String
getSourceReferenceTitle(){
354 return this.sourceReferenceTitle
;
358 public void setSourceReferenceTitle(String name
){
359 this.sourceReferenceTitle
=name
;
363 public boolean isValid(){