Project

General

Profile

Download (1.67 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
import eu.etaxonomy.cdm.model.common.Language;
8
import eu.etaxonomy.cdm.model.description.Modifier;
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 cba2e95a m.venin
	protected TextData doBuild(List<StateData> states, List<Language> languages){
16 b99504a8 m.venin
		TextData textData = TextData.NewInstance();// TextData that will contain the description and the language corresponding
17 8f0a4be2 m.venin
		StringBuilder CategoricalDescription = new StringBuilder();
18 cba2e95a m.venin
		Language language = null;
19 8f0a4be2 m.venin
		for (Iterator<StateData> sd = states.iterator() ; sd.hasNext() ;){
20
			StateData stateData = sd.next();
21
			State s = stateData.getState();
22 1c1beac9 m.venin
			Set<Modifier> modifiers = stateData.getModifiers(); // the states and their according modifiers are simply concatenated one after the other
23 8f0a4be2 m.venin
			for (Iterator<Modifier> mod = modifiers.iterator() ; mod.hasNext() ;){
24
				Modifier modifier = mod.next();
25 00903074 m.venin
				CategoricalDescription.append(" " + getRightText(modifier.getPreferredRepresentation(languages)));
26 cba2e95a m.venin
			}
27 0c8a3fee Cherian Mathew
			if(s != null) {
28
				CategoricalDescription.append(" " + getRightText(s.getPreferredRepresentation(languages)));
29
				if (language==null) {
30
					language = s.getPreferredRepresentation(languages).getLanguage();
31
				}
32 8f0a4be2 m.venin
			}
33 0c8a3fee Cherian Mathew
			if (sd.hasNext()) CategoricalDescription.append(separator);
34
			
35 cba2e95a m.venin
		}
36
		if (language==null) {
37
			language = Language.DEFAULT();
38 8f0a4be2 m.venin
		}
39 e66d9d39 Katja Luther
		textData.putText(language, CategoricalDescription.toString());
40 8f0a4be2 m.venin
		
41
		return textData;
42
	}
43 cba2e95a m.venin
44 8f0a4be2 m.venin
}