remove old TermsDataSet
[cdmlib.git] / cdmlib-services / src / main / java / eu / etaxonomy / cdm / api / service / DefaultCategoricalDescriptionBuilder.java
1 package eu.etaxonomy.cdm.api.service;
2
3 import java.util.Iterator;
4 import java.util.List;
5 import java.util.Set;
6
7 import eu.etaxonomy.cdm.model.common.DefinedTerm;
8 import eu.etaxonomy.cdm.model.common.Language;
9 import eu.etaxonomy.cdm.model.description.State;
10 import eu.etaxonomy.cdm.model.description.StateData;
11 import eu.etaxonomy.cdm.model.description.TextData;
12
13 public class DefaultCategoricalDescriptionBuilder extends AbstractCategoricalDescriptionBuilder{
14
15 protected TextData doBuild(List<StateData> states, List<Language> languages){
16 TextData textData = TextData.NewInstance();// TextData that will contain the description and the language corresponding
17 StringBuilder CategoricalDescription = new StringBuilder();
18 Language language = null;
19 for (Iterator<StateData> sd = states.iterator() ; sd.hasNext() ;){
20 StateData stateData = sd.next();
21 State s = stateData.getState();
22 Set<DefinedTerm> modifiers = stateData.getModifiers(); // the states and their according modifiers are simply concatenated one after the other
23 for (Iterator<DefinedTerm> mod = modifiers.iterator() ; mod.hasNext() ;){
24 DefinedTerm modifier = mod.next();
25 CategoricalDescription.append(" " + getRightText(modifier.getPreferredRepresentation(languages)));
26 }
27 if(s != null) {
28 CategoricalDescription.append(" " + getRightText(s.getPreferredRepresentation(languages)));
29 if (language==null) {
30 language = s.getPreferredRepresentation(languages).getLanguage();
31 }
32 }
33 if (sd.hasNext()) CategoricalDescription.append(separator);
34
35 }
36 if (language==null) {
37 language = Language.DEFAULT();
38 }
39 textData.putText(language, CategoricalDescription.toString());
40
41 return textData;
42 }
43
44 }