Revision ead6f0f6
Added by Andreas Kohlbecker almost 6 years ago
src/main/java/eu/etaxonomy/cdm/dataInserter/RegistrationRequiredDataInserter.java | ||
---|---|---|
358 | 358 |
} |
359 | 359 |
Partial pubdate = partial(td.getCitation().getDatePublished()); |
360 | 360 |
if(pubdate != null){ |
361 |
if(youngestDate== null || comparePartials(youngestDate, pubdate)){ |
|
362 |
youngestDate = pubdate; |
|
363 |
youngestPub = td.getCitation(); |
|
361 |
|
|
362 |
try { |
|
363 |
if(youngestDate== null || earlierThanOther(youngestDate, pubdate)){ |
|
364 |
youngestDate = pubdate; |
|
365 |
youngestPub = td.getCitation(); |
|
366 |
} |
|
367 |
} catch (Exception e) { |
|
368 |
logger.error("Error comparing " + youngestDate + " with" + pubdate , e); |
|
364 | 369 |
} |
365 | 370 |
} |
366 | 371 |
} |
... | ... | |
415 | 420 |
* @param pubdate |
416 | 421 |
* @return |
417 | 422 |
*/ |
418 |
protected boolean comparePartials(Partial youngestDate, Partial pubdate) {
|
|
423 |
protected boolean earlierThanOther(Partial basePartial, Partial other) {
|
|
419 | 424 |
|
420 |
if(youngestDate.size() == pubdate.size()) { |
|
421 |
return youngestDate.compareTo(pubdate) < 0; |
|
425 |
if(basePartial == null || basePartial.getValues().length == 0){ |
|
426 |
return false; |
|
427 |
} |
|
428 |
if(other == null || other.getValues().length == 0){ |
|
429 |
return true; |
|
430 |
} |
|
431 |
if(basePartial.size() == other.size()) { |
|
432 |
return basePartial.compareTo(other) < 0; |
|
422 | 433 |
} |
423 |
youngestDate = youngestDate.without(DateTimeFieldType.dayOfMonth());
|
|
424 |
pubdate = pubdate.without(DateTimeFieldType.dayOfMonth());
|
|
425 |
if(youngestDate.size() == pubdate.size()) {
|
|
426 |
return youngestDate.compareTo(pubdate) < 0;
|
|
434 |
basePartial = basePartial.without(DateTimeFieldType.dayOfMonth());
|
|
435 |
other = other.without(DateTimeFieldType.dayOfMonth());
|
|
436 |
if(basePartial.size() == other.size()) {
|
|
437 |
return basePartial.compareTo(other) < 0;
|
|
427 | 438 |
} |
428 |
youngestDate = youngestDate.without(DateTimeFieldType.monthOfYear());
|
|
429 |
pubdate = pubdate.without(DateTimeFieldType.monthOfYear());
|
|
430 |
return youngestDate.compareTo(pubdate) < 0;
|
|
439 |
basePartial = basePartial.without(DateTimeFieldType.monthOfYear());
|
|
440 |
other = other.without(DateTimeFieldType.monthOfYear());
|
|
441 |
return basePartial.compareTo(other) < 0;
|
|
431 | 442 |
|
432 | 443 |
} |
433 | 444 |
|
Also available in: Unified diff
fixing problem with empty partials in RegistrationRequiredDataInserter