3 * Copyright (C) 2007 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.
11 package eu
.etaxonomy
.cdm
.database
.update
.v31_33
;
13 import java
.util
.ArrayList
;
14 import java
.util
.List
;
16 import org
.apache
.log4j
.Logger
;
18 import eu
.etaxonomy
.cdm
.database
.update
.ColumnAdder
;
19 import eu
.etaxonomy
.cdm
.database
.update
.ISchemaUpdater
;
20 import eu
.etaxonomy
.cdm
.database
.update
.ISchemaUpdaterStep
;
21 import eu
.etaxonomy
.cdm
.database
.update
.SchemaUpdaterBase
;
22 import eu
.etaxonomy
.cdm
.database
.update
.SimpleSchemaUpdaterStep
;
23 import eu
.etaxonomy
.cdm
.database
.update
.TableDroper
;
24 import eu
.etaxonomy
.cdm
.database
.update
.TreeIndexUpdater
;
28 * @created Jan 14, 2014
30 public class SchemaUpdater_33_331
extends SchemaUpdaterBase
{
32 @SuppressWarnings("unused")
33 private static final Logger logger
= Logger
.getLogger(SchemaUpdater_33_331
.class);
34 private static final String startSchemaVersion
= "3.3.0.0.201309240000";
35 private static final String endSchemaVersion
= "3.3.1.0.201401140000";
37 // ********************** FACTORY METHOD
38 // *******************************************
40 public static SchemaUpdater_33_331
NewInstance() {
41 return new SchemaUpdater_33_331();
45 * @param startSchemaVersion
46 * @param endSchemaVersion
48 protected SchemaUpdater_33_331() {
49 super(startSchemaVersion
, endSchemaVersion
);
53 protected List
<ISchemaUpdaterStep
> getUpdaterList() {
57 ISchemaUpdaterStep step
;
60 List
<ISchemaUpdaterStep
> stepList
= new ArrayList
<ISchemaUpdaterStep
>();
62 //add rootnode column for classification
63 stepName
= "Add root node foreign key column to classification";
64 tableName
= "Classification";
65 columnName
= "rootnode_id";
66 String referencedTable
= "TaxonNode";
67 step
= ColumnAdder
.NewIntegerInstance(stepName
, tableName
, columnName
, INCLUDE_AUDIT
, false, referencedTable
);
70 //update rootnode data for classification
71 step
= ClassificationRootNodeUpdater
.NewInstance();
74 // update treeindex for taxon nodes
75 stepName
= "Update TaxonNode treeindex";
76 tableName
= "TaxonNode";
77 String treeIdColumnName
= "classification_id";
78 columnName
= "treeIndex";
79 step
= TreeIndexUpdater
.NewInstance(stepName
, tableName
,
80 treeIdColumnName
, columnName
, ! INCLUDE_AUDIT
); //update does no yet wok for ANSI SQL (e.g. PosGres / H2 with multiple entries for same id in AUD table)
83 // Drop Classification_TaxonNode table
84 stepName
= "Drop Classification_TaxonNode table";
85 tableName
= "Classification_TaxonNode";
86 step
= TableDroper
.NewInstance(stepName
, tableName
, INCLUDE_AUDIT
);
89 //add rootnode column for classification
90 stepName
= "Add unknownData column to DescriptionElementBase";
91 tableName
= "DescriptionElementBase";
92 columnName
= "unknownData";
93 Boolean defaultValue
= null;
94 step
= ColumnAdder
.NewBooleanInstance(stepName
, tableName
, columnName
, INCLUDE_AUDIT
, defaultValue
);
97 //set default value to false where adaquate
98 stepName
= "Set unknownData to default value (false)";
99 String query
= " UPDATE @@DescriptionElementBase@@ " +
100 " SET unknownData = @FALSE@ " +
101 " WHERE DTYPE IN ('CategoricalData', 'QuantitativeData') ";
102 step
= SimpleSchemaUpdaterStep
.NewAuditedInstance(stepName
, query
, "DescriptionElementBase", 99);
111 public ISchemaUpdater
getNextUpdater() {
116 public ISchemaUpdater
getPreviousUpdater() {
117 return SchemaUpdater_31_33
.NewInstance();