3 * Copyright (C) 2009 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
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.
10 package eu
.etaxonomy
.cdm
.database
.update
;
12 import org
.apache
.log4j
.Logger
;
14 import eu
.etaxonomy
.cdm
.common
.IProgressMonitor
;
15 import eu
.etaxonomy
.cdm
.database
.ICdmDataSource
;
22 public class CdmUpdater
{
23 private static final Logger logger
= Logger
.getLogger(CdmUpdater
.class);
29 public boolean updateToCurrentVersion(ICdmDataSource datasource
, IProgressMonitor monitor
){
30 boolean result
= true;
31 ISchemaUpdater currentSchemaUpdater
= getCurrentSchemaUpdater();
32 ITermUpdater currentTermUpdater
= getCurrentTermUpdater();
34 int steps
= currentSchemaUpdater
.countSteps(datasource
);
35 steps
+= currentTermUpdater
.countSteps(datasource
);
37 String taskName
= "Update to schema version ... and to term version ... "; //+ currentSchemaUpdater.getVersion();
38 monitor
.beginTask(taskName
, steps
);
40 result
&= currentSchemaUpdater
.invoke(datasource
, monitor
);
42 result
&= currentTermUpdater
.invoke(datasource
, monitor
);
48 private ITermUpdater
getCurrentTermUpdater() {
49 return TermUpdater_3_0
.NewInstance();
53 * Returns the current CDM updater
56 private ISchemaUpdater
getCurrentSchemaUpdater() {
57 return SchemaUpdater_3_0
.NewInstance();
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);