added to importer a distribution status import for the german federal states and...
[cdmlib-apps.git] / app-import / src / main / java / eu / etaxonomy / cdm / io / redlist / RoteListeDbTaxonImport.java
index 45154bc17cbc97af81fd411c1b729c776c168353..e51327aef2a6bbfed1716e4a756175d0c0aef5d0 100644 (file)
@@ -17,44 +17,30 @@ import java.util.Map;
 import java.util.Set;\r
 import java.util.UUID;\r
 \r
-import org.apache.commons.lang.StringUtils;\r
 import org.apache.log4j.Logger;\r
 import org.springframework.stereotype.Component;\r
 \r
-import eu.etaxonomy.cdm.api.service.IClassificationService;\r
-import eu.etaxonomy.cdm.common.CdmUtils;\r
 import eu.etaxonomy.cdm.io.common.IOValidator;\r
 import eu.etaxonomy.cdm.io.common.ResultSetPartitioner;\r
 import eu.etaxonomy.cdm.io.common.mapping.DbImportMapping;\r
-import eu.etaxonomy.cdm.io.common.mapping.DbImportMarkerMapper;\r
-import eu.etaxonomy.cdm.io.common.mapping.DbImportObjectCreationMapper;\r
-import eu.etaxonomy.cdm.io.common.mapping.DbImportTaxIncludedInMapper;\r
 import eu.etaxonomy.cdm.io.common.mapping.IMappingImport;\r
 import eu.etaxonomy.cdm.io.redlist.validation.RoteListeDbTaxonImportValidator;\r
 import eu.etaxonomy.cdm.model.common.CdmBase;\r
-import eu.etaxonomy.cdm.model.description.Distribution;\r
-import eu.etaxonomy.cdm.model.description.PresenceTerm;\r
-import eu.etaxonomy.cdm.model.description.TaxonDescription;\r
-import eu.etaxonomy.cdm.model.location.NamedArea;\r
-import eu.etaxonomy.cdm.model.location.TdwgArea;\r
 import eu.etaxonomy.cdm.model.name.BotanicalName;\r
 import eu.etaxonomy.cdm.model.name.Rank;\r
-import eu.etaxonomy.cdm.model.reference.Reference;\r
-import eu.etaxonomy.cdm.model.reference.ReferenceFactory;\r
-import eu.etaxonomy.cdm.model.taxon.Classification;\r
 import eu.etaxonomy.cdm.model.taxon.Taxon;\r
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;\r
-import eu.etaxonomy.cdm.model.taxon.TaxonNode;\r
 import eu.etaxonomy.cdm.strategy.parser.NonViralNameParserImpl;\r
 \r
 \r
 /**\r
+ * TODO do we still need this class?\r
  * @author a.mueller\r
  * @created 27.08.2012\r
- * @version 1.0\r
  */\r
 @Component\r
 public class RoteListeDbTaxonImport  extends RoteListeDbImportBase<TaxonBase> implements IMappingImport<TaxonBase, RoteListeDbImportState>{\r
+       @SuppressWarnings("unused")\r
        private static final Logger logger = Logger.getLogger(RoteListeDbTaxonImport.class);\r
        \r
        private NonViralNameParserImpl parser = NonViralNameParserImpl.NewInstance();\r
@@ -76,10 +62,6 @@ public class RoteListeDbTaxonImport  extends RoteListeDbImportBase<TaxonBase> im
        }\r
        \r
        \r
-\r
-       /* (non-Javadoc)\r
-        * @see eu.etaxonomy.cdm.io.erms.ErmsImportBase#getIdQuery()\r
-        */\r
        @Override\r
        protected String getIdQuery() {\r
                String strQuery = " SELECT pk FROM " + dbTableName +\r
@@ -87,10 +69,7 @@ public class RoteListeDbTaxonImport  extends RoteListeDbImportBase<TaxonBase> im
                return strQuery;\r
        }\r
 \r
-\r
-       /* (non-Javadoc)\r
-        * @see eu.etaxonomy.cdm.io.erms.ErmsImportBase#getMapping()\r
-        */\r
+       @Override\r
        protected DbImportMapping getMapping() {\r
                if (mapping == null){\r
                        mapping = new DbImportMapping();\r
@@ -105,9 +84,6 @@ public class RoteListeDbTaxonImport  extends RoteListeDbImportBase<TaxonBase> im
                return mapping;\r
        }\r
 \r
-       /* (non-Javadoc)\r
-        * @see eu.etaxonomy.cdm.io.berlinModel.in.BerlinModelImportBase#getRecordQuery(eu.etaxonomy.cdm.io.berlinModel.in.BerlinModelImportConfigurator)\r
-        */\r
        @Override\r
        protected String getRecordQuery(RoteListeDbImportConfigurator config) {\r
                String strSelect = " SELECT * ";\r
@@ -120,13 +96,6 @@ public class RoteListeDbTaxonImport  extends RoteListeDbImportBase<TaxonBase> im
        \r
        @Override\r
        public boolean doPartition(ResultSetPartitioner partitioner, RoteListeDbImportState state) {\r
-//             higherTaxonMap = new HashMap<UUID, Taxon>();\r
-//             Reference genevaReference = getReferenceService().find(state.getConfig().getUuidGenevaReference());\r
-//             if (genevaReference == null){\r
-//                     genevaReference = makeGenevaReference(state);\r
-//                     getReferenceService().save(genevaReference);\r
-//             }\r
-//             state.setGenevaReference(genevaReference);\r
                boolean success = super.doPartition(partitioner, state);\r
 //             higherTaxonMap = new HashMap<UUID, Taxon>();\r
 //             state.setGenevaReference(null);\r
@@ -134,12 +103,10 @@ public class RoteListeDbTaxonImport  extends RoteListeDbImportBase<TaxonBase> im
        }\r
 \r
 \r
-       /* (non-Javadoc)\r
-        * @see eu.etaxonomy.cdm.io.berlinModel.in.IPartitionedIO#getRelatedObjectsForPartition(java.sql.ResultSet)\r
-        */\r
-       public Map<Object, Map<String, ? extends CdmBase>> getRelatedObjectsForPartition(ResultSet rs) {\r
+       @Override\r
+       public Map<Object, Map<String, ? extends CdmBase>> getRelatedObjectsForPartition(ResultSet rs, RoteListeDbImportState state) {\r
                String nameSpace;\r
-               Class cdmClass;\r
+               Class<?> cdmClass;\r
                Set<String> idSet;\r
                Set<String> referenceIdSet = new HashSet<String>();\r
                \r
@@ -164,9 +131,7 @@ public class RoteListeDbTaxonImport  extends RoteListeDbImportBase<TaxonBase> im
        }\r
        \r
 \r
-       /* (non-Javadoc)\r
-        * @see eu.etaxonomy.cdm.io.common.mapping.IMappingImport#createObject(java.sql.ResultSet)\r
-        */\r
+       @Override\r
        public TaxonBase createObject(ResultSet rs, RoteListeDbImportState state) throws SQLException {\r
                BotanicalName speciesName = BotanicalName.NewInstance(Rank.SPECIES());\r
                \r
@@ -222,11 +187,6 @@ public class RoteListeDbTaxonImport  extends RoteListeDbImportBase<TaxonBase> im
 //             speciesTaxon.addSource(sourceId, REFERENCE_NAMESPACE, sourceRef, null);\r
 //             \r
 //             \r
-//             //geneva id\r
-//             Reference genevaReference = state.getGenevaReference();\r
-//             Object genevaId = rs.getObject("geneva_ID");\r
-//             speciesTaxon.addSource(String.valueOf(genevaId), null, genevaReference, null);\r
-//             \r
 //             //distribution\r
 //             handleDistribution(rs, speciesTaxon);\r
 //             \r
@@ -234,77 +194,8 @@ public class RoteListeDbTaxonImport  extends RoteListeDbImportBase<TaxonBase> im
                \r
                return null;\r
        }\r
-       \r
-       private void handleDistribution(ResultSet rs, Taxon speciesTaxon) throws SQLException {\r
-               TaxonDescription description = TaxonDescription.NewInstance(speciesTaxon);\r
-               \r
-               Boolean isCongo = rs.getBoolean("drc");\r
-               Boolean isBurundi = rs.getBoolean("burundi");\r
-               Boolean isRwanda = rs.getBoolean("rwanda");\r
-\r
-               addDistribution(description, isCongo, "ZAI");\r
-               addDistribution(description, isBurundi, "BUR");\r
-               addDistribution(description, isRwanda, "RWA");\r
-\r
-       }\r
-\r
-\r
-\r
-       /**\r
-        * @param description\r
-        * @param isCongo\r
-        */\r
-       private void addDistribution(TaxonDescription description, Boolean exists, String label) {\r
-               if (exists == true){\r
-                       NamedArea namedArea = TdwgArea.getAreaByTdwgAbbreviation(label);\r
-                       Distribution distribution = Distribution.NewInstance(namedArea, PresenceTerm.PRESENT());\r
-                       description.addElement(distribution);\r
-               }\r
-       }\r
-\r
-\r
-       \r
-       //TODO use Mapper\r
-       private boolean makeTaxonomicallyIncluded(RoteListeDbImportState state, Integer treeRefFk, Taxon child, Taxon parent, Reference citation, String microCitation){\r
-               String treeKey;\r
-               UUID treeUuid;\r
-               if (treeRefFk == null){\r
-                       treeKey = "1";  // there is only one tree and it gets the map key '1'\r
-                       treeUuid = state.getConfig().getClassificationUuid();\r
-               }else{\r
-                       treeKey =String.valueOf(treeRefFk);\r
-                       treeUuid = state.getTreeUuidByTreeKey(treeKey);\r
-               }\r
-               Classification tree = (Classification)state.getRelatedObject(DbImportTaxIncludedInMapper.TAXONOMIC_TREE_NAMESPACE, treeKey);\r
-               if (tree == null){\r
-                       IClassificationService service = state.getCurrentIO().getClassificationService();\r
-                       tree = service.find(treeUuid);\r
-                       if (tree == null){\r
-                               String treeName = state.getConfig().getClassificationName();\r
-                               tree = Classification.NewInstance(treeName);\r
-                               tree.setUuid(treeUuid);\r
-                               //FIXME tree reference\r
-                               //tree.setReference(ref);\r
-                               service.save(tree);\r
-                       }\r
-                       state.addRelatedObject(DbImportTaxIncludedInMapper.TAXONOMIC_TREE_NAMESPACE, treeKey, tree);\r
-               }\r
-               \r
-               TaxonNode childNode = tree.addParentChild(parent, child, citation, microCitation);\r
-               return (childNode != null);\r
-       }\r
-\r
 \r
-//     private Reference makeGenevaReference(RoteListeDbImportState state) {\r
-//             Reference result = ReferenceFactory.newDatabase();\r
-//             result.setTitleCache(state.getConfig().getGenevaReferenceTitle(), true);\r
-//             result.setUuid(state.getConfig().getUuidGenevaReference());\r
-//             return result;\r
-//     }\r
 \r
-       /* (non-Javadoc)\r
-        * @see eu.etaxonomy.cdm.io.common.CdmIoBase#doCheck(eu.etaxonomy.cdm.io.common.IImportConfigurator)\r
-        */\r
        @Override\r
        protected boolean doCheck(RoteListeDbImportState state){\r
                IOValidator<RoteListeDbImportState> validator = new RoteListeDbTaxonImportValidator();\r
@@ -312,9 +203,7 @@ public class RoteListeDbTaxonImport  extends RoteListeDbImportBase<TaxonBase> im
        }\r
        \r
        \r
-       /* (non-Javadoc)\r
-        * @see eu.etaxonomy.cdm.io.common.CdmIoBase#isIgnore(eu.etaxonomy.cdm.io.common.IImportConfigurator)\r
-        */\r
+       @Override\r
        protected boolean isIgnore(RoteListeDbImportState state){\r
                return ! state.getConfig().isDoTaxa();\r
        }\r