Cache for TaxonNodes #5835
authorAndreas Müller <a.mueller@bgbm.org>
Fri, 27 May 2016 00:04:52 +0000 (02:04 +0200)
committerAndreas Müller <a.mueller@bgbm.org>
Fri, 27 May 2016 00:04:52 +0000 (02:04 +0200)
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/DescriptionHelper.java

index b6d0d61bd9b9e039f67b647bf1f7331fc8e586c4..d0e40abf68006e300d5f00fde9c6d83fca3e0a93 100644 (file)
@@ -62,8 +62,10 @@ import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.cdm.model.name.TypeDesignationBase;
 import eu.etaxonomy.cdm.model.name.TypeDesignationStatusBase;
 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
+import eu.etaxonomy.cdm.model.taxon.Classification;
 import eu.etaxonomy.cdm.model.taxon.SynonymRelationship;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
@@ -241,6 +243,8 @@ public class DescriptionHelper {
                        return getCache((TypeDesignationBase<?>) element);
                }else if (element instanceof HomotypicalGroup) {
                        return getCache((HomotypicalGroup) element);
+               }else if (element instanceof TaxonNode) {
+                       return getCache((TaxonNode) element);
                }else if (element instanceof Marker) {
                        Marker marker = (Marker) element;
                        MarkerType type = marker.getMarkerType();
@@ -258,6 +262,38 @@ public class DescriptionHelper {
        }
 
 
+       private static String getCache(TaxonNode taxonNode) {
+               String result = "";
+               Classification classification = taxonNode.getClassification();
+               if (classification != null){
+                       String classificationStr = classification.getName() == null ? "" : classification.getName().getText();
+                       result = CdmUtils.concat("" , result, classificationStr);
+                       if (StringUtils.isBlank(result)){
+                               result = classification.toString();
+                       }
+               }
+               String parentStr;
+               TaxonNode parentNode = taxonNode.getParent();
+               if (parentNode == null){
+                       parentStr = "no parent";
+               }else{
+                       Taxon parentTaxon = parentNode.getTaxon();
+                       if (parentTaxon == null){
+                               parentStr = "no parent taxon";
+                       }else{
+                               TaxonNameBase<?,?> parentName = parentTaxon.getName();
+                               if (parentName == null){
+                                       parentStr = parentTaxon.getTitleCache();
+                               }else{
+                                       parentStr = parentName.getTitleCache();
+                               }
+                       }
+               }
+               result = CdmUtils.concat(": ", result, parentStr);
+               
+               return null;
+       }
+
        private static String getCache(TypeDesignationBase<?> designation) {
                designation = CdmBase.deproxy(designation);
                TypeDesignationStatusBase<?> status = designation.getTypeStatus();