Revision f7e576ba
Added by Andreas Müller over 2 years ago
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/metadata/CdmMetaData.java | ||
---|---|---|
70 | 70 |
V_05_22_00("5.22.0.0.20210315"), |
71 | 71 |
V_05_23_00("5.23.0.0.20210422"), |
72 | 72 |
V_05_25_00("5.25.0.0.20210609"), |
73 |
V_05_25_01("5.25.1.0.20210702") |
|
73 |
V_05_25_01("5.25.1.0.20210702"), |
|
74 |
V_05_27_00("5.25.1.0.20210913") |
|
74 | 75 |
; |
75 | 76 |
private String versionString; |
76 | 77 |
private CdmVersion(String versionString){ |
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/name/ICultivarPlantName.java | ||
---|---|---|
20 | 20 |
* @since 26.01.2017 |
21 | 21 |
*/ |
22 | 22 |
public interface ICultivarPlantName extends IBotanicalName { |
23 |
|
|
23 | 24 |
/** |
24 | 25 |
* Returns the characteristical cultivar name part string assigned to <i>this</i> |
25 | 26 |
* cultivar taxon name. In the scientific name "Clematis alpina 'Ruby'" for |
26 | 27 |
* instance this characteristical string is "Ruby". This part of the name is |
27 | 28 |
* governed by the International Code for the Nomenclature of Cultivated |
28 |
* Plants and the string should include neither quotes nor + signs |
|
29 |
* Plants (ICNCP) and the string should include neither quotes nor + signs
|
|
29 | 30 |
* (these elements of the name cache string will be generated by the |
30 |
* {@link eu.etaxonomy.cdm.strategy.cache.name.BotanicNameDefaultCacheStrategy default cache strategy}).
|
|
31 |
* {@link eu.etaxonomy.cdm.strategy.cache.name.INonViralNameCacheStrategy cache strategy}).
|
|
31 | 32 |
*/ |
32 | 33 |
public String getCultivarName(); |
33 | 34 |
|
... | ... | |
35 | 36 |
* @see #getCultivarName() |
36 | 37 |
*/ |
37 | 38 |
public void setCultivarName(String cultivarName); |
38 |
} |
|
39 |
|
|
40 |
//#9761 |
|
41 |
/** |
|
42 |
* Returns the cultivar name part representing the cultivar group |
|
43 |
* and/or the grex (for orchids). It must include the markers indicating |
|
44 |
* grex or group (e.g. grex, gx, Group, Gp, Gruppe, Gruppo, etc.). |
|
45 |
* TODO brackets |
|
46 |
*/ |
|
47 |
public String getCultivarGroup(); |
|
48 |
|
|
49 |
/** |
|
50 |
* @see #getCultivarGroup() |
|
51 |
*/ |
|
52 |
public void setCultivarGroup(String cultivarGroup); |
|
53 |
} |
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/name/TaxonName.java | ||
---|---|---|
559 | 559 |
@Column(length=255) |
560 | 560 |
private String cultivarName; |
561 | 561 |
|
562 |
//#9761 |
|
563 |
@XmlElement(name = "CultivarName") |
|
564 |
@NullOrNotEmpty |
|
565 |
@Column(length=255) |
|
566 |
private String cultivarGroup; |
|
567 |
|
|
562 | 568 |
// ************** FUNGUS name attributes |
563 | 569 |
//to indicate that the type of the name is asexual or not |
564 | 570 |
@XmlElement(name ="IsAnamorphic") |
... | ... | |
1290 | 1296 |
this.cultivarName = isBlank(cultivarName) ? null : cultivarName; |
1291 | 1297 |
} |
1292 | 1298 |
|
1299 |
@Override |
|
1300 |
public String getCultivarGroup(){ |
|
1301 |
return this.cultivarGroup; |
|
1302 |
} |
|
1303 |
|
|
1304 |
/** |
|
1305 |
* @see #getCultivarGroup() |
|
1306 |
*/ |
|
1307 |
@Override |
|
1308 |
public void setCultivarGroup(String cultivarGroup){ |
|
1309 |
this.cultivarGroup = isBlank(cultivarGroup) ? null : cultivarGroup; |
|
1310 |
} |
|
1311 |
|
|
1293 | 1312 |
// **************** Fungus Name |
1294 | 1313 |
@Override |
1295 | 1314 |
public boolean isAnamorphic(){ |
cdmlib-model/src/main/java/eu/etaxonomy/cdm/strategy/cache/name/TaxonNameDefaultCacheStrategy.java | ||
---|---|---|
11 | 11 |
import java.util.ArrayList; |
12 | 12 |
import java.util.List; |
13 | 13 |
import java.util.UUID; |
14 |
import java.util.regex.Matcher; |
|
15 |
import java.util.regex.Pattern; |
|
14 | 16 |
|
15 | 17 |
import org.apache.log4j.Logger; |
16 | 18 |
|
... | ... | |
377 | 379 |
} else /*if (isNotBlank(taxonName.getGenusOrUninomial())) */{ |
378 | 380 |
scientificNameTags = getGenusOrUninomialTaggedNameCache(taxonName); |
379 | 381 |
} |
380 |
String cultivarStr; |
|
381 |
if (taxonName.getRank().getUuid().equals(Rank.uuidCultivar)){ |
|
382 |
|
|
383 |
UUID rankUuid = taxonName.getRank().getUuid(); |
|
384 |
boolean rankIsHandled = true; |
|
385 |
String cultivarStr = null; |
|
386 |
String groupStr = taxonName.getCultivarGroup(); |
|
387 |
if (rankUuid.equals(Rank.uuidCultivar)){ |
|
382 | 388 |
cultivarStr = surroundedCultivarEpithet(taxonName); |
389 |
if (isNotBlank(cultivarStr) && isNotBlank(groupStr)){ |
|
390 |
groupStr = surroundGroupWithBracket(groupStr); |
|
391 |
} |
|
392 |
cultivarStr = CdmUtils.concat(" ", groupStr, cultivarStr); |
|
393 |
}else if (rankUuid.equals(Rank.uuidCultivarGroup)){ |
|
394 |
cultivarStr = CdmUtils.concat(" ", groupStr, checkHasGroupEpithet(groupStr)? null: "Group"); |
|
395 |
}else if (rankUuid.equals(Rank.uuidGrex)){ |
|
396 |
cultivarStr = CdmUtils.concat(" ", groupStr, checkHasGrexEpithet(groupStr)? null: "grex"); |
|
397 |
}else{ |
|
398 |
rankIsHandled = false; |
|
399 |
} |
|
400 |
if (isNotBlank(cultivarStr)){ |
|
383 | 401 |
builder.addAll(scientificNameTags); |
384 | 402 |
builder.add(TagEnum.cultivar, cultivarStr); |
385 |
}else if (taxonName.getRank().getUuid().equals(Rank.uuidCultivarGroup)){ |
|
386 |
//TODO check if Group exists in Name already |
|
387 |
cultivarStr = taxonName.getCultivarName() + (checkHasGroupEpithet(taxonName.getCultivarName())? "": " Group"); |
|
388 |
builder.addAll(scientificNameTags); |
|
389 |
builder.add(TagEnum.cultivar, cultivarStr); |
|
390 |
}else if (taxonName.getRank().getUuid().equals(Rank.uuidGrex)){ |
|
391 |
cultivarStr = taxonName.getCultivarName() + (checkHasGrexEpithet(taxonName.getCultivarName())? "": " grex"); |
|
392 |
builder.addAll(scientificNameTags); |
|
393 |
builder.add(TagEnum.cultivar, cultivarStr); |
|
394 |
}else if (taxonName.getRank().getUuid().equals(Rank.uuidGraftChimaera)){ |
|
403 |
} |
|
404 |
|
|
405 |
if (rankUuid.equals(Rank.uuidGraftChimaera)){ |
|
395 | 406 |
//TODO not yet fully implemented |
396 | 407 |
cultivarStr = "+ " + taxonName.getGenusOrUninomial() + " " + surroundedCultivarEpithet(taxonName); |
397 | 408 |
builder.add(TagEnum.cultivar, cultivarStr); |
398 |
}else{
|
|
409 |
} else if (!rankIsHandled){
|
|
399 | 410 |
throw new IllegalStateException("Unsupported rank " + taxonName.getRank().getTitleCache() + " for cultivar."); |
400 | 411 |
} |
401 | 412 |
|
402 | 413 |
return builder.getTaggedText(); |
403 | 414 |
} |
404 | 415 |
|
405 |
private boolean checkHasGroupEpithet(String cultivarName) { |
|
406 |
String[] splits = cultivarName.split("\\s+"); |
|
416 |
private String surroundGroupWithBracket(String groupStr) { |
|
417 |
if (groupStr.matches(NonViralNameParserImplRegExBase.grex + "$")){ |
|
418 |
return groupStr; |
|
419 |
}else if (groupStr.matches(".*" + NonViralNameParserImplRegExBase.grex + ".+")){ |
|
420 |
Matcher matcher = Pattern.compile(NonViralNameParserImplRegExBase.grex + "\\s*" ).matcher(groupStr); |
|
421 |
matcher.find(); |
|
422 |
return groupStr.substring(0, matcher.end()) + "("+ groupStr.substring(matcher.end())+ ")"; |
|
423 |
}else{ |
|
424 |
return "("+ groupStr + ")"; |
|
425 |
} |
|
426 |
} |
|
427 |
|
|
428 |
private boolean checkHasGroupEpithet(String group) { |
|
429 |
|
|
430 |
String[] splits = group == null? new String[0]: group.split("\\s+"); |
|
407 | 431 |
if (splits.length <= 1){ |
408 | 432 |
return false; |
409 | 433 |
}else if (splits[0].matches(NonViralNameParserImplRegExBase.group) |
... | ... | |
414 | 438 |
} |
415 | 439 |
} |
416 | 440 |
|
417 |
private boolean checkHasGrexEpithet(String cultivarName) {
|
|
418 |
String[] splits = cultivarName.split("\\s+");
|
|
441 |
private boolean checkHasGrexEpithet(String grex) {
|
|
442 |
String[] splits = grex == null? new String[0]: grex.split("\\s+");
|
|
419 | 443 |
if (splits.length <= 1){ |
420 | 444 |
return false; |
421 | 445 |
}else if (splits[splits.length-1].matches(NonViralNameParserImplRegExBase.grex)){ |
cdmlib-model/src/main/java/eu/etaxonomy/cdm/strategy/parser/NonViralNameParserImpl.java | ||
---|---|---|
1553 | 1553 |
|
1554 | 1554 |
if (isNotBlank(grexName)){ |
1555 | 1555 |
nameToBeFilled.setRank(Rank.GREX()); |
1556 |
nameToBeFilled.setCultivarName(grexName); //TODO
|
|
1556 |
nameToBeFilled.setCultivarGroup(grexName);
|
|
1557 | 1557 |
} |
1558 | 1558 |
if (isNotBlank(groupName) || isNotBlank(brGroupName)){ |
1559 | 1559 |
nameToBeFilled.setRank(Rank.CULTIVARGROUP()); |
1560 | 1560 |
if (isBlank(groupName)){ |
1561 | 1561 |
groupName = brGroupName; |
1562 | 1562 |
} |
1563 |
nameToBeFilled.setCultivarName(CdmUtils.concat(" ", grexName, groupName)); //TODO
|
|
1563 |
nameToBeFilled.setCultivarGroup(CdmUtils.concat(" ", grexName, groupName));
|
|
1564 | 1564 |
} |
1565 | 1565 |
if (isNotBlank(cultivarName)){ |
1566 | 1566 |
nameToBeFilled.setRank(Rank.CULTIVAR()); |
cdmlib-model/src/test/java/eu/etaxonomy/cdm/strategy/cache/name/TaxonNameDefaultCacheStrategyTest.java | ||
---|---|---|
300 | 300 |
|
301 | 301 |
//cultivar group |
302 | 302 |
speciesName.setRank(Rank.CULTIVARGROUP()); |
303 |
Assert.assertEquals("Abies Group", strategy.getTitleCache(speciesName)); //not sure if this is correct for an empty group field |
|
304 |
speciesName.setCultivarGroup("Cultus Group"); |
|
303 | 305 |
Assert.assertEquals("Abies Cultus Group", strategy.getTitleCache(speciesName)); |
304 |
speciesName.setCultivarName("Cultus Group"); |
|
305 | 306 |
|
306 |
speciesName.setRank(Rank.CULTIVARGROUP()); |
|
307 |
speciesName.setCultivarName("Cultus Group"); |
|
308 |
Assert.assertEquals("Abies Cultus Group", strategy.getTitleCache(speciesName)); |
|
309 |
speciesName.setCultivarName("Cultus Gruppe"); |
|
307 |
speciesName.setCultivarGroup("Cultus Gruppe"); |
|
310 | 308 |
Assert.assertEquals("Abies Cultus Gruppe", strategy.getTitleCache(speciesName)); |
311 |
speciesName.setCultivarName("Cultus Gp");
|
|
309 |
speciesName.setCultivarGroup("Cultus Gp");
|
|
312 | 310 |
Assert.assertEquals("Abies Cultus Gp", strategy.getTitleCache(speciesName)); |
313 |
speciesName.setCultivarName("Gruppo Cultus");
|
|
311 |
speciesName.setCultivarGroup("Gruppo Cultus");
|
|
314 | 312 |
Assert.assertEquals("Abies Gruppo Cultus", strategy.getTitleCache(speciesName)); |
315 |
speciesName.setCultivarName("Druppo Cultus");
|
|
313 |
speciesName.setCultivarGroup("Druppo Cultus");
|
|
316 | 314 |
Assert.assertEquals("Abies Druppo Cultus Group", strategy.getTitleCache(speciesName)); |
317 | 315 |
|
318 | 316 |
//grex |
319 | 317 |
speciesName.setRank(Rank.GREX()); |
320 |
speciesName.setCultivarName("Lovely");
|
|
318 |
speciesName.setCultivarGroup("Lovely");
|
|
321 | 319 |
Assert.assertEquals("Abies Lovely grex", strategy.getTitleCache(speciesName)); |
322 | 320 |
|
323 | 321 |
//graft chimaera |
... | ... | |
328 | 326 |
speciesName.setCultivarName("Adamii"); |
329 | 327 |
|
330 | 328 |
Assert.assertEquals("+ Laburnocytisus 'Adamii'", strategy.getTitleCache(speciesName)); |
331 |
|
|
332 |
|
|
333 | 329 |
} |
334 | 330 |
|
335 |
|
|
336 | 331 |
//3665 |
337 | 332 |
@Test |
338 | 333 |
public void testOriginalSpelling() { |
cdmlib-model/src/test/java/eu/etaxonomy/cdm/strategy/parser/NonViralNameParserImplTest.java | ||
---|---|---|
2397 | 2397 |
name = (TaxonName)parser.parseFullName(group); |
2398 | 2398 |
Assert.assertEquals("Abies", name.getGenusOrUninomial()); |
2399 | 2399 |
Assert.assertNull(name.getSpecificEpithet()); |
2400 |
Assert.assertEquals("Albus Group", name.getCultivarName()); //TODO should be cultivar group field
|
|
2400 |
Assert.assertEquals("Albus Group", name.getCultivarGroup());
|
|
2401 | 2401 |
Assert.assertEquals("Abies Albus Group", name.getNameCache()); |
2402 | 2402 |
Assert.assertEquals(Rank.uuidCultivarGroup, name.getRank().getUuid()); |
2403 | 2403 |
|
... | ... | |
2405 | 2405 |
name = (TaxonName)parser.parseFullName(group); |
2406 | 2406 |
Assert.assertEquals("Abies", name.getGenusOrUninomial()); |
2407 | 2407 |
Assert.assertNull(name.getSpecificEpithet()); |
2408 |
Assert.assertEquals("Albus Gp", name.getCultivarName()); //TODO should be cultivar group field
|
|
2408 |
Assert.assertEquals("Albus Gp", name.getCultivarGroup());
|
|
2409 | 2409 |
Assert.assertEquals("Abies Albus Gp", name.getNameCache()); |
2410 | 2410 |
Assert.assertEquals(Rank.uuidCultivarGroup, name.getRank().getUuid()); |
2411 | 2411 |
|
... | ... | |
2413 | 2413 |
name = (TaxonName)parser.parseFullName(group); |
2414 | 2414 |
Assert.assertEquals("Abies", name.getGenusOrUninomial()); |
2415 | 2415 |
Assert.assertNull(name.getSpecificEpithet()); |
2416 |
Assert.assertEquals("Gruppo Albus", name.getCultivarName()); //TODO should be cultivar group field
|
|
2416 |
Assert.assertEquals("Gruppo Albus", name.getCultivarGroup());
|
|
2417 | 2417 |
Assert.assertEquals("Abies Gruppo Albus", name.getNameCache()); |
2418 | 2418 |
Assert.assertEquals(Rank.uuidCultivarGroup, name.getRank().getUuid()); |
2419 | 2419 |
|
... | ... | |
2422 | 2422 |
name = (TaxonName)parser.parseFullName(grex); |
2423 | 2423 |
Assert.assertEquals("Abies", name.getGenusOrUninomial()); |
2424 | 2424 |
Assert.assertNull(name.getSpecificEpithet()); |
2425 |
Assert.assertEquals("Albus grex", name.getCultivarName()); //TODO should be cultivar group field
|
|
2425 |
Assert.assertEquals("Albus grex", name.getCultivarGroup());
|
|
2426 | 2426 |
Assert.assertEquals("Abies Albus grex", name.getNameCache()); |
2427 | 2427 |
Assert.assertEquals(Rank.uuidGrex, name.getRank().getUuid()); |
2428 | 2428 |
|
... | ... | |
2430 | 2430 |
name = (TaxonName)parser.parseFullName(grex); |
2431 | 2431 |
Assert.assertEquals("Abies", name.getGenusOrUninomial()); |
2432 | 2432 |
Assert.assertNull(name.getSpecificEpithet()); |
2433 |
Assert.assertEquals("Albus Second grex", name.getCultivarName()); //TODO should be cultivar group field
|
|
2433 |
Assert.assertEquals("Albus Second grex", name.getCultivarGroup());
|
|
2434 | 2434 |
Assert.assertEquals("Abies Albus Second grex", name.getNameCache()); |
2435 | 2435 |
Assert.assertEquals(Rank.uuidGrex, name.getRank().getUuid()); |
2436 | 2436 |
|
... | ... | |
2439 | 2439 |
name = (TaxonName)parser.parseFullName(combined); |
2440 | 2440 |
Assert.assertEquals("Abies", name.getGenusOrUninomial()); |
2441 | 2441 |
Assert.assertNull(name.getSpecificEpithet()); |
2442 |
Assert.assertEquals("Pretty", name.getCultivarName()); //TODO should be cultivar group field |
|
2443 |
Assert.assertEquals("Abies 'Pretty'", name.getNameCache()); |
|
2442 |
Assert.assertEquals("Pretty", name.getCultivarName()); |
|
2443 |
Assert.assertEquals("Albus Gruppo", name.getCultivarGroup()); |
|
2444 |
Assert.assertEquals(combined, name.getNameCache()); |
|
2444 | 2445 |
Assert.assertEquals(Rank.uuidCultivar, name.getRank().getUuid()); |
2445 | 2446 |
|
2446 | 2447 |
combined = "Abies White grex (Albus Gruppo) 'Pretty'"; |
2447 | 2448 |
name = (TaxonName)parser.parseFullName(combined); |
2448 | 2449 |
Assert.assertEquals("Abies", name.getGenusOrUninomial()); |
2449 | 2450 |
Assert.assertNull(name.getSpecificEpithet()); |
2450 |
Assert.assertEquals("Pretty", name.getCultivarName()); //TODO should be cultivar group field |
|
2451 |
Assert.assertEquals("Abies 'Pretty'", name.getNameCache()); |
|
2451 |
Assert.assertEquals("Pretty", name.getCultivarName()); |
|
2452 |
Assert.assertEquals("White grex Albus Gruppo", name.getCultivarGroup()); |
|
2453 |
Assert.assertEquals(combined, name.getNameCache()); |
|
2452 | 2454 |
Assert.assertEquals(Rank.uuidCultivar, name.getRank().getUuid()); |
2453 | 2455 |
|
2454 | 2456 |
combined = "Abies White grex Albus Gruppo"; |
2455 | 2457 |
name = (TaxonName)parser.parseFullName(combined); |
2456 | 2458 |
Assert.assertEquals("Abies", name.getGenusOrUninomial()); |
2457 | 2459 |
Assert.assertNull(name.getSpecificEpithet()); |
2458 |
Assert.assertEquals("White grex Albus Gruppo", name.getCultivarName()); //TODO should be cultivar group field
|
|
2460 |
Assert.assertEquals("White grex Albus Gruppo", name.getCultivarGroup());
|
|
2459 | 2461 |
Assert.assertEquals(combined, name.getNameCache()); |
2460 | 2462 |
Assert.assertEquals(Rank.uuidCultivarGroup, name.getRank().getUuid()); |
2461 | 2463 |
|
... | ... | |
2466 | 2468 |
Assert.assertNull(name.getGenusOrUninomial()); |
2467 | 2469 |
Assert.assertNull(name.getSpecificEpithet()); |
2468 | 2470 |
Assert.assertNull(name.getCultivarName()); |
2471 |
Assert.assertNull(name.getCultivarGroup()); |
|
2469 | 2472 |
Assert.assertEquals(combined, name.getNameCache()); |
2470 | 2473 |
Assert.assertNull(name.getRank()); |
2471 | 2474 |
|
... | ... | |
2475 | 2478 |
Assert.assertNull(name.getGenusOrUninomial()); |
2476 | 2479 |
Assert.assertNull(name.getSpecificEpithet()); |
2477 | 2480 |
Assert.assertNull(name.getCultivarName()); |
2481 |
Assert.assertNull(name.getCultivarGroup()); |
|
2478 | 2482 |
Assert.assertEquals(combined, name.getNameCache()); |
2479 | 2483 |
Assert.assertNull(name.getRank()); |
2480 | 2484 |
} |
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/database/update/CdmUpdater.java | ||
---|---|---|
17 | 17 |
import eu.etaxonomy.cdm.common.monitor.IProgressMonitor; |
18 | 18 |
import eu.etaxonomy.cdm.database.CdmDataSource; |
19 | 19 |
import eu.etaxonomy.cdm.database.ICdmDataSource; |
20 |
import eu.etaxonomy.cdm.database.update.v523_525.SchemaUpdater_5250_5251;
|
|
20 |
import eu.etaxonomy.cdm.database.update.v525_527.SchemaUpdater_5251_5270;
|
|
21 | 21 |
import eu.etaxonomy.cdm.model.metadata.CdmMetaData; |
22 | 22 |
|
23 | 23 |
/** |
... | ... | |
66 | 66 |
private static final Logger logger = Logger.getLogger(CdmUpdater.class); |
67 | 67 |
|
68 | 68 |
private static final ISchemaUpdater getCurrentSchemaUpdater() { |
69 |
return SchemaUpdater_5250_5251.NewInstance();
|
|
69 |
return SchemaUpdater_5251_5270.NewInstance();
|
|
70 | 70 |
} |
71 | 71 |
|
72 | 72 |
public static CdmUpdater NewInstance(){ |
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/database/update/v525_527/SchemaUpdater_5251_5270.java | ||
---|---|---|
1 |
/** |
|
2 |
* Copyright (C) 2007 EDIT |
|
3 |
* European Distributed Institute of Taxonomy |
|
4 |
* http://www.e-taxonomy.eu |
|
5 |
* |
|
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. |
|
8 |
*/ |
|
9 |
package eu.etaxonomy.cdm.database.update.v525_527; |
|
10 |
|
|
11 |
import java.util.ArrayList; |
|
12 |
import java.util.List; |
|
13 |
|
|
14 |
import org.apache.log4j.Logger; |
|
15 |
|
|
16 |
import eu.etaxonomy.cdm.database.update.ColumnAdder; |
|
17 |
import eu.etaxonomy.cdm.database.update.ISchemaUpdater; |
|
18 |
import eu.etaxonomy.cdm.database.update.ISchemaUpdaterStep; |
|
19 |
import eu.etaxonomy.cdm.database.update.SchemaUpdaterBase; |
|
20 |
import eu.etaxonomy.cdm.database.update.v523_525.SchemaUpdater_5250_5251; |
|
21 |
import eu.etaxonomy.cdm.model.metadata.CdmMetaData.CdmVersion; |
|
22 |
|
|
23 |
/** |
|
24 |
* @author a.mueller |
|
25 |
* @date 22.04.2021 |
|
26 |
*/ |
|
27 |
public class SchemaUpdater_5251_5270 extends SchemaUpdaterBase { |
|
28 |
|
|
29 |
@SuppressWarnings("unused") |
|
30 |
private static final Logger logger = Logger.getLogger(SchemaUpdater_5251_5270.class); |
|
31 |
|
|
32 |
private static final CdmVersion startSchemaVersion = CdmVersion.V_05_25_01; |
|
33 |
private static final CdmVersion endSchemaVersion = CdmVersion.V_05_27_00; |
|
34 |
|
|
35 |
// ********************** FACTORY METHOD ************************************* |
|
36 |
|
|
37 |
public static SchemaUpdater_5251_5270 NewInstance() { |
|
38 |
return new SchemaUpdater_5251_5270(); |
|
39 |
} |
|
40 |
|
|
41 |
protected SchemaUpdater_5251_5270() { |
|
42 |
super(startSchemaVersion.versionString(), endSchemaVersion.versionString()); |
|
43 |
} |
|
44 |
|
|
45 |
@Override |
|
46 |
public ISchemaUpdater getPreviousUpdater() { |
|
47 |
return SchemaUpdater_5250_5251.NewInstance(); |
|
48 |
} |
|
49 |
|
|
50 |
@Override |
|
51 |
protected List<ISchemaUpdaterStep> getUpdaterList() { |
|
52 |
|
|
53 |
String stepName; |
|
54 |
String tableName; |
|
55 |
String newColumnName; |
|
56 |
|
|
57 |
List<ISchemaUpdaterStep> stepList = new ArrayList<>(); |
|
58 |
|
|
59 |
//add cultivarGroup |
|
60 |
//#9761 |
|
61 |
stepName = "Add cultivarGroup"; |
|
62 |
tableName = "TaxonName"; |
|
63 |
newColumnName = "cultivarGroup"; |
|
64 |
ColumnAdder.NewStringInstance(stepList, stepName, tableName, newColumnName, INCLUDE_AUDIT); |
|
65 |
|
|
66 |
//TODO update where rank = CultivarGroup |
|
67 |
|
|
68 |
return stepList; |
|
69 |
} |
|
70 |
|
|
71 |
} |
Also available in: Unified diff
ref #9761 add cultivarGroup column