+// $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.database.update;\r
\r
import eu.etaxonomy.cdm.common.IProgressMonitor;\r
import eu.etaxonomy.cdm.database.ICdmDataSource;\r
\r
-public interface ISchemaUpdater {\r
+/**\r
+ * @author a.mueller\r
+ * @date 09.2010\r
+ *\r
+ */\r
+public interface ISchemaUpdater extends IUpdater<ISchemaUpdater>{\r
\r
/**\r
- * Invokes this CDM schema updater\r
+ * Invokes this CDM schema updater and updates the schema up to the current CDM\r
+ * schema version. Throws an exception if this updater's target version does\r
+ * not equal the current CDM schema version.\r
* @param datasource the datasource\r
* @param monitor the progress monitor and event listener\r
* @return\r
+ * @throws Exception \r
*/\r
- public boolean invoke(ICdmDataSource datasource, IProgressMonitor monitor);\r
+ public boolean invoke(ICdmDataSource datasource, IProgressMonitor monitor) throws Exception;\r
\r
- /**\r
- * Returns the previous CDM schema updater\r
- * @return\r
- */\r
- public ISchemaUpdater getPreviousUpdater();\r
\r
+ \r
/**\r
- * Returns the next CDM schema updater\r
+ * Invokes this CDM schema updater and updates the schema up to the given\r
+ * target version. Throws an exception if this updaters target version does\r
+ * not equal the given target version.\r
+ * @param targetVersion\r
+ * @param datasource the datasource\r
+ * @param monitor the progress monitor and event listener\r
* @return\r
+ * @throws Exception \r
*/\r
- public ISchemaUpdater getNextUpdater();\r
+ public boolean invoke(String targetVersion, ICdmDataSource datasource, IProgressMonitor monitor) throws Exception;\r
+\r
+ public String getTargetVersion();\r
\r
- /**\r
- * Returns the number of steps to run to update the datasource\r
- * to the schema this schema updater is updating to.\r
- * This includes needed steps in previous updaters.\r
- * @see #getPreviousUpdater()\r
- * @return number of steps\r
- */\r
- int countSteps(ICdmDataSource datasource);\r
- \r
}
\ No newline at end of file