first implementation for harmonization of import of specimen data
authorKatja Luther <k.luther@bgbm.org>
Tue, 19 Jul 2016 12:06:29 +0000 (14:06 +0200)
committerAndreas Müller <a.mueller@bgbm.org>
Thu, 6 Oct 2016 15:01:58 +0000 (17:01 +0200)
cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/specimen/SpecimenDataHolder.java [new file with mode: 0755]
cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/specimen/SpecimenImportConfiguratorBase.java [new file with mode: 0755]
cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/specimen/SpecimenImportStateBase.java [new file with mode: 0755]

diff --git a/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/specimen/SpecimenDataHolder.java b/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/specimen/SpecimenDataHolder.java
new file mode 100755 (executable)
index 0000000..0ea12df
--- /dev/null
@@ -0,0 +1,60 @@
+// $Id$
+/**
+* Copyright (C) 2016 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.cdm.io.specimen;
+
+import java.util.HashMap;
+import java.util.List;
+
+/**
+ * @author k.luther
+ * @date 18.07.2016
+ *
+ */
+public class SpecimenDataHolder {
+
+    private String nomenclatureCode;
+    private List<HashMap<String, String>> atomisedIdentificationList;
+
+
+
+    /**
+     * @return the nomenclatureCode
+     */
+    public String getNomenclatureCode() {
+        return nomenclatureCode;
+    }
+
+
+
+    /**
+     * @param nomenclatureCode the nomenclatureCode to set
+     */
+    public void setNomenclatureCode(String nomenclatureCode) {
+        this.nomenclatureCode = nomenclatureCode;
+    }
+
+
+
+    /**
+     * @return the atomisedIdentificationList
+     */
+    public List<HashMap<String, String>> getAtomisedIdentificationList() {
+        return atomisedIdentificationList;
+    }
+
+
+
+    /**
+     * @param atomisedIdentificationList the atomisedIdentificationList to set
+     */
+    public void setAtomisedIdentificationList(List<HashMap<String, String>> atomisedIdentificationList) {
+        this.atomisedIdentificationList = atomisedIdentificationList;
+    }
+}
diff --git a/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/specimen/SpecimenImportConfiguratorBase.java b/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/specimen/SpecimenImportConfiguratorBase.java
new file mode 100755 (executable)
index 0000000..6dc0d06
--- /dev/null
@@ -0,0 +1,92 @@
+// $Id$
+/**
+* Copyright (C) 2016 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.cdm.io.specimen;
+
+import java.util.Map;
+
+import eu.etaxonomy.cdm.ext.occurrence.OccurenceQuery;
+import eu.etaxonomy.cdm.io.common.ImportConfiguratorBase;
+import eu.etaxonomy.cdm.io.common.mapping.IInputTransformer;
+import eu.etaxonomy.cdm.model.agent.Person;
+import eu.etaxonomy.cdm.model.agent.Team;
+
+/**
+ * @author k.luther
+ * @date 15.07.2016
+ *
+ */
+public abstract class SpecimenImportConfiguratorBase<STATE extends SpecimenImportStateBase, InputStream>  extends ImportConfiguratorBase<STATE, InputStream> {
+
+    private boolean ignoreImportOfExistingSpecimen;
+    private boolean reuseExistingTaxaWhenPossible;
+    private Map<String, Team> teams;
+    private Map<String, Person> persons;
+    private boolean ignoreAuthorship;
+    private boolean removeCountryFromLocalityText;
+    private OccurenceQuery query ;
+
+    /**
+     * @param transformer
+     */
+    public SpecimenImportConfiguratorBase(IInputTransformer transformer) {
+        super(transformer);
+        // TODO Auto-generated constructor stub
+    }
+
+    /**
+     * @return
+     */
+    public boolean isReuseExistingTaxaWhenPossible() {
+
+        return reuseExistingTaxaWhenPossible;
+    }
+
+    /**
+     * @param titleCacheTeam
+     */
+    public void setTeams(Map<String, Team> titleCacheTeam) {
+       this.teams  = titleCacheTeam;
+
+    }
+
+    /**
+     * @param titleCachePerson
+     */
+    public void setPersons(Map<String, Person> titleCachePerson) {
+        this.persons = titleCachePerson;
+    }
+
+    /**
+     * @return
+     */
+    public boolean isIgnoreAuthorship() {
+        return ignoreAuthorship;
+    }
+
+    /**
+     * @return
+     */
+    public boolean isRemoveCountryFromLocalityText() {
+        return removeCountryFromLocalityText;
+    }
+
+    public boolean isIgnoreImportOfExistingSpecimens(){
+        return ignoreImportOfExistingSpecimen;
+    }
+
+    public OccurenceQuery getOccurenceQuery(){
+        return query;
+    }
+
+    public void setOccurenceQuery(OccurenceQuery query){
+        this.query = query;
+    }
+
+}
diff --git a/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/specimen/SpecimenImportStateBase.java b/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/specimen/SpecimenImportStateBase.java
new file mode 100755 (executable)
index 0000000..eeaa833
--- /dev/null
@@ -0,0 +1,161 @@
+// $Id$
+/**
+* Copyright (C) 2016 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.cdm.io.specimen;
+
+import org.springframework.transaction.TransactionStatus;
+
+import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;
+import eu.etaxonomy.cdm.io.common.CdmImportBase;
+import eu.etaxonomy.cdm.io.common.ImportStateBase;
+import eu.etaxonomy.cdm.io.specimen.abcd206.in.SpecimenImportReport;
+import eu.etaxonomy.cdm.model.description.TaxonDescription;
+import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
+import eu.etaxonomy.cdm.model.reference.Reference;
+import eu.etaxonomy.cdm.model.taxon.Classification;
+
+/**
+ * @author k.luther
+ * @param <CONFIG>
+ * @date 15.07.2016
+ *
+ */
+public abstract class SpecimenImportStateBase<CONFIG extends SpecimenImportConfiguratorBase, STATE extends SpecimenImportStateBase> extends ImportStateBase<CONFIG , CdmImportBase<CONFIG , STATE >>{
+
+
+    private TransactionStatus tx;
+
+    private ICdmApplicationConfiguration cdmRepository;
+    private Classification classification = null;
+    private Classification defaultClassification = null;
+    private Reference ref = null;
+
+    private TaxonDescription descriptionGroup = null;
+    private DerivedUnit derivedUnitBase;
+
+    private SpecimenImportReport report;
+
+    private SpecimenDataHolder dataHolder;
+
+
+    /**
+     * @param config
+     */
+    protected SpecimenImportStateBase(CONFIG config) {
+        super(config);
+        // TODO Auto-generated constructor stub
+    }
+
+    /* -----Getter/Setter ---*/
+
+    public TransactionStatus getTx() {
+        return tx;
+    }
+
+    public void setTx(TransactionStatus tx) {
+        this.tx = tx;
+    }
+
+    public ICdmApplicationConfiguration getCdmRepository() {
+        return cdmRepository;
+    }
+
+    public void setCdmRepository(ICdmApplicationConfiguration cdmRepository) {
+        this.cdmRepository = cdmRepository;
+    }
+
+    public Classification getClassification() {
+        return classification;
+    }
+
+    public void setClassification(Classification classification) {
+        this.classification = classification;
+    }
+
+    public Classification getDefaultClassification() {
+        if(defaultClassification==null){
+            final String defaultClassificationAbcd = "Default Classification ABCD";
+            for (Classification classif : cdmRepository.getClassificationService().list(Classification.class, null, null, null, null)){
+                if (classif.getTitleCache()!=null && classif.getTitleCache().equalsIgnoreCase(defaultClassificationAbcd)
+                        && classif.getCitation()!=null && classif.getCitation().equals(getRef())) {
+                    defaultClassification = classif;
+                    break;
+                }
+            }
+            if(defaultClassification==null){
+                defaultClassification = Classification.NewInstance(defaultClassificationAbcd);
+                cdmRepository.getClassificationService().save(defaultClassification);
+            }
+        }
+        return defaultClassification;
+    }
+
+    public void setDefaultClassification(Classification defaultClassification) {
+        this.defaultClassification = defaultClassification;
+    }
+
+    public Reference getRef() {
+        return ref;
+    }
+
+    public void setRef(Reference ref) {
+        this.ref = ref;
+    }
+
+    public TaxonDescription getDescriptionGroup() {
+        return descriptionGroup;
+    }
+
+    public void setDescriptionGroup(TaxonDescription descriptionGroup) {
+        this.descriptionGroup = descriptionGroup;
+    }
+
+    public DerivedUnit getDerivedUnitBase() {
+        return derivedUnitBase;
+    }
+
+    public void setDerivedUnitBase(DerivedUnit derivedUnitBase) {
+        this.derivedUnitBase = derivedUnitBase;
+    }
+
+    /**
+     * @return the report
+     */
+    public SpecimenImportReport getReport() {
+        return report;
+    }
+
+    /**
+     * @param report the report to set
+     */
+    public void setReport(SpecimenImportReport report) {
+        this.report = report;
+    }
+
+    /**
+     *
+     */
+    public abstract void reset() ;
+
+    /**
+     * @return the dataHolder
+     */
+    public SpecimenDataHolder getDataHolder() {
+        return dataHolder;
+    }
+
+    /**
+     * @param dataHolder the dataHolder to set
+     */
+    public void setDataHolder(SpecimenDataHolder dataHolder) {
+        this.dataHolder = dataHolder;
+    }
+
+
+}