fix #6200 Change order of NomenclaturalCodeUpdater and allowOverride adder to avoid...
authorAndreas Müller <a.mueller@bgbm.org>
Tue, 15 Nov 2016 11:23:18 +0000 (12:23 +0100)
committerAndreas Müller <a.mueller@bgbm.org>
Tue, 15 Nov 2016 11:23:18 +0000 (12:23 +0100)
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/metadata/CdmPreference.java
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/database/update/v40_41/NomenclaturalCodeUpdater.java
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/database/update/v40_41/SchemaUpdater_40_41.java

index af0ff7b28890d37d9a760aebb28cbb8baa1c6951..d6478b43983f00836bc87044fbcbabb0663dacee 100644 (file)
@@ -78,7 +78,8 @@ public final class CdmPreference implements Serializable {
        private String value;
 
     //if false, the preference should not be overridden by local preferences,
        private String value;
 
     //if false, the preference should not be overridden by local preferences,
-       //if false local preferences override database preferences
+       //if true existing local preferences override database preferences
+           //and the database preference only defines the default.
     private boolean allowOverride = false;
 
     @Embeddable
     private boolean allowOverride = false;
 
     @Embeddable
index b837d5ff1aecde3725649bd66e7b3a50c5845ce3..1fa9c0ac8a2c0b8d7a860b87d1ab9866bc2e9bc2 100644 (file)
@@ -50,6 +50,13 @@ public class NomenclaturalCodeUpdater extends SchemaUpdaterStepBase<Nomenclatura
        @Override
        public Integer invoke(ICdmDataSource datasource, IProgressMonitor monitor, CaseType caseType) throws SQLException {
 
        @Override
        public Integer invoke(ICdmDataSource datasource, IProgressMonitor monitor, CaseType caseType) throws SQLException {
 
+           String existsSql = " SELECT count(*) FROM @@CdmPreference@@ "
+                   + " WHERE key_predicate = 'model.name.NC' AND key_subject = '/'";
+           existsSql = caseType.replaceTableNames(existsSql);
+           if (((Number)datasource.getSingleValue(existsSql)).intValue() > 0 ){
+               return 0;
+           }
+
            String sql = "SELECT count(DTYPE) as n, DTYPE FROM @@TaxonNameBase@@ "
                    + " GROUP BY DTYPE ORDER BY count(DTYPE) DESC ";
            sql = caseType.replaceTableNames(sql);
            String sql = "SELECT count(DTYPE) as n, DTYPE FROM @@TaxonNameBase@@ "
                    + " GROUP BY DTYPE ORDER BY count(DTYPE) DESC ";
            sql = caseType.replaceTableNames(sql);
index b00c37bfa5346945fac2d1024ff178c117e41390..0072c9cc598de0416c4883ff2b3409674299cbc2 100644 (file)
@@ -67,6 +67,9 @@ public class SchemaUpdater_40_41 extends SchemaUpdaterBase {
                List<ISchemaUpdaterStep> stepList = new ArrayList<ISchemaUpdaterStep>();
 
 
                List<ISchemaUpdaterStep> stepList = new ArrayList<ISchemaUpdaterStep>();
 
 
+        //#3658 update nomenclatural code
+        NomenclaturalCodeUpdater.NewInstance(stepList);
+
         //#5970
         //Implement allowOverride in CdmPreference
         stepName = "Add allowOverride in CdmPreference";
         //#5970
         //Implement allowOverride in CdmPreference
         stepName = "Add allowOverride in CdmPreference";
@@ -247,8 +250,6 @@ public class SchemaUpdater_40_41 extends SchemaUpdaterBase {
         //#5974 Remove synonym relationships
         removeSynonymRelationships_5974(stepList);
 
         //#5974 Remove synonym relationships
         removeSynonymRelationships_5974(stepList);
 
-        //#3658 update nomenclatural code
-        NomenclaturalCodeUpdater.NewInstance(stepList);
 
         //#5981 Add abbreviation to Rank "Cultivar"
         stepName = "Add abbreviation to Rank 'Cultivar'";
 
         //#5981 Add abbreviation to Rank "Cultivar"
         stepName = "Add abbreviation to Rank 'Cultivar'";