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
;
12 import java
.util
.HashMap
;
14 import java
.util
.UUID
;
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
;
28 public abstract class SpecimenImportConfiguratorBase
<CONFIG
extends SpecimenImportConfiguratorBase
, STATE
extends SpecimenImportStateBase
<CONFIG
,STATE
>, InputStream
>
29 extends ImportConfiguratorBase
<STATE
, InputStream
> {
31 private static final long serialVersionUID
= 4741134251527063988L;
36 public SpecimenImportConfiguratorBase(IInputTransformer transformer
) {
41 private boolean ignoreImportOfExistingSpecimen
= true;
42 private boolean reuseExistingTaxaWhenPossible
= true;
43 private final Map
<UUID
, UUID
> taxonToDescriptionMap
= new HashMap
<UUID
, UUID
>();
45 private Map
<String
, Team
> titleCacheTeam
;
46 private Map
<String
, Person
> titleCachePerson
;
47 private boolean ignoreAuthorship
= false;
48 private boolean removeCountryFromLocalityText
= false;
49 protected OccurenceQuery query
;
51 private boolean addMediaAsMediaSpecimen
= false;
52 private boolean reuseExistingMetaData
= true;
54 private static String sourceReferenceTitle
= null;
56 private String taxonReference
= null;
57 private boolean addIndividualsAssociationsSuchAsSpecimenAndObservations
= true;
58 private boolean reuseExistingDescriptiveGroups
= false;
61 private String defaultAuthor
="";
62 private boolean allowReuseOtherClassifications
=true;
64 private boolean deduplicateReferences
= false;
65 private boolean deduplicateClassifications
= false;
67 private boolean moveNewTaxaToDefaultClassification
= true;
69 private boolean mapUnitIdToCatalogNumber
= true;
70 private boolean mapUnitIdToAccessionNumber
= false;
71 private boolean mapUnitIdToBarcode
= false;
73 private boolean overwriteExistingSpecimens
= false;
75 private SpecimenOrObservationType type
;
81 public SpecimenOrObservationType
getType() {
86 * @param type the type to set
88 public void setType(SpecimenOrObservationType type
) {
92 private final SpecimenUserInteraction specimenUserInteraction
= new SpecimenUserInteraction();
94 protected Map
<String
,UUID
> namedAreaDecisions
= new HashMap
<String
,UUID
>();
96 private URI reportUri
;
99 public boolean isIgnoreImportOfExistingSpecimen() {
100 return ignoreImportOfExistingSpecimen
;
103 public void setIgnoreImportOfExistingSpecimen(boolean ignoreImportOfExistingSpecimen
) {
104 this.ignoreImportOfExistingSpecimen
= ignoreImportOfExistingSpecimen
;
107 public Map
<String
, Team
> getTitleCacheTeam() {
108 return titleCacheTeam
;
111 public void setTitleCacheTeam(Map
<String
, Team
> titleCacheTeam
) {
112 this.titleCacheTeam
= titleCacheTeam
;
115 public Map
<String
, Person
> getTitleCachePerson() {
116 return titleCachePerson
;
119 public void setTitleCachePerson(Map
<String
, Person
> titleCachePerson
) {
120 this.titleCachePerson
= titleCachePerson
;
123 public OccurenceQuery
getQuery() {
127 public void setQuery(OccurenceQuery query
) {
135 public String
getTaxonReference() {
136 return taxonReference
;
139 public void setTaxonReference(String taxonReference
) {
140 this.taxonReference
= taxonReference
;
143 public boolean isAddIndividualsAssociationsSuchAsSpecimenAndObservations() {
144 return addIndividualsAssociationsSuchAsSpecimenAndObservations
;
147 public void setAddIndividualsAssociationsSuchAsSpecimenAndObservations(
148 boolean addIndividualsAssociationsSuchAsSpecimenAndObservations
) {
149 this.addIndividualsAssociationsSuchAsSpecimenAndObservations
= addIndividualsAssociationsSuchAsSpecimenAndObservations
;
152 public boolean isReuseExistingDescriptiveGroups() {
153 return reuseExistingDescriptiveGroups
;
156 public void setReuseExistingDescriptiveGroups(boolean reuseExistingDescriptiveGroups
) {
157 this.reuseExistingDescriptiveGroups
= reuseExistingDescriptiveGroups
;
160 public String
getDefaultAuthor() {
161 return defaultAuthor
;
164 public void setDefaultAuthor(String defaultAuthor
) {
165 this.defaultAuthor
= defaultAuthor
;
168 public boolean isAllowReuseOtherClassifications() {
169 return allowReuseOtherClassifications
;
172 public void setAllowReuseOtherClassifications(boolean allowReuseOtherClassifications
) {
173 this.allowReuseOtherClassifications
= allowReuseOtherClassifications
;
176 public boolean isDeduplicateReferences() {
177 return deduplicateReferences
;
180 public void setDeduplicateReferences(boolean deduplicateReferences
) {
181 this.deduplicateReferences
= deduplicateReferences
;
184 public boolean isDeduplicateClassifications() {
185 return deduplicateClassifications
;
188 public void setDeduplicateClassifications(boolean deduplicateClassifications
) {
189 this.deduplicateClassifications
= deduplicateClassifications
;
192 public boolean isMoveNewTaxaToDefaultClassification() {
193 return moveNewTaxaToDefaultClassification
;
196 public void setMoveNewTaxaToDefaultClassification(boolean moveNewTaxaToDefaultClassification
) {
197 this.moveNewTaxaToDefaultClassification
= moveNewTaxaToDefaultClassification
;
200 public boolean isMapUnitIdToCatalogNumber() {
201 return mapUnitIdToCatalogNumber
;
204 public void setMapUnitIdToCatalogNumber(boolean mapUnitIdToCatalogNumber
) {
205 this.mapUnitIdToCatalogNumber
= mapUnitIdToCatalogNumber
;
208 public boolean isMapUnitIdToAccessionNumber() {
209 return mapUnitIdToAccessionNumber
;
212 public void setMapUnitIdToAccessionNumber(boolean mapUnitIdToAccessionNumber
) {
213 this.mapUnitIdToAccessionNumber
= mapUnitIdToAccessionNumber
;
216 public boolean isMapUnitIdToBarcode() {
217 return mapUnitIdToBarcode
;
220 public void setMapUnitIdToBarcode(boolean mapUnitIdToBarcode
) {
221 this.mapUnitIdToBarcode
= mapUnitIdToBarcode
;
224 public Map
<String
, UUID
> getNamedAreaDecisions() {
225 return namedAreaDecisions
;
229 public void setNamedAreaDecisions(Map
<String
,UUID
> namedAreaDecisions
) {
230 this.namedAreaDecisions
= namedAreaDecisions
;
233 public void putNamedAreaDecision(String areaStr
,UUID uuid
){
234 this.namedAreaDecisions
.put(areaStr
,uuid
);
237 public UUID
getNamedAreaDecision(String areaStr
){
238 return namedAreaDecisions
.get(areaStr
);
241 public Map
<UUID
, UUID
> getTaxonToDescriptionMap() {
242 return taxonToDescriptionMap
;
247 public SpecimenUserInteraction
getSpecimenUserInteraction() {
248 return specimenUserInteraction
;
251 public void setReuseExistingTaxaWhenPossible(boolean reuseExistingTaxaWhenPossible
) {
252 this.reuseExistingTaxaWhenPossible
= reuseExistingTaxaWhenPossible
;
255 public void setIgnoreAuthorship(boolean ignoreAuthorship
) {
256 this.ignoreAuthorship
= ignoreAuthorship
;
259 public void setRemoveCountryFromLocalityText(boolean removeCountryFromLocalityText
) {
260 this.removeCountryFromLocalityText
= removeCountryFromLocalityText
;
263 public void setAddMediaAsMediaSpecimen(boolean addMediaAsMediaSpecimen
) {
264 this.addMediaAsMediaSpecimen
= addMediaAsMediaSpecimen
;
267 public void setOverwriteExistingSpecimens(boolean overwriteExistingSpecimens
) {
268 this.overwriteExistingSpecimens
= overwriteExistingSpecimens
;
271 public boolean isOverwriteExistingSpecimens(){
272 return overwriteExistingSpecimens
;
281 public boolean isReuseExistingTaxaWhenPossible() {
283 return reuseExistingTaxaWhenPossible
;
287 * @param titleCacheTeam
289 public void setTeams(Map
<String
, Team
> titleCacheTeam
) {
290 this.titleCacheTeam
= titleCacheTeam
;
294 public Team
getTeam(String titleCache
){
295 return titleCacheTeam
.get(titleCache
);
298 public Map
<String
, Team
> getTeams(){
299 return titleCacheTeam
;
302 * @param titleCachePerson
304 public void setPersons(Map
<String
, Person
> titleCachePerson
) {
305 this.titleCachePerson
= titleCachePerson
;
308 public Map
<String
, Person
> getPersons(){
309 return titleCachePerson
;
312 public Person
getPerson(String titleCache
){
313 return titleCachePerson
.get(titleCache
);
316 public boolean isAddMediaAsMediaSpecimen(){
317 return addMediaAsMediaSpecimen
;
320 public void addMediaAsMediaSpecimen(boolean addMediaAsMediaSpecimen
){
321 this.addMediaAsMediaSpecimen
= addMediaAsMediaSpecimen
;
328 public boolean isIgnoreAuthorship() {
329 return ignoreAuthorship
;
335 public boolean isRemoveCountryFromLocalityText() {
336 return removeCountryFromLocalityText
;
339 public OccurenceQuery
getOccurenceQuery(){
343 public void setOccurenceQuery(OccurenceQuery query
){
350 * @return the reuseExistingMetaData
352 public boolean isReuseExistingMetaData() {
353 return reuseExistingMetaData
;
357 * @param reuseExistingMetaData the reuseExistingMetaData to set
359 public void setReuseExistingMetaData(boolean reuseExistingMetaData
) {
360 this.reuseExistingMetaData
= reuseExistingMetaData
;
363 public void setReportUri(URI reportUri
) {
364 this.reportUri
= reportUri
;
367 public URI
getReportUri() {
372 public String
getSourceReferenceTitle(){
373 return this.sourceReferenceTitle
;
377 public void setSourceReferenceTitle(String name
){
378 this.sourceReferenceTitle
=name
;
382 public boolean isValid(){