Project

General

Profile

Download (3.74 KB) Statistics
| Branch: | Tag: | Revision:
1
// $Id$
2
/**
3
 * Copyright (C) 2007 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

    
11
package eu.etaxonomy.cdm.database.update.v31_33;
12

    
13
import java.util.ArrayList;
14
import java.util.List;
15

    
16
import org.apache.log4j.Logger;
17

    
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

    
26
/**
27
 * @author a.mueller
28
 * @created Jan 14, 2014
29
 */
30
public class SchemaUpdater_33_331 extends SchemaUpdaterBase {
31

    
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";
36

    
37
	// ********************** FACTORY METHOD
38
	// *******************************************
39

    
40
	public static SchemaUpdater_33_331 NewInstance() {
41
		return new SchemaUpdater_33_331();
42
	}
43

    
44
	/**
45
	 * @param startSchemaVersion
46
	 * @param endSchemaVersion
47
	 */
48
	protected SchemaUpdater_33_331() {
49
		super(startSchemaVersion, endSchemaVersion);
50
	}
51

    
52
	@Override
53
	protected List<ISchemaUpdaterStep> getUpdaterList() {
54

    
55
		String stepName;
56
		String tableName;
57
		ISchemaUpdaterStep step;
58
		String columnName;
59

    
60
		List<ISchemaUpdaterStep> stepList = new ArrayList<ISchemaUpdaterStep>();
61

    
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);
68
		stepList.add(step);
69
		
70
		//update rootnode data for classification
71
		step = ClassificationRootNodeUpdater.NewInstance();
72
		stepList.add(step);
73
		
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)
81
		stepList.add(step);
82
		
83
		// Drop Classification_TaxonNode table
84
		stepName = "Drop Classification_TaxonNode table";
85
		tableName = "Classification_TaxonNode";
86
		step = TableDroper.NewInstance(stepName, tableName, INCLUDE_AUDIT);
87
		stepList.add(step);
88
		
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);
95
		stepList.add(step);
96
			
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);
103
		stepList.add(step);
104
		
105
		
106
		return stepList;
107

    
108
	}
109

    
110
	@Override
111
	public ISchemaUpdater getNextUpdater() {
112
		return null;
113
	}
114

    
115
	@Override
116
	public ISchemaUpdater getPreviousUpdater() {
117
		return SchemaUpdater_31_33.NewInstance();
118
	}
119

    
120
}
(4-4/7)