X-Git-Url: https://dev.e-taxonomy.eu/gitweb/cdmlib.git/blobdiff_plain/1c1beac92379833a4ddbedcc2dc57d10c0150de5..08183f9940eba2215352b890199303f20046713a:/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/DefaultCategoricalDescriptionBuilder.java diff --git a/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/DefaultCategoricalDescriptionBuilder.java b/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/DefaultCategoricalDescriptionBuilder.java index 939ec3bf44..b8a1869de3 100644 --- a/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/DefaultCategoricalDescriptionBuilder.java +++ b/cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/DefaultCategoricalDescriptionBuilder.java @@ -4,37 +4,48 @@ import java.util.Iterator; import java.util.List; import java.util.Set; +import eu.etaxonomy.cdm.model.common.DefinedTerm; import eu.etaxonomy.cdm.model.common.Language; -import eu.etaxonomy.cdm.model.description.Modifier; +import eu.etaxonomy.cdm.model.common.LanguageString; import eu.etaxonomy.cdm.model.description.State; import eu.etaxonomy.cdm.model.description.StateData; import eu.etaxonomy.cdm.model.description.TextData; public class DefaultCategoricalDescriptionBuilder extends AbstractCategoricalDescriptionBuilder{ - - protected TextData doBuild(List states, List languages){ + + @Override + protected TextData doBuild(List states, List languages){ TextData textData = TextData.NewInstance();// TextData that will contain the description and the language corresponding - StringBuilder CategoricalDescription = new StringBuilder(); + StringBuilder categoricalDescription = new StringBuilder(); Language language = null; for (Iterator sd = states.iterator() ; sd.hasNext() ;){ StateData stateData = sd.next(); State s = stateData.getState(); - Set modifiers = stateData.getModifiers(); // the states and their according modifiers are simply concatenated one after the other - for (Iterator mod = modifiers.iterator() ; mod.hasNext() ;){ - Modifier modifier = mod.next(); - CategoricalDescription.append(" " + getRightText(modifier.getPreferredRepresentation(languages))); + if(s != null && language==null) { + language = s.getPreferredRepresentation(languages).getLanguage(); } - CategoricalDescription.append(" " + getRightText(s.getPreferredRepresentation(languages))); - if (sd.hasNext()) CategoricalDescription.append(separator); if (language==null) { - language = s.getPreferredRepresentation(languages).getLanguage(); + language = Language.DEFAULT(); } + if(stateData.getModifyingText()!=null && stateData.getModifyingText().get(language)!=null){ + LanguageString modyfingText = stateData.getModifyingText().get(language); + categoricalDescription.append(modyfingText.getText()); + } + Set modifiers = stateData.getModifiers(); // the states and their according modifiers are simply concatenated one after the other + for (Iterator mod = modifiers.iterator() ; mod.hasNext() ;){ + DefinedTerm modifier = mod.next(); + categoricalDescription.append(" " + getRightText(modifier.getPreferredRepresentation(languages))); + } + if(s!=null){ + categoricalDescription.append(" " + getRightText(s.getPreferredRepresentation(languages))); + } + if (sd.hasNext()) { + categoricalDescription.append(separator); + } + } - if (language==null) { - language = Language.DEFAULT(); - } - textData.putText(CategoricalDescription.toString(), language); - + textData.putText(language, categoricalDescription.toString()); + return textData; }