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
.ArrayList
;
12 import java
.util
.HashMap
;
13 import java
.util
.List
;
15 import org
.springframework
.transaction
.TransactionStatus
;
17 import eu
.etaxonomy
.cdm
.api
.application
.ICdmRepository
;
18 import eu
.etaxonomy
.cdm
.io
.common
.CdmImportBase
;
19 import eu
.etaxonomy
.cdm
.io
.common
.ImportStateBase
;
20 import eu
.etaxonomy
.cdm
.io
.common
.MapWrapper
;
21 import eu
.etaxonomy
.cdm
.io
.specimen
.abcd206
.in
.SpecimenImportReport
;
22 import eu
.etaxonomy
.cdm
.model
.agent
.Institution
;
23 import eu
.etaxonomy
.cdm
.model
.agent
.TeamOrPersonBase
;
24 import eu
.etaxonomy
.cdm
.model
.common
.OriginalSourceBase
;
25 import eu
.etaxonomy
.cdm
.model
.description
.TaxonDescription
;
26 import eu
.etaxonomy
.cdm
.model
.occurrence
.Collection
;
27 import eu
.etaxonomy
.cdm
.model
.occurrence
.DerivedUnit
;
28 import eu
.etaxonomy
.cdm
.model
.occurrence
.FieldUnit
;
29 import eu
.etaxonomy
.cdm
.model
.reference
.Reference
;
30 import eu
.etaxonomy
.cdm
.model
.taxon
.Classification
;
38 public class SpecimenImportStateBase
<CONFIG
extends SpecimenImportConfiguratorBase
, STATE
extends SpecimenImportStateBase
>
39 extends ImportStateBase
<CONFIG
, CdmImportBase
<CONFIG
, STATE
>>{
45 public SpecimenImportStateBase(CONFIG config
) {
49 private TransactionStatus tx
;
51 private ICdmRepository cdmRepository
;
52 private Classification classification
= null;
53 private Classification defaultClassification
= null;
54 private Reference ref
= null;
56 private TaxonDescription descriptionGroup
= null;
57 private DerivedUnit derivedUnitBase
;
59 private SpecimenImportReport report
;
61 protected SpecimenDataHolder dataHolder
;
63 private List
<OriginalSourceBase
<?
>> associationRefs
= new ArrayList
<OriginalSourceBase
<?
>>();
64 private boolean associationSourcesSet
=false;
65 private List
<OriginalSourceBase
<?
>> descriptionRefs
= new ArrayList
<OriginalSourceBase
<?
>>();
66 private boolean descriptionSourcesSet
=false;
67 private List
<OriginalSourceBase
<?
>> derivedUnitSources
= new ArrayList
<OriginalSourceBase
<?
>>();
68 private boolean derivedUnitSourcesSet
=false;
69 private boolean descriptionGroupSet
= false;
70 protected HashMap
<String
, Institution
> institutions
= new HashMap
<String
, Institution
>();
71 protected HashMap
<String
, Collection
> collections
= new HashMap
<String
, Collection
>();
72 private HashMap
<String
,FieldUnit
> fieldUnits
= new HashMap
<String
, FieldUnit
>();
74 MapWrapper
<TeamOrPersonBase
<?
>> personStore
;
77 /* -----Getter/Setter ---*/
80 * @return the personStore
82 public MapWrapper
<TeamOrPersonBase
<?
>> getPersonStore() {
87 * @param personStore the personStore to set
89 public void setPersonStore(MapWrapper
<TeamOrPersonBase
<?
>> personStore
) {
90 this.personStore
= personStore
;
94 * @return the fieldUnits
96 public FieldUnit
getFieldUnit(String fieldNumber
) {
97 return fieldUnits
.get(fieldNumber
);
101 * @param fieldUnits the fieldUnits to set
103 public void setFieldUnit(FieldUnit fieldUnit
) {
104 this.fieldUnits
.put(fieldUnit
.getFieldNumber(), fieldUnit
);
108 public CONFIG
getConfig(){
109 return super.getConfig();
112 public List
<OriginalSourceBase
<?
>> getAssociationRefs() {
113 return associationRefs
;
116 public void setAssociationRefs(List
<OriginalSourceBase
<?
>> associationRefs
) {
117 this.associationRefs
= associationRefs
;
120 public boolean isAssociationSourcesSet() {
121 return associationSourcesSet
;
124 public void setAssociationSourcesSet(boolean associationSourcesSet
) {
125 this.associationSourcesSet
= associationSourcesSet
;
128 public List
<OriginalSourceBase
<?
>> getDescriptionRefs() {
129 return descriptionRefs
;
132 public void setDescriptionRefs(List
<OriginalSourceBase
<?
>> descriptionRefs
) {
133 this.descriptionRefs
= descriptionRefs
;
136 public boolean isDescriptionSourcesSet() {
137 return descriptionSourcesSet
;
140 public void setDescriptionSourcesSet(boolean descriptionSourcesSet
) {
141 this.descriptionSourcesSet
= descriptionSourcesSet
;
144 public List
<OriginalSourceBase
<?
>> getDerivedUnitSources() {
145 return derivedUnitSources
;
148 public void setDerivedUnitSources(List
<OriginalSourceBase
<?
>> derivedUnitSources
) {
149 this.derivedUnitSources
= derivedUnitSources
;
152 public boolean isDerivedUnitSourcesSet() {
153 return derivedUnitSourcesSet
;
156 public void setDerivedUnitSourcesSet(boolean derivedUnitSourcesSet
) {
157 this.derivedUnitSourcesSet
= derivedUnitSourcesSet
;
160 public boolean isDescriptionGroupSet() {
161 return descriptionGroupSet
;
164 public void setDescriptionGroupSet(boolean descriptionGroupSet
) {
165 this.descriptionGroupSet
= descriptionGroupSet
;
168 public TransactionStatus
getTx() {
172 public void setTx(TransactionStatus tx
) {
176 public ICdmRepository
getCdmRepository() {
177 return cdmRepository
;
180 public void setCdmRepository(ICdmRepository cdmRepository
) {
181 this.cdmRepository
= cdmRepository
;
184 public Classification
getClassification() {
185 return classification
;
188 public void setClassification(Classification classification
) {
189 this.classification
= classification
;
192 public Classification
getDefaultClassification() {
193 if(defaultClassification
==null){
194 final String defaultClassificationAbcd
= "Default Classification Specimen Import";
195 for (Classification classif
: cdmRepository
.getClassificationService().list(Classification
.class, null, null, null, null)){
196 if (classif
.getTitleCache()!=null && classif
.getTitleCache().equalsIgnoreCase(defaultClassificationAbcd
)
197 && classif
.getCitation()!=null && classif
.getCitation().equals(getRef())) {
198 defaultClassification
= classif
;
202 if(defaultClassification
==null){
203 defaultClassification
= Classification
.NewInstance(defaultClassificationAbcd
);
204 cdmRepository
.getClassificationService().save(defaultClassification
);
207 return defaultClassification
;
210 public void setDefaultClassification(Classification defaultClassification
) {
211 this.defaultClassification
= defaultClassification
;
214 public Reference
getRef() {
218 public void setRef(Reference ref
) {
222 public TaxonDescription
getDescriptionGroup() {
223 return descriptionGroup
;
226 public void setDescriptionGroup(TaxonDescription descriptionGroup
) {
227 this.descriptionGroup
= descriptionGroup
;
230 public DerivedUnit
getDerivedUnitBase() {
231 return derivedUnitBase
;
234 public void setDerivedUnitBase(DerivedUnit derivedUnitBase
) {
235 this.derivedUnitBase
= derivedUnitBase
;
241 public SpecimenImportReport
getReport() {
243 report
= new SpecimenImportReport();
249 * @param report the report to set
251 public void setReport(SpecimenImportReport report
) {
252 this.report
= report
;
257 * @return the dataHolder
259 public SpecimenDataHolder
getDataHolder() {
264 * @param dataHolder the dataHolder to set
266 public void setDataHolder(SpecimenDataHolder dataHolder
) {
267 this.dataHolder
= dataHolder
;
269 public void reset() {
270 getDataHolder().reset();
271 // setDerivedUnitBase(null);