-// $Id$\r
-/**\r
-* Copyright (C) 2007 EDIT\r
-* European Distributed Institute of Taxonomy \r
-* http://www.e-taxonomy.eu\r
-* \r
-* The contents of this file are subject to the Mozilla Public License Version 1.1\r
-* See LICENSE.TXT at the top of this package for the full license terms.\r
-*/\r
-\r
-package eu.etaxonomy.cdm.model.metadata;\r
-\r
-import java.util.ArrayList;\r
-import java.util.Comparator;\r
-import java.util.List;\r
-\r
-import javax.persistence.Entity;\r
-\r
-import org.apache.log4j.Logger;\r
-import org.joda.time.DateTime;\r
-\r
-import eu.etaxonomy.cdm.common.monitor.IProgressMonitor;\r
-import eu.etaxonomy.cdm.model.common.CdmBase;\r
-\r
-/**\r
- * @author a.mueller\r
- * @created 07.09.2009\r
- */\r
-@Entity\r
-public class CdmMetaData extends CdmBase{\r
- private static final long serialVersionUID = -3033376680593279078L;\r
- @SuppressWarnings("unused")\r
- private static final Logger logger = Logger.getLogger(CdmMetaData.class);\r
-\r
- /* It is a little bit confusing that this specific information is located in\r
- * a generic class for metadata. Think about moving the schema version \r
- * \r
- */\r
- /**\r
- * The database schema version number.\r
- * It is recommended to have the first two numbers equal to the CDM Library version number.\r
- * But it is not obligatory as there may be cases when the library number changes but the\r
- * schema version is not changing.\r
- * The third should be incremented if the schema changes in a way that SCHEMA_VALIDATION.UPDATE\r
- * will probably not work or will not be enough to transform old data into new data.\r
- * The fourth number should be incremented when minor schema changes take place that can\r
- * be handled by SCHEMA_VALIDATION.UPDATE\r
- * The last number represents the date of change.\r
- */\r
- private static final String dbSchemaVersion = "3.6.0.0.201527040000";\r
-// private static final String dbSchemaVersion = "3.4.1.0.201411210000";\r
-// private static final String dbSchemaVersion = "3.5.0.0.201531030000";\r
- \r
-\r
- \r
- \r
-\r
- /**\r
- * @return a list of default metadata objects \r
- */\r
- public static final List<CdmMetaData> defaultMetaData(){\r
- List<CdmMetaData> result = new ArrayList<CdmMetaData>();\r
- // schema version\r
- result.add(new CdmMetaData(MetaDataPropertyName.DB_SCHEMA_VERSION, dbSchemaVersion));\r
- //term version\r
- result.add(new CdmMetaData(MetaDataPropertyName.TERMS_VERSION, termsVersion));\r
- // database create time\r
- result.add(new CdmMetaData(MetaDataPropertyName.DB_CREATE_DATE, new DateTime().toString()));\r
- return result; \r
- }\r
- \r
- /**\r
- * The version number for the terms loaded by the termloader (csv-files)\r
- * It is recommended to have the first two numbers equal to the CDM Library version number.\r
- * \r
- * But it is not obligatory as there may be cases when the library number changes but the\r
- * schema version is not changing.\r
- * \r
- * The third should be incremented if the terms change in a way that is not compatible\r
- * to the previous version (e.g. by changing the type of a term)\r
- * \r
- * The fourth number should be incremented when compatible term changes take place\r
- * (e.g. when new terms were added)\r
- * \r
- * The last number represents the date of change.\r
- */\r
- private static final String termsVersion = "3.6.0.0.201527040000";\r
-// private static final String termsVersion = "3.5.0.0.201531030000";\r
- \r
- \r
- public enum MetaDataPropertyName{\r
- DB_SCHEMA_VERSION,\r
- TERMS_VERSION,\r
- DB_CREATE_DATE,\r
- DB_CREATE_NOTE;\r
- \r
- public String getSqlQuery(){\r
- return "SELECT value FROM CdmMetaData WHERE propertyname=" + this.ordinal();\r
- }\r
- }\r
- \r
- /* END OF CONFUSION */\r
- private MetaDataPropertyName propertyName;\r
- private String value;\r
-\r
- \r
- /**\r
- * Method to retrieve a CDM Libraries meta data\r
- * @return\r
- */\r
- public static final List<CdmMetaData> propertyList(){\r
- List<CdmMetaData> result = new ArrayList<CdmMetaData>();\r
- result.add(new CdmMetaData(MetaDataPropertyName.DB_SCHEMA_VERSION, dbSchemaVersion));\r
- result.add(new CdmMetaData(MetaDataPropertyName.TERMS_VERSION, termsVersion));\r
- result.add(new CdmMetaData(MetaDataPropertyName.DB_CREATE_DATE, new DateTime().toString()));\r
- return result;\r
- }\r
-\r
-//********************* Constructor *********************************************/ \r
-\r
- /**\r
- * Simple constructor to be used by Spring\r
- */\r
- protected CdmMetaData(){\r
- super();\r
- }\r
-\r
- public CdmMetaData(MetaDataPropertyName propertyName, String value) {\r
- super();\r
- this.propertyName = propertyName;\r
- this.value = value;\r
- }\r
-\r
-//****************** instance methods ****************************************/ \r
- \r
- /**\r
- * @return the propertyName\r
- */\r
- public MetaDataPropertyName getPropertyName() {\r
- return propertyName;\r
- }\r
-\r
- /**\r
- * @param propertyName the propertyName to set\r
- */\r
- public void setPropertyName(MetaDataPropertyName propertyName) {\r
- this.propertyName = propertyName;\r
- }\r
-\r
- /**\r
- * @return the value\r
- */\r
- public String getValue() {\r
- return value;\r
- }\r
-\r
- /**\r
- * @param value the value to set\r
- */\r
- public void setValue(String value) {\r
- this.value = value;\r
- }\r
-\r
-//******************** Version comparator **********************************/\r
- \r
- public static class VersionComparator implements Comparator<String>{\r
- Integer depth;\r
- IProgressMonitor monitor;\r
- \r
- public VersionComparator(Integer depth, IProgressMonitor monitor){\r
- this.depth = depth;\r
- this.monitor = monitor;\r
- }\r
- \r
- /* (non-Javadoc)\r
- * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)\r
- */\r
- public int compare(String version1, String version2) {\r
- int result = 0;\r
- String[] version1Split = version1.split("\\.");\r
- String[] version2Split = version2.split("\\.");\r
- \r
- if(version1Split.length == 1 || version2Split.length == 1){\r
- throwException("Tried to compare version but given Strings don't seem to " +\r
- "contain version numbers. version1: " + version1 + ", version2:" + version2); \r
- }\r
- \r
- if(depth != null && (version1Split.length < depth || version2Split.length < depth )){\r
- throwException("Desired depth can not be achieved with the given strings. depth: " + depth + ", version1: " + version1 + ", version2:" + version2); \r
- } \r
- \r
- int length = (depth == null ||version1Split.length < depth) ? version1Split.length : depth;\r
- for (int i = 0; i < length; i++){\r
- Long version1Part = Long.valueOf(version1Split[i]);\r
- Long version2Part = Long.valueOf(version2Split[i]);\r
- int partCompare = version1Part.compareTo(version2Part);\r
- if (partCompare != 0){\r
- return partCompare;\r
- }\r
- }\r
- return result;\r
- }\r
- \r
- private Throwable throwException(String message){\r
- RuntimeException exception = new RuntimeException(message);\r
- if (monitor != null){\r
- monitor.warning(message, exception);\r
- }\r
- throw exception;\r
- }\r
- \r
- }\r
-\r
- /**\r
- * Compares two version string. If version1 is higher than version2 a positive result is returned.\r
- * If both are equal 0 is returned, otherwise -1 is returned.\r
- * @see Comparator#compare(Object, Object)\r
- * @param version1\r
- * @param version2\r
- * @param depth\r
- * @param monitor\r
- * @return\r
- */\r
- public static int compareVersion(String version1, String version2, Integer depth, IProgressMonitor monitor){\r
- VersionComparator versionComparator = new VersionComparator(depth, monitor);\r
- return versionComparator.compare(version1, version2);\r
- }\r
- \r
- public static boolean isDbSchemaVersionCompatible(String version){\r
- return compareVersion(dbSchemaVersion, version, 3, null) == 0;\r
- }\r
-\r
- public static String getDbSchemaVersion() {\r
- return dbSchemaVersion;\r
- }\r
- \r
- public static String getTermsVersion() {\r
- return termsVersion;\r
- }\r
-\r
- public static boolean isTermsVersionCompatible(String version){\r
- return compareVersion(termsVersion, version, 3, null) == 0;\r
- }\r
- \r
-}\r
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.cdm.model.metadata;
+
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.List;
+
+import javax.persistence.Entity;
+
+import org.apache.log4j.Logger;
+import org.joda.time.DateTime;
+
+import eu.etaxonomy.cdm.common.monitor.IProgressMonitor;
+import eu.etaxonomy.cdm.model.common.CdmBase;
+
+/**
+ * @author a.mueller
+ * @created 07.09.2009
+ */
+@Entity
+public class CdmMetaData extends CdmBase{
+ private static final long serialVersionUID = -3033376680593279078L;
+ @SuppressWarnings("unused")
+ private static final Logger logger = Logger.getLogger(CdmMetaData.class);
+
+ /* It is a little bit confusing that this specific information is located in
+ * a generic class for metadata. Think about moving the schema version
+ *
+ */
+ /**
+ * The database schema version number.
+ * It is recommended to have the first two numbers equal to the CDM Library version number.
+ * But it is not obligatory as there may be cases when the library number changes but the
+ * schema version is not changing.
+ * The third should be incremented if the schema changes in a way that SCHEMA_VALIDATION.UPDATE
+ * will probably not work or will not be enough to transform old data into new data.
+ * The fourth number should be incremented when minor schema changes take place that can
+ * be handled by SCHEMA_VALIDATION.UPDATE
+ * The last number represents the date of change.
+ */
+// private static final String dbSchemaVersion = "3.6.0.0.201527040000";
+ private static final String dbSchemaVersion = "4.0.0.0.201604200000";
+// private static final String dbSchemaVersion = "3.5.0.0.201531030000";
+
+
+
+
+
+ /**
+ * @return a list of default metadata objects
+ */
+ public static final List<CdmMetaData> defaultMetaData(){
+ List<CdmMetaData> result = new ArrayList<CdmMetaData>();
+ // schema version
+ result.add(new CdmMetaData(MetaDataPropertyName.DB_SCHEMA_VERSION, dbSchemaVersion));
+ //term version
+ result.add(new CdmMetaData(MetaDataPropertyName.TERMS_VERSION, termsVersion));
+ // database create time
+ result.add(new CdmMetaData(MetaDataPropertyName.DB_CREATE_DATE, new DateTime().toString()));
+ return result;
+ }
+
+ /**
+ * The version number for the terms loaded by the termloader (csv-files)
+ * It is recommended to have the first two numbers equal to the CDM Library version number.
+ *
+ * But it is not obligatory as there may be cases when the library number changes but the
+ * schema version is not changing.
+ *
+ * The third should be incremented if the terms change in a way that is not compatible
+ * to the previous version (e.g. by changing the type of a term)
+ *
+ * The fourth number should be incremented when compatible term changes take place
+ * (e.g. when new terms were added)
+ *
+ * The last number represents the date of change.
+ */
+// private static final String termsVersion = "3.6.0.0.201527040000";
+ private static final String termsVersion = "4.0.0.0.201604200000";
+
+
+ public enum MetaDataPropertyName{
+ DB_SCHEMA_VERSION,
+ TERMS_VERSION,
+ DB_CREATE_DATE,
+ DB_CREATE_NOTE;
+
+ public String getSqlQuery(){
+ return "SELECT value FROM CdmMetaData WHERE propertyname=" + this.ordinal();
+ }
+ }
+
+ /* END OF CONFUSION */
+ private MetaDataPropertyName propertyName;
+ private String value;
+
+
+ /**
+ * Method to retrieve a CDM Libraries meta data
+ * @return
+ */
+ public static final List<CdmMetaData> propertyList(){
+ List<CdmMetaData> result = new ArrayList<CdmMetaData>();
+ result.add(new CdmMetaData(MetaDataPropertyName.DB_SCHEMA_VERSION, dbSchemaVersion));
+ result.add(new CdmMetaData(MetaDataPropertyName.TERMS_VERSION, termsVersion));
+ result.add(new CdmMetaData(MetaDataPropertyName.DB_CREATE_DATE, new DateTime().toString()));
+ return result;
+ }
+
+//********************* Constructor *********************************************/
+
+ /**
+ * Simple constructor to be used by Spring
+ */
+ protected CdmMetaData(){
+ super();
+ }
+
+ public CdmMetaData(MetaDataPropertyName propertyName, String value) {
+ super();
+ this.propertyName = propertyName;
+ this.value = value;
+ }
+
+//****************** instance methods ****************************************/
+
+ /**
+ * @return the propertyName
+ */
+ public MetaDataPropertyName getPropertyName() {
+ return propertyName;
+ }
+
+ /**
+ * @param propertyName the propertyName to set
+ */
+ public void setPropertyName(MetaDataPropertyName propertyName) {
+ this.propertyName = propertyName;
+ }
+
+ /**
+ * @return the value
+ */
+ public String getValue() {
+ return value;
+ }
+
+ /**
+ * @param value the value to set
+ */
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+//******************** Version comparator **********************************/
+
+ public static class VersionComparator implements Comparator<String>{
+ Integer depth;
+ IProgressMonitor monitor;
+
+ public VersionComparator(Integer depth, IProgressMonitor monitor){
+ this.depth = depth;
+ this.monitor = monitor;
+ }
+
+ /* (non-Javadoc)
+ * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
+ */
+ @Override
+ public int compare(String version1, String version2) {
+ int result = 0;
+ String[] version1Split = version1.split("\\.");
+ String[] version2Split = version2.split("\\.");
+
+ if(version1Split.length == 1 || version2Split.length == 1){
+ throwException("Tried to compare version but given Strings don't seem to " +
+ "contain version numbers. version1: " + version1 + ", version2:" + version2);
+ }
+
+ if(depth != null && (version1Split.length < depth || version2Split.length < depth )){
+ throwException("Desired depth can not be achieved with the given strings. depth: " + depth + ", version1: " + version1 + ", version2:" + version2);
+ }
+
+ int length = (depth == null ||version1Split.length < depth) ? version1Split.length : depth;
+ for (int i = 0; i < length; i++){
+ Long version1Part = Long.valueOf(version1Split[i]);
+ Long version2Part = Long.valueOf(version2Split[i]);
+ int partCompare = version1Part.compareTo(version2Part);
+ if (partCompare != 0){
+ return partCompare;
+ }
+ }
+ return result;
+ }
+
+ private Throwable throwException(String message){
+ RuntimeException exception = new RuntimeException(message);
+ if (monitor != null){
+ monitor.warning(message, exception);
+ }
+ throw exception;
+ }
+
+ }
+
+ /**
+ * Compares two version string. If version1 is higher than version2 a positive result is returned.
+ * If both are equal 0 is returned, otherwise -1 is returned.
+ * @see Comparator#compare(Object, Object)
+ * @param version1
+ * @param version2
+ * @param depth
+ * @param monitor
+ * @return
+ */
+ public static int compareVersion(String version1, String version2, Integer depth, IProgressMonitor monitor){
+ VersionComparator versionComparator = new VersionComparator(depth, monitor);
+ return versionComparator.compare(version1, version2);
+ }
+
+ public static boolean isDbSchemaVersionCompatible(String version){
+ return compareVersion(dbSchemaVersion, version, 3, null) == 0;
+ }
+
+ public static String getDbSchemaVersion() {
+ return dbSchemaVersion;
+ }
+
+ public static String getTermsVersion() {
+ return termsVersion;
+ }
+
+ public static boolean isTermsVersionCompatible(String version){
+ return compareVersion(termsVersion, version, 3, null) == 0;
+ }
+
+}
-// $Id$\r
-/**\r
-* Copyright (C) 2009 EDIT\r
-* European Distributed Institute of Taxonomy \r
-* http://www.e-taxonomy.eu\r
-* \r
-* The contents of this file are subject to the Mozilla Public License Version 1.1\r
-* See LICENSE.TXT at the top of this package for the full license terms.\r
-*/\r
-package eu.etaxonomy.cdm.database.update.v35_36;\r
-\r
-import java.util.ArrayList;\r
-import java.util.List;\r
-\r
-import org.apache.log4j.Logger;\r
-\r
-import eu.etaxonomy.cdm.database.update.ITermUpdater;\r
-import eu.etaxonomy.cdm.database.update.ITermUpdaterStep;\r
-import eu.etaxonomy.cdm.database.update.TermUpdaterBase;\r
-import eu.etaxonomy.cdm.database.update.v34_35.TermUpdater_34_35;\r
-\r
-/**\r
- * @author a.mueller\r
- * @date 10.09.2010\r
- *\r
- */\r
-public class TermUpdater_35_36 extends TermUpdaterBase implements ITermUpdater {\r
- @SuppressWarnings("unused")\r
- private static final Logger logger = Logger.getLogger(TermUpdater_35_36.class);\r
- \r
- public static final String endTermVersion = "3.6.0.0.201527040000";\r
- private static final String startTermVersion = "3.5.0.0.201531030000";\r
- \r
-// *************************** FACTORY **************************************/\r
- \r
- public static TermUpdater_35_36 NewInstance(){\r
- return new TermUpdater_35_36(startTermVersion, endTermVersion);\r
- }\r
- \r
-// *************************** CONSTRUCTOR ***********************************/ \r
-\r
- protected TermUpdater_35_36(String startTermVersion, String endTermVersion) {\r
- super(startTermVersion, endTermVersion);\r
- }\r
- \r
- \r
- @Override\r
- protected List<ITermUpdaterStep> getUpdaterList() {\r
- List<ITermUpdaterStep> list = new ArrayList<ITermUpdaterStep>();\r
-\r
-// // proles, #2793\r
-// UUID uuidTerm = UUID.fromString("8810d1ba-6a34-4ae3-a355-919ccd1cd1a5");\r
-// String description = "Rank ''Proles''. Note: This rank is not compliant with the current nomenclatural codes";\r
-// String label = "Proles";\r
-// String abbrev = "prol.";\r
-// String dtype = Rank.class.getSimpleName();\r
-// boolean isOrdered = true;\r
-// UUID uuidVocabulary = UUID.fromString("ef0d1ce1-26e3-4e83-b47b-ca74eed40b1b");\r
-// UUID uuidAfterTerm = UUID.fromString("bff22f84-553a-4429-a4e7-c4b3796c3a18");\r
-// UUID uuidLang = Language.uuidEnglish;\r
-// RankClass rankClass = RankClass.Infraspecific;\r
-// String stepName = "Add 'proles' rank to ranks";\r
-// TermType termType = TermType.Rank;\r
-// list.add( SingleTermUpdater.NewInstance(stepName, termType, uuidTerm, abbrev, description, label, abbrev, dtype, uuidVocabulary, uuidLang, isOrdered, uuidAfterTerm).setRankClass(rankClass));\r
-\r
- //there are some more new vocabularies, but we trust that the term initializer will \r
- //initialize and persist them correctly\r
- \r
- return list;\r
- }\r
- \r
- @Override\r
- public ITermUpdater getNextUpdater() {\r
- return null;\r
- }\r
-\r
- @Override\r
- public ITermUpdater getPreviousUpdater() {\r
- return TermUpdater_34_35.NewInstance();\r
- }\r
-\r
-}\r
+// $Id$
+/**
+* Copyright (C) 2009 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.cdm.database.update.v35_36;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.log4j.Logger;
+
+import eu.etaxonomy.cdm.database.update.ITermUpdater;
+import eu.etaxonomy.cdm.database.update.ITermUpdaterStep;
+import eu.etaxonomy.cdm.database.update.TermUpdaterBase;
+import eu.etaxonomy.cdm.database.update.v34_35.TermUpdater_34_35;
+import eu.etaxonomy.cdm.database.update.v36_40.TermUpdater_36_40;
+
+/**
+ * @author a.mueller
+ * @date 10.09.2010
+ *
+ */
+public class TermUpdater_35_36 extends TermUpdaterBase {
+ @SuppressWarnings("unused")
+ private static final Logger logger = Logger.getLogger(TermUpdater_35_36.class);
+
+ public static final String endTermVersion = "3.6.0.0.201527040000";
+ private static final String startTermVersion = "3.5.0.0.201531030000";
+
+// *************************** FACTORY **************************************/
+
+ public static TermUpdater_35_36 NewInstance(){
+ return new TermUpdater_35_36(startTermVersion, endTermVersion);
+ }
+
+// *************************** CONSTRUCTOR ***********************************/
+
+ protected TermUpdater_35_36(String startTermVersion, String endTermVersion) {
+ super(startTermVersion, endTermVersion);
+ }
+
+
+ @Override
+ protected List<ITermUpdaterStep> getUpdaterList() {
+ List<ITermUpdaterStep> list = new ArrayList<ITermUpdaterStep>();
+
+// // proles, #2793
+// UUID uuidTerm = UUID.fromString("8810d1ba-6a34-4ae3-a355-919ccd1cd1a5");
+// String description = "Rank ''Proles''. Note: This rank is not compliant with the current nomenclatural codes";
+// String label = "Proles";
+// String abbrev = "prol.";
+// String dtype = Rank.class.getSimpleName();
+// boolean isOrdered = true;
+// UUID uuidVocabulary = UUID.fromString("ef0d1ce1-26e3-4e83-b47b-ca74eed40b1b");
+// UUID uuidAfterTerm = UUID.fromString("bff22f84-553a-4429-a4e7-c4b3796c3a18");
+// UUID uuidLang = Language.uuidEnglish;
+// RankClass rankClass = RankClass.Infraspecific;
+// String stepName = "Add 'proles' rank to ranks";
+// TermType termType = TermType.Rank;
+// list.add( SingleTermUpdater.NewInstance(stepName, termType, uuidTerm, abbrev, description, label, abbrev, dtype, uuidVocabulary, uuidLang, isOrdered, uuidAfterTerm).setRankClass(rankClass));
+
+ //there are some more new vocabularies, but we trust that the term initializer will
+ //initialize and persist them correctly
+
+ return list;
+ }
+
+ @Override
+ public ITermUpdater getNextUpdater() {
+ return TermUpdater_36_40.NewInstance();
+ }
+
+ @Override
+ public ITermUpdater getPreviousUpdater() {
+ return TermUpdater_34_35.NewInstance();
+ }
+
+}
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2009 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.cdm.database.update.v36_40;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.log4j.Logger;
+
+import eu.etaxonomy.cdm.database.update.ITermUpdater;
+import eu.etaxonomy.cdm.database.update.ITermUpdaterStep;
+import eu.etaxonomy.cdm.database.update.TermUpdaterBase;
+import eu.etaxonomy.cdm.database.update.v35_36.TermUpdater_35_36;
+
+/**
+ * @author a.mueller
+ * @date 16.04.2016
+ *
+ */
+public class TermUpdater_36_40 extends TermUpdaterBase {
+ @SuppressWarnings("unused")
+ private static final Logger logger = Logger.getLogger(TermUpdater_36_40.class);
+
+ public static final String startTermVersion = "3.6.0.0.201527040000";
+ private static final String endTermVersion = "4.0.0.0.201604200000";
+
+// *************************** FACTORY **************************************/
+
+ public static TermUpdater_36_40 NewInstance(){
+ return new TermUpdater_36_40(startTermVersion, endTermVersion);
+ }
+
+// *************************** CONSTRUCTOR ***********************************/
+
+ protected TermUpdater_36_40(String startTermVersion, String endTermVersion) {
+ super(startTermVersion, endTermVersion);
+ }
+
+
+ @Override
+ protected List<ITermUpdaterStep> getUpdaterList() {
+ List<ITermUpdaterStep> list = new ArrayList<ITermUpdaterStep>();
+
+// // proles, #2793
+// UUID uuidTerm = UUID.fromString("8810d1ba-6a34-4ae3-a355-919ccd1cd1a5");
+// String description = "Rank ''Proles''. Note: This rank is not compliant with the current nomenclatural codes";
+// String label = "Proles";
+// String abbrev = "prol.";
+// String dtype = Rank.class.getSimpleName();
+// boolean isOrdered = true;
+// UUID uuidVocabulary = UUID.fromString("ef0d1ce1-26e3-4e83-b47b-ca74eed40b1b");
+// UUID uuidAfterTerm = UUID.fromString("bff22f84-553a-4429-a4e7-c4b3796c3a18");
+// UUID uuidLang = Language.uuidEnglish;
+// RankClass rankClass = RankClass.Infraspecific;
+// String stepName = "Add 'proles' rank to ranks";
+// TermType termType = TermType.Rank;
+// list.add( SingleTermUpdater.NewInstance(stepName, termType, uuidTerm, abbrev, description, label, abbrev, dtype, uuidVocabulary, uuidLang, isOrdered, uuidAfterTerm).setRankClass(rankClass));
+
+ //there are some more new vocabularies, but we trust that the term initializer will
+ //initialize and persist them correctly
+
+ return list;
+ }
+
+ @Override
+ public ITermUpdater getNextUpdater() {
+ return null;
+ }
+
+ @Override
+ public ITermUpdater getPreviousUpdater() {
+ return TermUpdater_35_36.NewInstance();
+ }
+
+}