commit after merging from trunk
[cdmlib.git] / cdmlib-model / src / main / java / eu / etaxonomy / cdm / jaxb / MultilanguageTextAdapter.java
1 /**
2 * Copyright (C) 2009 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
5 *
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
8 */
9
10 package eu.etaxonomy.cdm.jaxb;
11
12 import java.util.HashMap;
13 import java.util.Map;
14 import java.util.concurrent.ConcurrentHashMap;
15
16 import javax.xml.bind.annotation.adapters.XmlAdapter;
17
18 import eu.etaxonomy.cdm.model.common.Language;
19 import eu.etaxonomy.cdm.model.common.LanguageString;
20 import eu.etaxonomy.cdm.model.common.MultilanguageTextHelper;
21
22 /**
23 * @author a.babadshanjan
24 * @version 1.0
25 */
26 public class MultilanguageTextAdapter extends XmlAdapter<MultilanguageTextElement, Map<Language, LanguageString>> {
27
28 @Override
29 public MultilanguageTextElement marshal(Map<Language, LanguageString> value)
30 throws Exception {
31
32 MultilanguageTextElement multilanguageTextElement = new MultilanguageTextElement();
33
34 for(Language l : value.keySet()) {
35 multilanguageTextElement.getLanguageString().add(value.get(l));
36 }
37 return multilanguageTextElement;
38 }
39
40 @Override
41 public Map<Language, LanguageString> unmarshal(MultilanguageTextElement value)
42 throws Exception {
43
44 Map<Language,LanguageString> map = new ConcurrentHashMap<Language, LanguageString>();
45
46 for(LanguageString l : value.getLanguageString()) {
47 map.put(l.getLanguage(), l);
48 }
49 return map;
50 }
51 }