Project

General

Profile

Download (1.63 KB) Statistics
| Branch: | Tag: | Revision:
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.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
	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<Modifier> modifiers = stateData.getModifiers(); // the states and their according modifiers are simply concatenated one after the other
23
			for (Iterator<Modifier> mod = modifiers.iterator() ; mod.hasNext() ;){
24
				Modifier modifier = mod.next();
25
				CategoricalDescription.append(" " + getRightText(modifier.getPreferredRepresentation(languages)));
26
			}
27
			CategoricalDescription.append(" " + getRightText(s.getPreferredRepresentation(languages)));
28
			if (sd.hasNext()) CategoricalDescription.append(separator);
29
			if (language==null) {
30
				language = s.getPreferredRepresentation(languages).getLanguage();
31
			}
32
		}
33
		if (language==null) {
34
			language = Language.DEFAULT();
35
		}
36
		textData.putText(language, CategoricalDescription.toString());
37
		
38
		return textData;
39
	}
40

    
41
}
(12-12/75)