import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;
import eu.etaxonomy.cdm.model.name.TaxonNameBase;
import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
+import eu.etaxonomy.cdm.model.occurrence.DeterminationEvent;
import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
import eu.etaxonomy.cdm.model.occurrence.GatheringEvent;
import eu.etaxonomy.cdm.model.occurrence.MediaSpecimen;
private static Set<SingleRead> multiLinkSingleReads;
+ private static Map<DerivedUnit, List<DeterminationEvent>> determinationEvents;
+
private static Map<DerivedUnit, List<SpecimenTypeDesignation>> typeDesignations;
private ConversationHolder conversation;
addTypeDesignation(derivedUnit, specimenTypeDesignation);
}
}
+ //check for determination events
+ if(determinationEvents.get(derivedUnit)==null){
+ for (DeterminationEvent determinationEvent : CdmStore.getService(IOccurrenceService.class).listDeterminationEvents(derivedUnit, null, null, null, null)) {
+ addDeterminationEvent(derivedUnit, determinationEvent);
+ }
+ }
//java.util.Collection<FieldUnit> fieldUnits = CdmStore.getService(IOccurrenceService.class).getFieldUnits(derivedUnit.getUuid());
//TODO : This is not generic anymore for performance reasons
Set<SpecimenOrObservationBase> originals = derivedUnit.getOriginals();
String mostSignificantIdentifier = derivedUnit.getMostSignificantIdentifier();
label += mostSignificantIdentifier!=null?mostSignificantIdentifier+separator:emptyString;
//type designation extension
- List<SpecimenTypeDesignation> list = typeDesignations.get(derivedUnit);
- if(list!=null){
- for (SpecimenTypeDesignation specimenTypeDesignation : list) {
+ List<SpecimenTypeDesignation> typeDesignationList = typeDesignations.get(derivedUnit);
+ if(typeDesignationList!=null){
+ for (SpecimenTypeDesignation specimenTypeDesignation : typeDesignationList) {
label += "("+specimenTypeDesignation.getTypeStatus()+" of ";
for (TaxonNameBase taxonNameBase : specimenTypeDesignation.getTypifiedNames()) {
label += taxonNameBase+separator;
label += ")";
}
}
+ //determination event extension
+ List<DeterminationEvent> determinationEventList = determinationEvents.get(derivedUnit);
+ if(determinationEventList!=null){
+ for (DeterminationEvent determinationEvent : determinationEventList) {
+ label += "(";
+ if(determinationEvent.getTaxon()!=null){
+ label += "Determined as "+determinationEvent.getTaxon();
+ }
+
+ if(label.endsWith(separator)){
+ label = label.substring(0, label.length()-separator.length());
+ }
+ label += ")";
+ }
+ }
}
else if(derivedUnit.getRecordBasis()==SpecimenOrObservationType.TissueSample){
//TissueSample should only be created by using it's own class
}
}
DerivateLabelProvider.typeDesignations = new HashMap<DerivedUnit, List<SpecimenTypeDesignation>>();
+ DerivateLabelProvider.determinationEvents = new HashMap<DerivedUnit, List<DeterminationEvent>>();
+ }
+
+ private static void addDeterminationEvent(DerivedUnit derivedUnit, DeterminationEvent determinationEvent){
+ List<DeterminationEvent> list = determinationEvents.get(derivedUnit);
+ if(list==null){
+ list = new ArrayList<DeterminationEvent>();
+ }
+ list.add(determinationEvent);
+ determinationEvents.put(derivedUnit, list);
}
private static void addTypeDesignation(DerivedUnit derivedUnit, SpecimenTypeDesignation typeDesignation){