include more auditing in schema update and refactor to better allow transaction suppo...
[cdmlib.git] / cdmlib-persistence / src / main / java / eu / etaxonomy / cdm / database / update / UniqueIndexDropper.java
index 29f6812b7f7c489a441501c081526d028a880e0c..5832b81eac49ef214aa13523b298e12d024a51e4 100644 (file)
@@ -22,12 +22,10 @@ import eu.etaxonomy.cdm.database.ICdmDataSource;
  * @date 16.09.2010\r
  *\r
  */\r
-public class UniqueIndexDropper extends SchemaUpdaterStepBase<UniqueIndexDropper> implements ISchemaUpdaterStep {\r
+public class UniqueIndexDropper extends AuditedSchemaUpdaterStepBase<UniqueIndexDropper> implements ISchemaUpdaterStep {\r
        private static final Logger logger = Logger.getLogger(UniqueIndexDropper.class);\r
        \r
-       private String tableName;\r
        private String indexColumn;\r
-       private boolean includeAudTable;\r
        \r
        public static final UniqueIndexDropper NewInstance(String tableName, String indexColumn, boolean includeAudTable){\r
                String stepName = "Drop index " + tableName + "-" + indexColumn;\r
@@ -42,32 +40,16 @@ public class UniqueIndexDropper extends SchemaUpdaterStepBase<UniqueIndexDropper
                this.includeAudTable = includeAudTable;\r
        }\r
 \r
-       /* (non-Javadoc)\r
-        * @see eu.etaxonomy.cdm.database.update.SchemaUpdaterStepBase#invoke(eu.etaxonomy.cdm.database.ICdmDataSource, eu.etaxonomy.cdm.common.IProgressMonitor)\r
-        */\r
        @Override\r
-       public Integer invoke(ICdmDataSource datasource, IProgressMonitor monitor) throws SQLException {\r
-               boolean result = true;\r
-               result &= dropIndex(tableName, datasource, monitor);\r
-               if (includeAudTable){\r
-                       String aud = "_AUD";\r
-                       result &= dropIndex(tableName + aud, datasource, monitor);\r
-               }\r
-               return (result == true )? 0 : null;\r
-       }\r
-\r
-       private boolean dropIndex(String tableName, ICdmDataSource datasource, IProgressMonitor monitor) {\r
+       protected boolean invokeOnTable(String tableName, ICdmDataSource datasource, IProgressMonitor monitor) {\r
                try {\r
                        if (checkExists(datasource)){\r
                                String updateQuery = getUpdateQueryString(tableName, datasource, monitor);\r
                                datasource.executeUpdate(updateQuery);\r
                        }\r
                        return true;\r
-               } catch ( DatabaseTypeNotSupportedException e) {\r
-                       e.printStackTrace();\r
-                       return false;\r
-               } catch ( SQLException e) {\r
-                       e.printStackTrace();\r
+               } catch ( Exception e) {\r
+                       monitor.warning(e.getMessage(), e);\r
                        return false;\r
                }\r
        }\r