TaxonomicTree for BerlinModelExport
authorAndreas Müller <a.mueller@bgbm.org>
Tue, 23 Jun 2009 17:54:57 +0000 (17:54 +0000)
committerAndreas Müller <a.mueller@bgbm.org>
Tue, 23 Jun 2009 17:54:57 +0000 (17:54 +0000)
.gitattributes
cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/in/BerlinModelAuthorTeamImport.java
cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/out/BerlinModelAuthorTeamExport.java
cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/out/BerlinModelExportConfigurator.java
cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/out/BerlinModelTaxonomicTreeExport.java
cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/out/mapper/DbConstantMapper.java [new file with mode: 0644]

index 53eecd7350453e0acca23f51d20e054aeb7c9d99..f7806c1031f2036abfc02e50201f2458d9824028 100644 (file)
@@ -700,6 +700,7 @@ cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/out/mapper/CreatedAndNot
 cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/out/mapper/DbAnnotationMapper.java -text
 cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/out/mapper/DbBooleanMapper.java -text
 cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/out/mapper/DbClobMapper.java -text
+cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/out/mapper/DbConstantMapper.java -text
 cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/out/mapper/DbDateMapper.java -text
 cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/out/mapper/DbExportMapperBase.java -text
 cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/out/mapper/DbExtensionMapper.java -text
index c0c5808c86109df2b0e385f567005a33aea876c5..21069a75a7b5dca17f4c551b3139cba05b5aee98 100644 (file)
@@ -16,7 +16,6 @@ import org.apache.log4j.Logger;
 import org.springframework.stereotype.Component;\r
 \r
 import eu.etaxonomy.cdm.io.common.ICdmIO;\r
-import eu.etaxonomy.cdm.io.common.IImportConfigurator;\r
 import eu.etaxonomy.cdm.io.common.MapWrapper;\r
 import eu.etaxonomy.cdm.io.common.Source;\r
 import eu.etaxonomy.cdm.model.agent.AgentBase;\r
index 6df4b1968c5da65ebf28635fcb5ae84596641886..0b272b9d696a11b017851066708735e1c1c38e8b 100644 (file)
@@ -19,7 +19,6 @@ import eu.etaxonomy.cdm.io.berlinModel.out.mapper.CreatedAndNotesMapper;
 import eu.etaxonomy.cdm.io.berlinModel.out.mapper.DbBooleanMapper;\r
 import eu.etaxonomy.cdm.io.berlinModel.out.mapper.IdMapper;\r
 import eu.etaxonomy.cdm.io.berlinModel.out.mapper.MethodMapper;\r
-import eu.etaxonomy.cdm.io.common.IExportConfigurator;\r
 import eu.etaxonomy.cdm.io.common.Source;\r
 import eu.etaxonomy.cdm.model.agent.AgentBase;\r
 import eu.etaxonomy.cdm.model.agent.Team;\r
index 8c1a9d70890abea2a067b0758e243ba598ef8b2e..cfd51149b949e6d027ef01a77a090f39dc38dad7 100644 (file)
@@ -51,6 +51,7 @@ public class BerlinModelExportConfigurator extends DbExportConfiguratorBase impl
 //                             , BerlinModelTypesImport.class\r
                                , BerlinModelTaxonExport.class\r
                                , BerlinModelTaxonRelationExport.class\r
+                               , BerlinModelTaxonomicTreeExport.class\r
                                , BerlinModelFactExport.class\r
 //                             , BerlinModelOccurrenceImport.class\r
                };\r
@@ -91,21 +92,6 @@ public class BerlinModelExportConfigurator extends DbExportConfiguratorBase impl
                this.doTaxonNames = doTaxonNames;\r
        }\r
 \r
-//\r
-//     /**\r
-//      * @return the state\r
-//      */\r
-//     public BerlinModelExportState getState() {\r
-//             return state;\r
-//     }\r
-//\r
-//     /**\r
-//      * @param state the state to set\r
-//      */\r
-//     public void setState(BerlinModelExportState state) {\r
-//             this.state = state;\r
-//     }\r
-\r
        /**\r
         * @return the isHomotypicId\r
         */\r
index 2022d8b2adc9b552875b158784c119ed94e3444e..a2dcbfabfddd5fcdae0a4ecf2501a4feef4ee92f 100644 (file)
@@ -9,24 +9,22 @@
 package eu.etaxonomy.cdm.io.berlinModel.out;\r
 \r
 import java.sql.SQLException;\r
+import java.sql.Types;\r
 import java.util.List;\r
 \r
 import org.apache.log4j.Logger;\r
 import org.springframework.stereotype.Component;\r
 import org.springframework.transaction.TransactionStatus;\r
 \r
-import eu.etaxonomy.cdm.io.berlinModel.BerlinModelTransformer;\r
 import eu.etaxonomy.cdm.io.berlinModel.out.mapper.CreatedAndNotesMapper;\r
+import eu.etaxonomy.cdm.io.berlinModel.out.mapper.DbConstantMapper;\r
 import eu.etaxonomy.cdm.io.berlinModel.out.mapper.DbObjectMapper;\r
 import eu.etaxonomy.cdm.io.berlinModel.out.mapper.MethodMapper;\r
 import eu.etaxonomy.cdm.io.common.DbExportStateBase;\r
-import eu.etaxonomy.cdm.io.common.IExportConfigurator;\r
-import eu.etaxonomy.cdm.io.common.Source;\r
 import eu.etaxonomy.cdm.model.common.CdmBase;\r
 import eu.etaxonomy.cdm.model.common.RelationshipBase;\r
-import eu.etaxonomy.cdm.model.taxon.SynonymRelationship;\r
-import eu.etaxonomy.cdm.model.taxon.TaxonBase;\r
-import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;\r
+import eu.etaxonomy.cdm.model.taxon.Taxon;\r
+import eu.etaxonomy.cdm.model.taxon.TaxonNode;\r
 import eu.etaxonomy.cdm.model.taxon.TaxonomicTree;\r
 \r
 \r
@@ -41,8 +39,8 @@ public class BerlinModelTaxonomicTreeExport extends BerlinModelExportBase<Relati
 \r
        private static int modCount = 1000;\r
        private static final String dbTableName = "RelPTaxon";\r
-       private static final String pluralString = "TaxonomicTrees";\r
-       private static final Class<? extends CdmBase> standardMethodParameter = RelationshipBase.class;\r
+       private static final String pluralString = "TaxonNodes";\r
+       private static final Class<? extends CdmBase> standardMethodParameter = TaxonNode.class;\r
 \r
 \r
        public BerlinModelTaxonomicTreeExport(){\r
@@ -73,9 +71,9 @@ public class BerlinModelTaxonomicTreeExport extends BerlinModelExportBase<Relati
                mapping.addMapper(MethodMapper.NewInstance("PTNameFk2", this.getClass(), "getPTNameFk2", standardMethodParameter, DbExportStateBase.class));\r
                mapping.addMapper(MethodMapper.NewInstance("PTRefFk2", this.getClass(), "getPTRefFk2", standardMethodParameter, DbExportStateBase.class));\r
                \r
-               mapping.addMapper(MethodMapper.NewInstance("RelQualifierFk", this));\r
+               mapping.addMapper(DbConstantMapper.NewInstance("RelQualifierFk", Types.INTEGER, 1));\r
                \r
-               mapping.addMapper(DbObjectMapper.NewInstance("citation", "RelRefFk"));\r
+               mapping.addMapper(DbObjectMapper.NewInstance("referenceForParentChildRelation", "RelRefFk"));\r
 //             mapping.addMapper(RefDetailMapper.NewInstance("citationMicroReference","citation", "FactRefDetailFk"));\r
                mapping.addMapper(CreatedAndNotesMapper.NewInstance());\r
 \r
@@ -83,6 +81,10 @@ public class BerlinModelTaxonomicTreeExport extends BerlinModelExportBase<Relati
        }\r
        \r
        protected boolean doInvoke(BerlinModelExportState state){\r
+               if (state.getConfig().isUseTaxonomicTree() == false){\r
+                       return true;\r
+               }\r
+               \r
                try{\r
                        logger.info("start make " + pluralString + " ...");\r
                        boolean success = true ;\r
@@ -97,9 +99,13 @@ public class BerlinModelTaxonomicTreeExport extends BerlinModelExportBase<Relati
                        \r
                        int count = 0;\r
                        for (TaxonomicTree tree : list){\r
-                               if (true){\r
-                                       doCount(count++, modCount, pluralString);\r
-                                       success &= mapping.invoke(tree);\r
+                               for (TaxonNode node : tree.getAllNodes()){\r
+                                       if (node.getParent() == null){\r
+                                               continue;\r
+                                       }else{\r
+                                               doCount(count++, modCount, pluralString);\r
+                                               success &= mapping.invoke(node);\r
+                                       }\r
                                }\r
                        }\r
                        commitTransaction(txStatus);\r
@@ -116,12 +122,13 @@ public class BerlinModelTaxonomicTreeExport extends BerlinModelExportBase<Relati
        protected boolean doDelete(BerlinModelExportState state){\r
                BerlinModelExportConfigurator bmeConfig = state.getConfig();\r
                \r
-               String sql;\r
-               Source destination =  bmeConfig.getDestination();\r
-               //RelPTaxon\r
-               sql = "DELETE FROM RelPTaxon";\r
-               destination.setQuery(sql);\r
-               destination.update(sql);\r
+               //already deleted in BerlinModelTaxonRelationExport\r
+//             String sql;\r
+//             Source destination =  bmeConfig.getDestination();\r
+//             //RelPTaxon\r
+//             sql = "DELETE FROM RelPTaxon ";\r
+//             destination.setQuery(sql);\r
+//             destination.update(sql);\r
 \r
                return true;\r
        }\r
@@ -135,45 +142,34 @@ public class BerlinModelTaxonomicTreeExport extends BerlinModelExportBase<Relati
        }\r
        \r
        //called by MethodMapper\r
-       @SuppressWarnings("unused")\r
-       private static Integer getRelQualifierFk(RelationshipBase<?, ?, ?> rel){\r
-               return BerlinModelTransformer.taxRelation2relPtQualifierFk(rel);\r
-       }\r
        \r
        @SuppressWarnings("unused")\r
-       private static Integer getPTNameFk1(RelationshipBase<?, ?, ?> rel, DbExportStateBase<?> state){\r
-               return getObjectFk(rel, state, true, true);\r
+       private static Integer getPTNameFk1(TaxonNode node, DbExportStateBase<?> state){\r
+               return getObjectFk(node, state, true, true);\r
        }\r
        \r
        @SuppressWarnings("unused")\r
-       private static Integer getPTRefFk1(RelationshipBase<?, ?, ?> rel, DbExportStateBase<?> state){\r
-               return getObjectFk(rel, state, false, true);\r
+       private static Integer getPTRefFk1(TaxonNode node, DbExportStateBase<?> state){\r
+               return getObjectFk(node, state, false, true);\r
        }\r
        \r
        @SuppressWarnings("unused")\r
-       private static Integer getPTNameFk2(RelationshipBase<?, ?, ?> rel, DbExportStateBase<?> state){\r
-               return getObjectFk(rel, state, true, false);\r
+       private static Integer getPTNameFk2(TaxonNode node, DbExportStateBase<?> state){\r
+               return getObjectFk(node, state, true, false);\r
        }\r
        \r
        @SuppressWarnings("unused")\r
-       private static Integer getPTRefFk2(RelationshipBase<?, ?, ?> rel, DbExportStateBase<?> state){\r
-               return getObjectFk(rel, state, false, false);\r
+       private static Integer getPTRefFk2(TaxonNode node, DbExportStateBase<?> state){\r
+               return getObjectFk(node, state, false, false);\r
        }\r
 \r
-       private static Integer getObjectFk(RelationshipBase<?, ?, ?> rel, DbExportStateBase<?> state, boolean isName, boolean isFrom){\r
-               TaxonBase<?> taxon = null;\r
-               if (rel.isInstanceOf(TaxonRelationship.class)){\r
-                       TaxonRelationship tr = (TaxonRelationship)rel;\r
-                       taxon = (isFrom) ? tr.getFromTaxon():  tr.getToTaxon();\r
-               }else if (rel.isInstanceOf(SynonymRelationship.class)){\r
-                       SynonymRelationship sr = (SynonymRelationship)rel;\r
-                       taxon = (isFrom) ? sr.getSynonym() : sr.getAcceptedTaxon();\r
-               }\r
+       private static Integer getObjectFk(TaxonNode node, DbExportStateBase<?> state, boolean isName, boolean isFrom){\r
+               Taxon taxon = (isFrom) ? node.getTaxon():  node.getParent().getTaxon();\r
                if (taxon != null){\r
                        CdmBase cdmBase = (isName) ? taxon.getName(): taxon.getSec();\r
                        return state.getDbId(cdmBase);\r
                }\r
-               logger.warn("No taxon found for relationship: " + rel.toString());\r
+               logger.warn("No taxon or parent taxon found for taxon node: " + node.toString());\r
                return null;\r
        }\r
        \r
diff --git a/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/out/mapper/DbConstantMapper.java b/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/out/mapper/DbConstantMapper.java
new file mode 100644 (file)
index 0000000..42a653f
--- /dev/null
@@ -0,0 +1,70 @@
+// $Id$\r
+/**\r
+* Copyright (C) 2007 EDIT\r
+* European Distributed Institute of Taxonomy \r
+* http://www.e-taxonomy.eu\r
+* \r
+* The contents of this file are subject to the Mozilla Public License Version 1.1\r
+* See LICENSE.TXT at the top of this package for the full license terms.\r
+*/\r
+\r
+package eu.etaxonomy.cdm.io.berlinModel.out.mapper;\r
+\r
+import org.apache.log4j.Logger;\r
+\r
+import eu.etaxonomy.cdm.io.common.DbExportStateBase;\r
+import eu.etaxonomy.cdm.model.common.CdmBase;\r
+\r
+/**\r
+ * @author a.mueller\r
+ * @created 12.05.2009\r
+ * @version 1.0\r
+ */\r
+public class DbConstantMapper extends DbSingleAttributeExportMapperBase<DbExportStateBase<?>> implements IDbExportMapper<DbExportStateBase<?>>{\r
+       @SuppressWarnings("unused")\r
+       private static final Logger logger = Logger.getLogger(DbConstantMapper.class);\r
+       private int sqlType;\r
+       private Object value;\r
+       \r
+       public static DbConstantMapper NewInstance(String dbIdAttributeString, int sqlType, Object value){\r
+               return new DbConstantMapper(dbIdAttributeString, sqlType, value);\r
+       }\r
+       \r
+       /**\r
+        * @param dbAttributString\r
+        * @param cdmAttributeString\r
+        */\r
+       protected DbConstantMapper(String dbAttributeString, int sqlType, Object value) {\r
+               super(null, dbAttributeString, null);\r
+               this.sqlType = sqlType;\r
+               this.value = value;\r
+       }\r
+\r
+\r
+       /* (non-Javadoc)\r
+        * @see eu.etaxonomy.cdm.io.common.CdmSingleAttributeMapperBase#getTypeClass()\r
+        */\r
+       @Override\r
+       public Class<?> getTypeClass() {\r
+               return Integer.class;\r
+       }\r
+\r
+       /* (non-Javadoc)\r
+        * @see eu.etaxonomy.cdm.io.berlinModel.out.mapper.DbSingleAttributeExportMapperBase#getValue()\r
+        */\r
+       @Override\r
+       protected Object getValue(CdmBase cdmBase) {\r
+               return value;\r
+       }\r
+       \r
+       \r
+\r
+       /* (non-Javadoc)\r
+        * @see eu.etaxonomy.cdm.io.berlinModel.out.mapper.DbSingleAttributeExportMapperBase#getValueType()\r
+        */\r
+       @Override\r
+       protected int getSqlType() {\r
+               return this.sqlType;\r
+       }\r
+       \r
+}\r