2 * Copyright (C) 2007 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
9 package eu
.etaxonomy
.cdm
.database
.update
.v515_518
;
11 import java
.util
.ArrayList
;
12 import java
.util
.List
;
14 import org
.apache
.log4j
.Logger
;
16 import eu
.etaxonomy
.cdm
.database
.update
.ISchemaUpdater
;
17 import eu
.etaxonomy
.cdm
.database
.update
.ISchemaUpdaterStep
;
18 import eu
.etaxonomy
.cdm
.database
.update
.SchemaUpdaterBase
;
19 import eu
.etaxonomy
.cdm
.database
.update
.SimpleSchemaUpdaterStep
;
20 import eu
.etaxonomy
.cdm
.database
.update
.SingleTermRemover
;
21 import eu
.etaxonomy
.cdm
.model
.metadata
.CdmMetaData
.CdmVersion
;
27 public class SchemaUpdater_5185_5186
extends SchemaUpdaterBase
{
29 @SuppressWarnings("unused")
30 private static final Logger logger
= Logger
.getLogger(SchemaUpdater_5185_5186
.class);
32 private static final CdmVersion startSchemaVersion
= CdmVersion
.V_05_18_05
;
34 private static final CdmVersion endSchemaVersion
= CdmVersion
.V_05_18_05
;
36 // ********************** FACTORY METHOD *************************************
38 public static SchemaUpdater_5185_5186
NewInstance() {
39 return new SchemaUpdater_5185_5186();
42 protected SchemaUpdater_5185_5186() {
43 super(startSchemaVersion
.versionString(), endSchemaVersion
.versionString());
47 protected List
<ISchemaUpdaterStep
> getUpdaterList() {
49 List
<ISchemaUpdaterStep
> stepList
= new ArrayList
<>();
51 adaptNomenclaturalStanding(stepList
);
53 //#9322 remove Invalid Designation taxon relationship
54 String stepName
= "remove invalid designation taxon relationship type";
55 String uuidTerm
= "605b1d01-f2b1-4544-b2e0-6f08def3d6ed";
56 String checkUsedQueries
= "SELECT count(*) FROM @@TaxonRelationship@@ tr "
57 + " INNER JOIN @@DefinedTermBase@@ trType ON trType.id = tr.type_id "
58 + " WHERE trType.uuid = '605b1d01-f2b1-4544-b2e0-6f08def3d6ed'";
59 SingleTermRemover
.NewInstance(stepList
, stepName
, uuidTerm
, checkUsedQueries
, -99);
64 private void adaptNomenclaturalStanding(List
<ISchemaUpdaterStep
> stepList
) {
67 String stepName
= "Set nom status and name relationship types to OTHER DESIGNATIONS where appropriate";
68 String nonAuditedTableName
= "DefinedTermBase";
69 String defaultQuery
= "UPDATE @@DefinedTermBase@@ "
70 + " SET nomenclaturalStanding = 'NO' "
72 + " '24955174-aa5c-4e71-a2fd-3efc79e885db'" //status nom. confus.
73 + " ,'90f5012b-705b-4488-b4c6-002d2bc5198e'" //status nom. ambig.
75 SimpleSchemaUpdaterStep
.NewAuditedInstance(stepList
, stepName
, defaultQuery
, nonAuditedTableName
, -99);
79 public ISchemaUpdater
getPreviousUpdater() {
80 return SchemaUpdater_5184_5185
.NewInstance();
84 public ISchemaUpdater
getNextUpdater() {