Revision 4bafd675
Added by Andreas Müller almost 3 years ago
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/agent/Person.java | ||
---|---|---|
36 | 36 |
import org.hibernate.search.annotations.IndexedEmbedded; |
37 | 37 |
import org.springframework.beans.factory.annotation.Configurable; |
38 | 38 |
|
39 |
import eu.etaxonomy.cdm.common.CdmUtils; |
|
39 | 40 |
import eu.etaxonomy.cdm.hibernate.search.OrcidBridge; |
40 | 41 |
import eu.etaxonomy.cdm.model.common.TimePeriod; |
41 | 42 |
import eu.etaxonomy.cdm.strategy.cache.agent.PersonDefaultCacheStrategy; |
... | ... | |
455 | 456 |
public boolean updateCaches(){ |
456 | 457 |
boolean result = false; |
457 | 458 |
result |= super.updateCaches(); |
458 |
if (this.nomenclaturalTitle == null){ |
|
459 |
this.nomenclaturalTitleCache = this.getTitleCache(); |
|
460 |
if ( this.nomenclaturalTitleCache != null ){ |
|
461 |
result = true; |
|
462 |
} |
|
463 |
} |
|
459 |
result |= updateNomenclaturalCache(); |
|
460 |
result |= updateCollectorCache(); |
|
464 | 461 |
|
465 | 462 |
return result; |
463 |
} |
|
464 |
|
|
465 |
private boolean updateNomenclaturalCache() { |
|
466 |
//updates the nomenclaturalTitleCache if necessary |
|
467 |
String oldCache = this.nomenclaturalTitleCache; |
|
468 |
String newCache = getCacheStrategy().getNomenclaturalTitleCache(this); |
|
469 |
if (!CdmUtils.nullSafeEqual(oldCache, newCache)){ |
|
470 |
// this.setNomenclaturalTitleCache(null, false); |
|
471 |
this.getNomenclaturalTitleCache(); |
|
472 |
return true; |
|
473 |
} |
|
474 |
return false; |
|
475 |
} |
|
476 |
|
|
477 |
private boolean updateCollectorCache() { |
|
478 |
//updates the collectorTitleCache if necessary |
|
479 |
String oldCache = this.collectorTitleCache; |
|
480 |
String newCache = getCacheStrategy().getCollectorTitleCache(this); |
|
481 |
if (!CdmUtils.nullSafeEqual(oldCache, newCache)){ |
|
482 |
// this.setNomenclaturalTitleCache(null, false); |
|
483 |
this.getCollectorTitleCache(); |
|
484 |
return true; |
|
485 |
} |
|
486 |
return false; |
|
466 | 487 |
} |
467 | 488 |
|
468 | 489 |
//*********************** CLONE ********************************************************/ |
cdmlib-model/src/main/java/eu/etaxonomy/cdm/strategy/cache/agent/PersonDefaultCacheStrategy.java | ||
---|---|---|
74 | 74 |
|
75 | 75 |
@Override |
76 | 76 |
public String getTitleCache(Person person) { |
77 |
if (person.isProtectedTitleCache()){ |
|
78 |
return person.getTitleCache(); |
|
79 |
} |
|
77 | 80 |
String result = ""; |
81 |
|
|
78 | 82 |
if (isNotBlank(person.getFamilyName() ) ){ |
79 | 83 |
result = person.getFamilyName().trim(); |
80 | 84 |
result = addInitials(result, person); |
cdmlib-services/src/test/java/eu/etaxonomy/cdm/api/service/AgentServiceImplTest.java | ||
---|---|---|
268 | 268 |
turland_monro = (Team) service.load(UUID.fromString("30ca93d6-b543-4bb9-b6ff-e9ededa65af7")); |
269 | 269 |
ehrenberg = (Person)service.load(UUID_EHRENBERG); |
270 | 270 |
|
271 |
assertEquals("Expecting nomenclaturalTitle to be set since it was NULL", "Turland, N.J.", nomenclaturalTitleField.get(turland)); |
|
272 |
assertEquals("Expecting nomenclaturalTitle to be set since it was NULL", "Ehrenb.", nomenclaturalTitleField.get(ehrenberg)); |
|
271 |
assertNull("Expecting nomenclaturalTitle to be still NULL", nomenclaturalTitleField.get(turland)); |
|
272 |
assertEquals("Expecting nomenclaturalTitleCache to be set since it was NULL", "Turland, N.J.", nomenclaturalTitleCacheField.get(turland)); |
|
273 |
assertNull("Expecting nomenclaturalTitle to be still NULL", nomenclaturalTitleField.get(ehrenberg)); |
|
274 |
assertEquals("Expecting nomenclaturalTitleCache to be set since it was NULL", "Ehrenb.", nomenclaturalTitleCacheField.get(ehrenberg)); |
|
273 | 275 |
assertEquals("Expecting titleChache to be unchaged since it was protecetd", "Ehrenb.", ehrenberg.getTitleCache()); |
274 |
assertEquals("Expecting nomenclaturalTitle to be unchanged", "A.M. Monro", nomenclaturalTitleField.get(monro).toString());
|
|
276 |
assertEquals("Expecting nomenclaturalTitleCache to be unchanged", "A.M. Monro", nomenclaturalTitleCacheField.get(monro).toString());
|
|
275 | 277 |
|
276 | 278 |
assertEquals("Turland, Monro", nomenclaturalTitleCacheField.get(turland_monro_protected)); |
277 | 279 |
assertEquals("Turland, N.J. & A.M. Monro", nomenclaturalTitleCacheField.get(turland_monro).toString()); |
Also available in: Unified diff
ref #9664 , ref #4311 fix updateCaches in Person