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;
}
+
}