Project

General

Profile

Download (2.02 KB) Statistics
| Branch: | Tag: | Revision:
1 8f0a4be2 m.venin
package eu.etaxonomy.cdm.api.service;
2
3
import java.util.Iterator;
4
import java.util.List;
5
import java.util.Set;
6
7 533cbb43 Andreas Müller
import eu.etaxonomy.cdm.model.common.DefinedTerm;
8 8f0a4be2 m.venin
import eu.etaxonomy.cdm.model.common.Language;
9 b09c1f76 Patric Plitzner
import eu.etaxonomy.cdm.model.common.LanguageString;
10 8f0a4be2 m.venin
import eu.etaxonomy.cdm.model.description.State;
11
import eu.etaxonomy.cdm.model.description.StateData;
12
import eu.etaxonomy.cdm.model.description.TextData;
13
14
public class DefaultCategoricalDescriptionBuilder extends AbstractCategoricalDescriptionBuilder{
15 b09c1f76 Patric Plitzner
16
	@Override
17
    protected TextData doBuild(List<StateData> states, List<Language> languages){
18 b99504a8 m.venin
		TextData textData = TextData.NewInstance();// TextData that will contain the description and the language corresponding
19 b09c1f76 Patric Plitzner
		StringBuilder categoricalDescription = new StringBuilder();
20 cba2e95a m.venin
		Language language = null;
21 8f0a4be2 m.venin
		for (Iterator<StateData> sd = states.iterator() ; sd.hasNext() ;){
22
			StateData stateData = sd.next();
23
			State s = stateData.getState();
24 b09c1f76 Patric Plitzner
			if(s != null && language==null) {
25
			    language = s.getPreferredRepresentation(languages).getLanguage();
26
			}
27
			if (language==null) {
28
			    language = Language.DEFAULT();
29
			}
30
			if(stateData.getModifyingText()!=null && stateData.getModifyingText().get(language)!=null){
31
			    LanguageString modyfingText = stateData.getModifyingText().get(language);
32
			    categoricalDescription.append(modyfingText.getText());
33
			}
34 533cbb43 Andreas Müller
			Set<DefinedTerm> modifiers = stateData.getModifiers(); // the states and their according modifiers are simply concatenated one after the other
35
			for (Iterator<DefinedTerm> mod = modifiers.iterator() ; mod.hasNext() ;){
36
				DefinedTerm modifier = mod.next();
37 b09c1f76 Patric Plitzner
				categoricalDescription.append(" " + getRightText(modifier.getPreferredRepresentation(languages)));
38 cba2e95a m.venin
			}
39 b09c1f76 Patric Plitzner
			if(s!=null){
40
			    categoricalDescription.append(" " + getRightText(s.getPreferredRepresentation(languages)));
41 8f0a4be2 m.venin
			}
42 b09c1f76 Patric Plitzner
			if (sd.hasNext()) {
43
                categoricalDescription.append(separator);
44
            }
45
46 8f0a4be2 m.venin
		}
47 b09c1f76 Patric Plitzner
		textData.putText(language, categoricalDescription.toString());
48
49 8f0a4be2 m.venin
		return textData;
50
	}
51 cba2e95a m.venin
52 8f0a4be2 m.venin
}