Project

General

Profile

Download (1.67 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
			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
}
(11-11/83)