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 java
.util
.HashMap
;
15 import org
.apache
.log4j
.Logger
;
17 import eu
.etaxonomy
.cdm
.common
.IProgressMonitor
;
18 import eu
.etaxonomy
.cdm
.database
.DatabaseTypeEnum
;
19 import eu
.etaxonomy
.cdm
.database
.ICdmDataSource
;
22 * This class represents one step in a schema update.
27 public class SimpleSchemaUpdaterStep
extends SchemaUpdaterStepBase
implements ISchemaUpdaterStep
, ITermUpdaterStep
{
28 @SuppressWarnings("unused")
29 private static final Logger logger
= Logger
.getLogger(SimpleSchemaUpdaterStep
.class);
31 private Map
<DatabaseTypeEnum
, String
> queryMap
= new HashMap
<DatabaseTypeEnum
, String
>();
34 // *************************** FACTORY ********************************/
36 public static SimpleSchemaUpdaterStep
NewInstance(String stepName
, String defaultQuery
){
37 return new SimpleSchemaUpdaterStep(stepName
, defaultQuery
);
40 //************************ CONSTRUCTOR ***********************************/
41 private SimpleSchemaUpdaterStep(String stepName
, String defaultQuery
){
43 queryMap
.put(null, defaultQuery
);
46 // *************************** INVOKE *****************************
49 * @see eu.etaxonomy.cdm.database.update.SchemaUpdaterStepBase#invoke(eu.etaxonomy.cdm.database.ICdmDataSource, eu.etaxonomy.cdm.common.IProgressMonitor)
51 public Integer
invoke (ICdmDataSource datasource
, IProgressMonitor monitor
){
52 boolean result
= true;
53 String query
= queryMap
.get(datasource
.getDatabaseType());
55 query
= queryMap
.get(null);
57 datasource
.executeUpdate(query
);
58 return (result
== true )?
0 : null;
61 //********************************* DELEGATES *********************************/
63 public String
put(DatabaseTypeEnum dbType
, String query
) {
64 return queryMap
.put(dbType
, query
);