From: Andreas Müller Date: Fri, 27 May 2016 00:04:52 +0000 (+0200) Subject: Cache for TaxonNodes #5835 X-Git-Tag: 4.1.0^2~17 X-Git-Url: https://dev.e-taxonomy.eu/gitweb/taxeditor.git/commitdiff_plain/87d0418a83a053362bb42705296f65105006f2ca Cache for TaxonNodes #5835 --- diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/DescriptionHelper.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/DescriptionHelper.java index b6d0d61bd..d0e40abf6 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/DescriptionHelper.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/model/DescriptionHelper.java @@ -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();