schema update framework
[cdmlib.git] / cdmlib-persistence / src / main / java / eu / etaxonomy / cdm / database / update / CdmUpdater.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 org.apache.log4j.Logger;
13
14 import eu.etaxonomy.cdm.common.IProgressMonitor;
15 import eu.etaxonomy.cdm.database.ICdmDataSource;
16
17 /**
18 * @author a.mueller
19 * @date 10.09.2010
20 *
21 */
22 public class CdmUpdater {
23 private static final Logger logger = Logger.getLogger(CdmUpdater.class);
24
25 /**
26 *
27 * @return
28 */
29 public boolean updateToCurrentVersion(ICdmDataSource datasource, IProgressMonitor monitor){
30 boolean result = true;
31 ISchemaUpdater currentSchemaUpdater = getCurrentSchemaUpdater();
32 ITermUpdater currentTermUpdater = getCurrentTermUpdater();
33
34 int steps = currentSchemaUpdater.countSteps(datasource);
35 steps += currentTermUpdater.countSteps(datasource);
36
37 String taskName = "Update to schema version ... and to term version ... "; //+ currentSchemaUpdater.getVersion();
38 monitor.beginTask(taskName, steps);
39
40 result &= currentSchemaUpdater.invoke(datasource, monitor);
41
42 result &= currentTermUpdater.invoke(datasource, monitor);
43
44
45 return result;
46 }
47
48 private ITermUpdater getCurrentTermUpdater() {
49 return TermUpdater_3_0.NewInstance();
50 }
51
52 /**
53 * Returns the current CDM updater
54 * @return
55 */
56 private ISchemaUpdater getCurrentSchemaUpdater() {
57 return SchemaUpdater_3_0.NewInstance();
58 }
59
60
61 // 5432
62 /**
63 * @param args
64 */
65 public static void main(String[] args) {
66 logger.warn("main method not yet implemented");
67 CdmUpdater myUpdater = new CdmUpdater();
68 // myUpdater.updateToCurrentVersion(datasource, monitor);
69 }
70
71 }