switch back to MyISAM as InnoDB still creates a couple of problems. #3371
[cdmlib.git] / cdmlib-persistence / src / main / java / eu / etaxonomy / cdm / database / update / ISchemaUpdater.java
1 // $Id$
2 /**
3 * Copyright (C) 2009 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
6 *
7 * The contents of this file are subject to the Mozilla Public License Version 1.1
8 * See LICENSE.TXT at the top of this package for the full license terms.
9 */
10 package eu.etaxonomy.cdm.database.update;
11
12 import eu.etaxonomy.cdm.common.monitor.IProgressMonitor;
13 import eu.etaxonomy.cdm.database.ICdmDataSource;
14
15 /**
16 * @author a.mueller
17 * @date 09.2010
18 *
19 */
20 public interface ISchemaUpdater extends IUpdater<ISchemaUpdater>{
21
22 /**
23 * Invokes this CDM schema updater and updates the schema up to the current CDM
24 * schema version. Throws an exception if this updater's target version does
25 * not equal the current CDM schema version.
26 * @param datasource the datasource
27 * @param monitor the progress monitor and event listener
28 * @return
29 * @throws Exception
30 */
31 public boolean invoke(ICdmDataSource datasource, IProgressMonitor monitor) throws Exception;
32
33
34
35 /**
36 * Invokes this CDM schema updater and updates the schema up to the given
37 * target version. Throws an exception if this updaters target version does
38 * not equal the given target version.
39 * @param targetVersion
40 * @param datasource the datasource
41 * @param monitor the progress monitor and event listener
42 * @return
43 * @throws Exception
44 */
45 public boolean invoke(String targetVersion, ICdmDataSource datasource, IProgressMonitor monitor) throws Exception;
46
47 public String getTargetVersion();
48
49 }