ref #10222 use taggedText for taxon label for now and cleanup
authorAndreas Müller <a.mueller@bgbm.org>
Wed, 18 Jan 2023 22:18:39 +0000 (23:18 +0100)
committerAndreas Müller <a.mueller@bgbm.org>
Wed, 18 Jan 2023 22:18:39 +0000 (23:18 +0100)
cdmlib-api/src/main/java/eu/etaxonomy/cdm/api/dto/portal/TaxonBaseDto.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/format/common/TypedLabel.java
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/portal/PortalDtoLoader.java
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/portal/PortalDtoServiceImpl.java

index 05c7998c2bbe3bfc3f8a7a889c00a9a9d558cf65..c7baf7b4278c8e775f5db3d1e783d39bce8cfd8f 100644 (file)
@@ -11,6 +11,7 @@ package eu.etaxonomy.cdm.api.dto.portal;
 import java.util.List;
 
 import eu.etaxonomy.cdm.format.common.TypedLabel;
+import eu.etaxonomy.cdm.strategy.cache.TaggedText;
 
 /**
  * @author a.mueller
@@ -27,6 +28,8 @@ public class TaxonBaseDto extends CdmBaseDto {
     private List<TypedLabel> typedTaxonLabel;
     private List<TypedLabel> typedNameLabel;
 
+    private List<TaggedText> taggedTaxon;
+
     public String getTaxonLabel() {
         return taxonLabel;
     }
@@ -41,19 +44,26 @@ public class TaxonBaseDto extends CdmBaseDto {
         this.nameLabel = nameLabel;
     }
 
-    public List<TypedLabel> getTypedTaxonLabel() {
-        return typedTaxonLabel;
+//    public List<TypedLabel> getTypedTaxonLabel() {
+//        return typedTaxonLabel;
+//    }
+//    public void setTypedTaxonLabel(List<TypedLabel> typedTaxonLabel) {
+//        this.typedTaxonLabel = typedTaxonLabel;
+//    }
+//
+//    public List<TypedLabel> getTypedNameLabel() {
+//        return typedNameLabel;
+//    }
+//    public void setTypedNameLabel(List<TypedLabel> typedNameLabel) {
+//        this.typedNameLabel = typedNameLabel;
+//    }
+    public List<TaggedText> getTaggedTaxon() {
+        return taggedTaxon;
     }
-    public void setTypedTaxonLabel(List<TypedLabel> typedTaxonLabel) {
-        this.typedTaxonLabel = typedTaxonLabel;
+    public void setTaggedTaxon(List<TaggedText> taggedTaxon) {
+        this.taggedTaxon = taggedTaxon;
     }
 
-    public List<TypedLabel> getTypedNameLabel() {
-        return typedNameLabel;
-    }
-    public void setTypedNameLabel(List<TypedLabel> typedNameLabel) {
-        this.typedNameLabel = typedNameLabel;
-    }
 
     //TaxonBase info
     //appendedPhras, useNameCache, doubtful, name, publish
index abd41769e1defba5e3d120c7e6a05f4c861cfde9..ac614c924540d9730a1629b45f59ce5171ddf0bb 100644 (file)
@@ -33,6 +33,10 @@ public class TypedLabel {
     private List<TypedLabel> innerLabels = null;
 
 
+    public TypedLabel(String label) {
+        this(null, null, label, null);
+    }
+
     public TypedLabel(TagEnum tagType, String label) {
         this(null, null, label, tagType);
     }
index 7fed186fbc0d204a7c81062ef90dbc16dc595fdf..440fb66a8f2fe31b6fc3fdd006042859432ed913 100644 (file)
@@ -64,12 +64,14 @@ import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
 import eu.etaxonomy.cdm.model.taxon.Classification;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.cdm.model.taxon.TaxonNodeAgentRelation;
 import eu.etaxonomy.cdm.model.taxon.TaxonNodeStatus;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
 import eu.etaxonomy.cdm.strategy.cache.TaggedCacheHelper;
 import eu.etaxonomy.cdm.strategy.cache.TaggedText;
+import eu.etaxonomy.cdm.strategy.cache.taxon.TaxonBaseDefaultCacheStrategy;
 
 /**
  * Loads the portal dto from a taxon instance.
@@ -90,6 +92,8 @@ public class PortalDtoLoader {
         result.setLastUpdated(getLastUpdated(null, taxon));
         result.setNameLabel(name != null? name.getTitleCache() : "");
         result.setTaxonLabel(CdmUtils.Nz(taxon.getTitleCache()));
+//        result.setTypedTaxonLabel(getTypedTaxonLabel(taxon, config));
+        result.setTaggedTaxon(getTaggedTaxon(taxon, config));
 
         loadTaxonNodes(taxon, result, config);
         loadSynonyms(taxon, result, config);
@@ -102,6 +106,13 @@ public class PortalDtoLoader {
         return result;
     }
 
+    private List<TaggedText> getTaggedTaxon(Taxon taxon, TaxonPageDtoConfiguration config) {
+        List<TypedLabel> result = new ArrayList<>();
+        TaxonBaseDefaultCacheStrategy<TaxonBase<?>> formatter = new TaxonBaseDefaultCacheStrategy<>();
+        List<TaggedText> tags = formatter.getTaggedTitle(taxon);
+        return tags;
+    }
+
     private void loadKeys(Taxon taxon, TaxonPageDto result, TaxonPageDtoConfiguration config) {
         ContainerDto<KeyDTO> container =new ContainerDto<>();
         //TODO
@@ -459,9 +470,8 @@ public class PortalDtoLoader {
             FactDto factDto = new FactDto();
             featureDto.getFacts().add(factDto);
             //TODO do we really need type information for textdata here?
-            TypedLabel typedLabel = new TypedLabel(td, text);
+            TypedLabel typedLabel = new TypedLabel(text);
             typedLabel.setClassAndId(td);
-            typedLabel.setLabel(text);
             factDto.getTypedLabel().add(typedLabel);
         }else {
 //            TODO
index 42f30d9cd6c1651a21dae34191cc8aa8695f7c13..6bc8e0f3081e7df14ed7824ec8bce4a2ee55fc22 100644 (file)
@@ -66,8 +66,9 @@ public class PortalDtoServiceImpl implements IPortalDtoService {
         dto.setUuid((UUID)hqlResult.get(0)[1]);
         dto.setTaxonLabel((String)hqlResult.get(0)[2]);
         dto.setNameLabel((String)hqlResult.get(0)[3]);
-        dto.setTypedTaxonLabel(null);
-        dto.setTypedNameLabel(null);
+//        dto.setTypedTaxonLabel(null);
+//        dto.setTypedNameLabel(null);
+        dto.setTaggedTaxon(null);
 
         //taxonNodes