A few improvements, and code cleaning
authorm.venin <m.venin@localhost>
Fri, 23 Jul 2010 14:21:09 +0000 (14:21 +0000)
committerm.venin <m.venin@localhost>
Fri, 23 Jul 2010 14:21:09 +0000 (14:21 +0000)
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/DefaultCategoricalDescriptionBuilder.java

index f0f5e11e6ec59e8a66e8090250bd6002ba90dbaa..f0042db9052c6f7d8ea10e1fa6a49389e70f359d 100644 (file)
@@ -12,24 +12,29 @@ import eu.etaxonomy.cdm.model.description.TextData;
 
 public class DefaultCategoricalDescriptionBuilder extends AbstractCategoricalDescriptionBuilder{
        
-       protected TextData doBuild(List<StateData> states){
+       protected TextData doBuild(List<StateData> states, List<Language> languages){
                TextData textData = TextData.NewInstance();// TextData that will contain the description and the language corresponding
-               Language language = Language.DEFAULT();
-               
                StringBuilder CategoricalDescription = new StringBuilder();
-
+               Language language = null;
                for (Iterator<StateData> sd = states.iterator() ; sd.hasNext() ;){
                        StateData stateData = sd.next();
                        State s = stateData.getState();
                        Set<Modifier> modifiers = stateData.getModifiers(); // the states and their according modifiers are simply written one after the other
                        for (Iterator<Modifier> mod = modifiers.iterator() ; mod.hasNext() ;){
                                Modifier modifier = mod.next();
-                               CategoricalDescription.append(" " + modifier.getPreferredRepresentation(language).getLabel());
+                               CategoricalDescription.append(" " + modifier.getPreferredRepresentation(languages).getLabel());
+                       }
+                       CategoricalDescription.append(" " + s.getPreferredRepresentation(languages).getLabel());
+                       if (language==null) {
+                               language = s.getPreferredRepresentation(languages).getLanguage(); // TODO What if there are different languages ?
                        }
-                       CategoricalDescription.append(" " + s.getPreferredRepresentation(language).getLabel());
+               }
+               if (language==null) {
+                       language = Language.DEFAULT();
                }
                textData.putText(CategoricalDescription.toString(), language);
                
                return textData;
        }
+
 }