.
authorem.lee <em.lee@localhost>
Wed, 24 Feb 2010 09:37:28 +0000 (09:37 +0000)
committerem.lee <em.lee@localhost>
Wed, 24 Feb 2010 09:37:28 +0000 (09:37 +0000)
.gitattributes
cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/pesi/out/PesiNoteExport.java [new file with mode: 0644]

index 159008060fc733c02c5b7c91ba1c395421f8a54a..155ed047600d4f1cf2b443efaf2c423a8ba2c483 100644 (file)
@@ -1331,6 +1331,7 @@ cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/jaxb/JaxbImportState.java -text
 cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/jaxb/LsInputImpl.java -text
 cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/jaxb/WarningTolerantValidationEventHandler.java -text
 cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/jaxb/package-info.java -text
+cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/pesi/out/PesiNoteExport.java -text
 cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/pesi/out/PesiRelTaxonExport.java -text
 cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/pesi/out/PesiSourceExport.java -text
 cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/pesi/out/PesiTaxonExport.java -text
diff --git a/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/pesi/out/PesiNoteExport.java b/cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/pesi/out/PesiNoteExport.java
new file mode 100644 (file)
index 0000000..e606fd2
--- /dev/null
@@ -0,0 +1,264 @@
+// $Id$\r
+/**\r
+* Copyright (C) 2009 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
+package eu.etaxonomy.cdm.io.pesi.out;\r
+\r
+import java.sql.SQLException;\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.out.mapper.DbTimePeriodMapper;\r
+import eu.etaxonomy.cdm.io.berlinModel.out.mapper.MethodMapper;\r
+import eu.etaxonomy.cdm.io.common.Source;\r
+import eu.etaxonomy.cdm.model.common.CdmBase;\r
+import eu.etaxonomy.cdm.model.description.DescriptionBase;\r
+\r
+/**\r
+ * @author a.mueller\r
+ * @author e.-m.lee\r
+ * @date 23.02.2010\r
+ *\r
+ */\r
+@Component\r
+@SuppressWarnings("unchecked")\r
+public class PesiNoteExport extends PesiExportBase<DescriptionBase> {\r
+       private static final Logger logger = Logger.getLogger(PesiTaxonExport.class);\r
+       private static final Class<? extends CdmBase> standardMethodParameter = DescriptionBase.class;\r
+\r
+       private static int modCount = 1000;\r
+       private static final String dbTableName = "Note";\r
+       private static final String pluralString = "Notes";\r
+\r
+       public PesiNoteExport() {\r
+               super();\r
+       }\r
+\r
+       /* (non-Javadoc)\r
+        * @see eu.etaxonomy.cdm.io.common.DbExportBase#getStandardMethodParameter()\r
+        */\r
+       @Override\r
+       public Class<? extends CdmBase> getStandardMethodParameter() {\r
+               return standardMethodParameter;\r
+       }\r
+\r
+       /* (non-Javadoc)\r
+        * @see eu.etaxonomy.cdm.io.common.CdmIoBase#doCheck(eu.etaxonomy.cdm.io.common.IoStateBase)\r
+        */\r
+       @Override\r
+       protected boolean doCheck(PesiExportState state) {\r
+               boolean result = true;\r
+               return result;\r
+       }\r
+\r
+       /* (non-Javadoc)\r
+        * @see eu.etaxonomy.cdm.io.common.CdmIoBase#doInvoke(eu.etaxonomy.cdm.io.common.IoStateBase)\r
+        */\r
+       @Override\r
+       protected boolean doInvoke(PesiExportState state) {\r
+               try {\r
+                       logger.info("Start: Make " + pluralString + " ...");\r
+       \r
+                       // Stores whether this invoke was successful or not.\r
+                       boolean success = true ;\r
+       \r
+                       // PESI: Clear the database table Note.\r
+                       doDelete(state);\r
+       \r
+                       // Start transaction\r
+                       TransactionStatus txStatus = startTransaction(true);\r
+       \r
+                       // CDM: Get all DescriptionElements\r
+                       List<DescriptionBase> list = getDescriptionService().list(null, 100000000, 0, null, null);\r
+       \r
+                       // Get specific mappings: (CDM) DescriptionElement -> (PESI) Note\r
+                       PesiExportMapping mapping = getMapping();\r
+       \r
+                       // Initialize the db mapper\r
+                       mapping.initialize(state);\r
+       \r
+                       // PESI: Create the Notes\r
+                       int count = 0;\r
+                       for (DescriptionBase<?> description : list) {\r
+                               doCount(count++, modCount, pluralString);\r
+                               success &= mapping.invoke(description);\r
+                       }\r
+       \r
+                       // Commit transaction\r
+                       commitTransaction(txStatus);\r
+                       logger.info("End: Make " + pluralString + " ..." + getSuccessString(success));\r
+       \r
+                       return success;\r
+               } catch(SQLException e) {\r
+                       e.printStackTrace();\r
+                       logger.error(e.getMessage());\r
+                       return false;\r
+               }\r
+       }\r
+\r
+       /**\r
+        * Deletes all entries of database tables related to <code>Note</code>.\r
+        * @param state The PesiExportState\r
+        * @return Whether the delete operation was successful or not.\r
+        */\r
+       protected boolean doDelete(PesiExportState state) {\r
+               PesiExportConfigurator pesiConfig = (PesiExportConfigurator) state.getConfig();\r
+               \r
+               String sql;\r
+               Source destination =  pesiConfig.getDestination();\r
+\r
+               // Clear Note\r
+               sql = "DELETE FROM " + dbTableName;\r
+               destination.setQuery(sql);\r
+               destination.update(sql);\r
+               return true;\r
+       }\r
+\r
+       /* (non-Javadoc)\r
+        * @see eu.etaxonomy.cdm.io.common.CdmIoBase#isIgnore(eu.etaxonomy.cdm.io.common.IoStateBase)\r
+        */\r
+       @Override\r
+       protected boolean isIgnore(PesiExportState state) {\r
+               // TODO Auto-generated method stub\r
+               return false;\r
+       }\r
+\r
+       /**\r
+        * Returns the <code>Note_1</code> attribute.\r
+        * @param description The {@link DescriptionBase Description}.\r
+        * @return The <code>Note_1</code> attribute.\r
+        * @see MethodMapper\r
+        */\r
+       @SuppressWarnings("unused")\r
+       private static String getNote_1(DescriptionBase<?> description) {\r
+               // TODO\r
+               return null;\r
+       }\r
+\r
+       /**\r
+        * Returns the <code>Note_2</code> attribute.\r
+        * @param description The {@link DescriptionBase Description}.\r
+        * @return The <code>Note_2</code> attribute.\r
+        * @see MethodMapper\r
+        */\r
+       @SuppressWarnings("unused")\r
+       private static String getNote_2(DescriptionBase<?> description) {\r
+               // TODO\r
+               return null;\r
+       }\r
+\r
+       /**\r
+        * Returns the <code>NoteCategoryFk</code> attribute.\r
+        * @param description The {@link DescriptionBase Description}.\r
+        * @return The <code>NoteCategoryFk</code> attribute.\r
+        * @see MethodMapper\r
+        */\r
+       @SuppressWarnings("unused")\r
+       private static String getNoteCategoryFk(DescriptionBase<?> description) {\r
+               // TODO\r
+               return null;\r
+       }\r
+\r
+       /**\r
+        * Returns the <code>NoteCategoryCache</code> attribute.\r
+        * @param description The {@link DescriptionBase Description}.\r
+        * @return The <code>NoteCategoryCache</code> attribute.\r
+        * @see MethodMapper\r
+        */\r
+       @SuppressWarnings("unused")\r
+       private static String getNoteCategoryCache(DescriptionBase<?> description) {\r
+               // TODO\r
+               return null;\r
+       }\r
+\r
+       /**\r
+        * Returns the <code>LanguageFk</code> attribute.\r
+        * @param description The {@link DescriptionBase Description}.\r
+        * @return The <code>LanguageFk</code> attribute.\r
+        * @see MethodMapper\r
+        */\r
+       @SuppressWarnings("unused")\r
+       private static String getLanguageFk(DescriptionBase<?> description) {\r
+               // TODO\r
+               return null;\r
+       }\r
+\r
+       /**\r
+        * Returns the <code>LanguageCache</code> attribute.\r
+        * @param description The {@link DescriptionBase Description}.\r
+        * @return The <code>LanguageCache</code> attribute.\r
+        * @see MethodMapper\r
+        */\r
+       @SuppressWarnings("unused")\r
+       private static String getLanguageCache(DescriptionBase<?> description) {\r
+               // TODO\r
+               return null;\r
+       }\r
+\r
+       /**\r
+        * Returns the <code>Region</code> attribute.\r
+        * @param description The {@link DescriptionBase Description}.\r
+        * @return The <code>Region</code> attribute.\r
+        * @see MethodMapper\r
+        */\r
+       @SuppressWarnings("unused")\r
+       private static String getRegion(DescriptionBase<?> description) {\r
+               // TODO\r
+               return null;\r
+       }\r
+\r
+       /**\r
+        * Returns the <code>TaxonFk</code> attribute.\r
+        * @param description The {@link DescriptionBase Description}.\r
+        * @return The <code>TaxonFk</code> attribute.\r
+        * @see MethodMapper\r
+        */\r
+       @SuppressWarnings("unused")\r
+       private static String getTaxonFk(DescriptionBase<?> description) {\r
+               // TODO\r
+               return null;\r
+       }\r
+\r
+       /**\r
+        * Returns the <code>LastAction</code> attribute.\r
+        * @param description The {@link DescriptionBase Description}.\r
+        * @return The <code>LastAction</code> attribute.\r
+        * @see MethodMapper\r
+        */\r
+       @SuppressWarnings("unused")\r
+       private static String getLastAction(DescriptionBase<?> description) {\r
+               // TODO\r
+               return null;\r
+       }\r
+\r
+       /**\r
+        * Returns the CDM to PESI specific export mappings.\r
+        * @return The {@link PesiExportMapping PesiExportMapping}.\r
+        */\r
+       private PesiExportMapping getMapping() {\r
+               PesiExportMapping mapping = new PesiExportMapping(dbTableName);\r
+               \r
+//             mapping.addMapper(IdMapper.NewInstance("NoteId"));\r
+               mapping.addMapper(MethodMapper.NewInstance("Note_1", this));\r
+               mapping.addMapper(MethodMapper.NewInstance("Note_2", this));\r
+               mapping.addMapper(MethodMapper.NewInstance("NoteCategoryFk", this));\r
+               mapping.addMapper(MethodMapper.NewInstance("NoteCategoryCache", this));\r
+               mapping.addMapper(MethodMapper.NewInstance("LanguageFk", this));\r
+               mapping.addMapper(MethodMapper.NewInstance("LanguageCache", this));\r
+               mapping.addMapper(MethodMapper.NewInstance("Region", this));\r
+               mapping.addMapper(MethodMapper.NewInstance("TaxonFk", this));\r
+               mapping.addMapper(MethodMapper.NewInstance("LastAction", this));\r
+               mapping.addMapper(DbTimePeriodMapper.NewInstance("updated", "LastActionDate"));\r
+\r
+               return mapping;\r
+       }\r
+\r
+}\r