Project

General

Profile

« Previous | Next » 

Revision f9d65b70

Added by Andreas Müller almost 3 years ago

ref #9664 , ref #4311 fix cache handling for collectorTitle and nomenclaturalTitle

View differences:

cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/agent/Person.java
231 231
        PropertyChangeListener listener = new PropertyChangeListener() {
232 232
            @Override
233 233
            public void propertyChange(PropertyChangeEvent ev) {
234
                if (!ev.getPropertyName().equals("titleCache")
235
                        && !ev.getPropertyName().equals("nomenclaturalTitleCache") //not sure if called at all
234
                if (!ev.getPropertyName().equals("nomenclaturalTitleCache") //not sure if called at all
236 235
                        && !ev.getPropertyName().equals("collectorTitleCache") //not sure if called at all
237 236
                        && !ev.getPropertyName().equals("cacheStrategy")){
238
                    if (! isProtectedTitleCache()){
237
                    if (!ev.getPropertyName().equals("titleCache") && ! isProtectedTitleCache()){
239 238
                        titleCache = null;
240 239
                    }
241 240
                    nomenclaturalTitleCache = null;
cdmlib-model/src/main/java/eu/etaxonomy/cdm/strategy/cache/agent/PersonDefaultCacheStrategy.java
87 87
            result = person.getNomenclaturalTitle();
88 88
            if (isNotBlank(result)){
89 89
                return result.trim();
90
            }else{
91
                result = addInitials("", person);
92
                if (isNotBlank(result)){
93
                    return result.trim();
94
                }
90
            }
91
            result = person.getCollectorTitle();
92
            if (isNotBlank(result)){
93
                return result.trim();
94
            }
95
            result = addInitials("", person);
96
            if (isNotBlank(result)){
97
                return result.trim();
95 98
            }
96 99
        }
97 100
        return person.toString();
cdmlib-model/src/test/java/eu/etaxonomy/cdm/strategy/cache/agent/PersonDefaultCacheStrategyTest.java
276 276
        givenname = "(Brother)"; //example from Salvador DB
277 277
        Assert.assertNull("Non-parsable string should not be empty but null", formatter.getInitialsFromGivenName(givenname, force));
278 278
	}
279
}
279

  
280
	@Test
281
    public final void testUpdateCaches(){
282
	    Assert.assertEquals("P1FN, P.", person1.getTitleCache());
283
	    Assert.assertEquals("P1FN, P.", person1.getNomenclaturalTitleCache());
284
	    Assert.assertEquals("P1FN, P.", person1.getCollectorTitleCache());
285
        person1.setTitleCache("protected cache", true);
286
        Assert.assertEquals("protected cache", person1.getTitleCache());
287
        Assert.assertEquals("protected cache", person1.getNomenclaturalTitleCache());
288
        Assert.assertEquals("protected cache", person1.getCollectorTitleCache());
289

  
290
        person3.setNomenclaturalTitle("nom title");
291
        Assert.assertEquals("nom title", person3.getTitleCache());
292
        Assert.assertEquals("nom title", person3.getNomenclaturalTitleCache());
293
        Assert.assertEquals("nom title", person3.getCollectorTitleCache());
294

  
295
        Person person4 = Person.NewInstance();
296
        person4.setCollectorTitle("collector title");
297
        Assert.assertEquals("collector title", person4.getTitleCache());
298
        Assert.assertEquals("collector title", person4.getNomenclaturalTitleCache());
299
        Assert.assertEquals("collector title", person4.getCollectorTitleCache());
300
	}
301
}

Also available in: Unified diff