Merge branch 'release/5.18.0'
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / model / DescriptionHelper.java
index 21a342c713ce1c4f160971a2e3b17a6a09981ca8..730d0c201a1b8c1ee61384e653c4a9cf7324e00c 100644 (file)
@@ -15,17 +15,13 @@ import java.util.Arrays;
 import java.util.List;
 import java.util.Set;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.hibernate.LazyInitializationException;
-import org.joda.time.DateTimeFieldType;
-import org.joda.time.Partial;
-import org.joda.time.format.DateTimeFormatter;
 
 import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
 import eu.etaxonomy.cdm.common.CdmUtils;
-import eu.etaxonomy.cdm.format.description.DefaultCategoricalDescriptionBuilder;
-import eu.etaxonomy.cdm.format.description.DefaultQuantitativeDescriptionBuilder;
-import eu.etaxonomy.cdm.format.description.DescriptionBuilder;
+import eu.etaxonomy.cdm.format.common.ExtendedTimePeriodFormatter;
+import eu.etaxonomy.cdm.format.description.CategoricalDataFormatter;
 import eu.etaxonomy.cdm.format.description.QuantitativeDataFormatter;
 import eu.etaxonomy.cdm.model.agent.AgentBase;
 import eu.etaxonomy.cdm.model.common.CdmBase;
@@ -79,7 +75,6 @@ import eu.etaxonomy.cdm.model.taxon.TaxonBase;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
 import eu.etaxonomy.cdm.model.term.Representation;
-import eu.etaxonomy.cdm.strategy.cache.common.ExtendedTimePeriodPartialFormatter;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
@@ -90,6 +85,8 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  */
 public class DescriptionHelper {
 
+    public static final String NO_LABEL_STRING = "[no label]";
+
        /**
         * Returns whatever the element's title cache equivalent is,
         * depending on its class.
@@ -124,7 +121,6 @@ public class DescriptionHelper {
                        }
                }
 
-
                String cache = null;
                if (element instanceof TextData) {
                        //cache = ((TextData) element).getText(language);
@@ -140,7 +136,6 @@ public class DescriptionHelper {
                        }else{
                                cache = "No taxon chosen";
                        }
-
                }
                if (element instanceof Distribution) {
                        Distribution distribution = (Distribution) element;
@@ -538,26 +533,19 @@ public class DescriptionHelper {
 
        public static String getQuantitativeDataText(QuantitativeData element) {
            QuantitativeDataFormatter formatter = new QuantitativeDataFormatter(null, null);
-           String label = formatter.doFormat(element);
-
+           String label = formatter.format(element, getLanguageList());
                return label;
        }
 
        public static String getCategoricalDataText(CategoricalData element) {
-               TextData textData = categoricalDescriptionBuilder.build(element, getLanguageList());
-
-               return textData.getText(CdmStore.getDefaultLanguage());
+           CategoricalDataFormatter formatter = new CategoricalDataFormatter(null, null);
+               return formatter.format(element, getLanguageList());
        }
 
        private static List<Language> getLanguageList(){
                return Arrays.asList(new Language[]{CdmStore.getDefaultLanguage()});
        }
 
-       private static DescriptionBuilder<QuantitativeData> quantitativeDescriptionBuilder = new DefaultQuantitativeDescriptionBuilder();
-       private static DescriptionBuilder<CategoricalData> categoricalDescriptionBuilder = new DefaultCategoricalDescriptionBuilder();
-    public static final String NO_LABEL_STRING = "[no label]";
-
-
        public static String getDistributionText(Distribution element) {
 
                String text = "EMPTY";
@@ -597,7 +585,7 @@ public class DescriptionHelper {
                                        text += source.getCitation().getTitleCache();
                                }
                                if(source.getNameUsedInSource() != null){
-                                       text += " [ " + source.getNameUsedInSource().getTitleCache() + " ]";
+                                       text += " [" + source.getNameUsedInSource().getTitleCache() + "]";
                                }
                        }
                        if(isBlank(text)){
@@ -703,36 +691,9 @@ public class DescriptionHelper {
        }
 
     private static String getTemporalDataText(TemporalData element) {
-        String result = "";
-
         ExtendedTimePeriod period = element.getPeriod();
-
-        if(period != null){
-            Partial end = period.getEnd()==null? null :period.getEnd().without(DateTimeFieldType.year());
-            Partial extremeEnd = period.getExtremeEnd()== null? null: period.getExtremeEnd().without(DateTimeFieldType.year());
-
-            Partial start = period.getStart()==null? null: period.getStart().without(DateTimeFieldType.year());
-            Partial extremeStart = period.getExtremeStart()==null? null : period.getExtremeStart().without(DateTimeFieldType.year());
-
-            DateTimeFormatter formatter = ExtendedTimePeriodPartialFormatter.NewInstance();
-            if (extremeStart != null){
-                result = "(" + extremeStart.toString(formatter) +"-)";
-            }
-            if (start != null){
-                result += start.toString(formatter);
-            }
-            if (end != null){
-                result += "-" + end.toString(formatter);
-            }
-
-            if (extremeEnd != null){
-                result += "(-" + extremeEnd.toString(formatter)+")";
-            }
-        }
-
-        return result;
-
-//        return element.getPeriod().toString();
+        ExtendedTimePeriodFormatter formatter = ExtendedTimePeriodFormatter.NewDefaultInstance();
+        return period == null ? NO_LABEL_STRING : formatter.format(period);
     }
 
     private static boolean isNotBlank(String str){