bugfix for field observation cache strategy (protected title cache collectors)
[cdmlib.git] / cdmlib-services / src / main / java / eu / etaxonomy / cdm / api / facade / DerivedUnitFacadeFieldObservationCacheStrategy.java
index 356e7af29ba1a7193e2cd87ac0525fb0871dc1ec..c3efd547216a0cfab719a0bbb1a44e36f3848402 100644 (file)
@@ -133,11 +133,14 @@ public class DerivedUnitFacadeFieldObservationCacheStrategy extends StrategyBase
 \r
        private String getCollectorAndFieldNumber(DerivedUnitFacade facade) {\r
                String result = "";\r
-               AgentBase collector = facade.getCollector();\r
+               AgentBase<?> collector = facade.getCollector();\r
                String fieldNumber = facade.getFieldNumber();\r
                Person primaryCollector = facade.getPrimaryCollector();\r
+               \r
                if (collector == null){\r
                        return fieldNumber;\r
+               }else if(collector.isProtectedTitleCache()){\r
+                       return  CdmUtils.concat(" ", collector.getTitleCache(), fieldNumber);\r
                }else{\r
                        result = "";\r
                        Team collectorTeam;\r
@@ -147,11 +150,12 @@ public class DerivedUnitFacadeFieldObservationCacheStrategy extends StrategyBase
                                        primaryCollector = CdmBase.deproxy(collector, Person.class);\r
                                }\r
                                collectorTeam.addTeamMember(primaryCollector);\r
-                       } else if (collector.isInstanceOf(Team.class)){\r
+                       } else if (collector.isInstanceOf(Team.class) && ! collector.isProtectedTitleCache() ){\r
                                collectorTeam = CdmBase.deproxy(collector, Team.class);\r
                        }else{\r
                                return  CdmUtils.concat(" ", collector.getTitleCache(), fieldNumber);\r
                        }\r
+                       \r
                        int counter = 0;\r
                        int teamSize = collectorTeam.getTeamMembers().size();\r
                        boolean fieldNumberAdded = false;\r
@@ -187,7 +191,7 @@ public class DerivedUnitFacadeFieldObservationCacheStrategy extends StrategyBase
         * @return\r
         */\r
        private String getMemberString(Person member) {\r
-               if (StringUtils.isNotBlank(member.getLastname())){\r
+               if (StringUtils.isNotBlank(member.getLastname()) && ! member.isProtectedTitleCache() ){\r
                        String result = member.getLastname();\r
                        if  (StringUtils.isNotBlank(member.getFirstname())){\r
                                result = member.getFirstname().substring(0,1) + ". " + result;\r