minor
[cdmlib.git] / cdmlib-persistence / src / main / java / eu / etaxonomy / cdm / database / update / SchemaUpdaterStepBase.java
index ae4a53b19d4d460a91e55fb58d992881f573e6ee..dd265798f94a4ed0d969abfef70f7b0a3a971ef2 100644 (file)
@@ -9,23 +9,29 @@
 */\r
 package eu.etaxonomy.cdm.database.update;\r
 \r
+import java.sql.ResultSet;\r
 import java.sql.SQLException;\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+import java.util.UUID;\r
 \r
+import org.apache.commons.lang.StringUtils;\r
 import org.apache.log4j.Logger;\r
 \r
-import eu.etaxonomy.cdm.common.IProgressMonitor;\r
+import eu.etaxonomy.cdm.common.monitor.IProgressMonitor;\r
 import eu.etaxonomy.cdm.database.DatabaseTypeEnum;\r
 import eu.etaxonomy.cdm.database.ICdmDataSource;\r
+import eu.etaxonomy.cdm.model.common.Language;\r
 \r
 /**\r
  * @author a.mueller\r
  * @date 13.09.2010\r
  *\r
  */\r
-public abstract class SchemaUpdaterStepBase implements ISchemaUpdaterStep {\r
+public abstract class SchemaUpdaterStepBase<T extends SchemaUpdaterStepBase<T>> implements ISchemaUpdaterStep {\r
        private static final Logger logger = Logger.getLogger(SchemaUpdaterStepBase.class);\r
        \r
-       private String stepName;\r
+       protected String stepName;\r
                \r
        \r
 //************************ CONSTRUCTOR ***********************************/\r
@@ -73,7 +79,44 @@ public abstract class SchemaUpdaterStepBase implements ISchemaUpdaterStep {
                }\r
                return result;\r
        }\r
+       \r
+       protected Integer getEnglishLanguageId(ICdmDataSource datasource, IProgressMonitor monitor) throws SQLException {\r
+               return getLanguageId(Language.uuidEnglish, datasource, monitor);\r
+       }\r
+\r
+       /**\r
+        * @param uuidLanguage\r
+        * @param datasource\r
+        * @param monitor\r
+        * @return\r
+        * @throws SQLException\r
+        */\r
+       protected Integer getLanguageId(UUID uuidLanguage, ICdmDataSource datasource, IProgressMonitor monitor) throws SQLException {\r
+               ResultSet rs;\r
+               Integer langId = null;\r
+               String sqlLangId = " SELECT id FROM DefinedTermBase WHERE uuid = '" + uuidLanguage + "'";\r
+               rs = datasource.executeQuery(sqlLangId);\r
+               if (rs.next()){\r
+                       langId = rs.getInt("id");\r
+               }else{\r
+                       String warning = "Term for language (" +  uuidLanguage + ") does not exist!";\r
+                       monitor.warning(warning);\r
+               }\r
+               return langId;\r
+       }\r
 \r
        \r
+       public List<ISchemaUpdaterStep> getInnerSteps(){\r
+               return new ArrayList<ISchemaUpdaterStep>();\r
+       }\r
+\r
+       @Override\r
+       public String toString(){\r
+               if (StringUtils.isNotBlank(stepName)){\r
+                       return stepName;\r
+               }else{\r
+                       return super.toString();\r
+               }\r
+       }\r
        \r
 }\r