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
;
25 import eu
.etaxonomy
.cdm
.database
.update
.v33_34
.SchemaUpdater_331_34
;
29 * @created Jan 14, 2014
31 public class SchemaUpdater_33_331
extends SchemaUpdaterBase
{
33 @SuppressWarnings("unused")
34 private static final Logger logger
= Logger
.getLogger(SchemaUpdater_33_331
.class);
35 private static final String startSchemaVersion
= "3.3.0.0.201309240000";
36 private static final String endSchemaVersion
= "3.3.1.0.201401140000";
38 // ********************** FACTORY METHOD
39 // *******************************************
41 public static SchemaUpdater_33_331
NewInstance() {
42 return new SchemaUpdater_33_331();
46 * @param startSchemaVersion
47 * @param endSchemaVersion
49 protected SchemaUpdater_33_331() {
50 super(startSchemaVersion
, endSchemaVersion
);
54 protected List
<ISchemaUpdaterStep
> getUpdaterList() {
58 ISchemaUpdaterStep step
;
61 List
<ISchemaUpdaterStep
> stepList
= new ArrayList
<ISchemaUpdaterStep
>();
63 //add rootnode column for classification
64 stepName
= "Add root node foreign key column to classification";
65 tableName
= "Classification";
66 columnName
= "rootnode_id";
67 String referencedTable
= "TaxonNode";
68 step
= ColumnAdder
.NewIntegerInstance(stepName
, tableName
, columnName
, INCLUDE_AUDIT
, false, referencedTable
);
71 //update rootnode data for classification
72 step
= ClassificationRootNodeUpdater
.NewInstance();
75 // update treeindex for taxon nodes
76 stepName
= "Update TaxonNode treeindex";
77 tableName
= "TaxonNode";
78 String treeIdColumnName
= "classification_id";
79 columnName
= "treeIndex";
80 step
= TreeIndexUpdater
.NewInstance(stepName
, tableName
,
81 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)
84 // Drop Classification_TaxonNode table
85 stepName
= "Drop Classification_TaxonNode table";
86 tableName
= "Classification_TaxonNode";
87 step
= TableDroper
.NewInstance(stepName
, tableName
, INCLUDE_AUDIT
);
90 //add rootnode column for classification
91 stepName
= "Add unknownData column to DescriptionElementBase";
92 tableName
= "DescriptionElementBase";
93 columnName
= "unknownData";
94 Boolean defaultValue
= null;
95 step
= ColumnAdder
.NewBooleanInstance(stepName
, tableName
, columnName
, INCLUDE_AUDIT
, defaultValue
);
98 //set default value to false where adaquate
99 stepName
= "Set unknownData to default value (false)";
100 String query
= " UPDATE @@DescriptionElementBase@@ " +
101 " SET unknownData = @FALSE@ " +
102 " WHERE DTYPE IN ('CategoricalData', 'QuantitativeData') ";
103 step
= SimpleSchemaUpdaterStep
.NewAuditedInstance(stepName
, query
, "DescriptionElementBase", 99);
112 public ISchemaUpdater
getNextUpdater() {
113 return SchemaUpdater_331_34
.NewInstance();
117 public ISchemaUpdater
getPreviousUpdater() {
118 return SchemaUpdater_31_33
.NewInstance();