5e1312ec1c53e90b722c068ddacb27642682ded7
[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.Map;
13 import java.util.concurrent.ConcurrentHashMap;
14
15 import javax.xml.bind.annotation.adapters.XmlAdapter;
16
17 import eu.etaxonomy.cdm.model.common.Language;
18 import eu.etaxonomy.cdm.model.common.LanguageString;
19
20 /**
21 * @author a.babadshanjan
22 * @version 1.0
23 */
24 public class MultilanguageTextAdapter extends XmlAdapter<MultilanguageTextElement, Map<Language, LanguageString>> {
25
26 @Override
27 public MultilanguageTextElement marshal(Map<Language, LanguageString> value)
28 throws Exception {
29
30 MultilanguageTextElement multilanguageTextElement = new MultilanguageTextElement();
31
32 for(Language l : value.keySet()) {
33 multilanguageTextElement.getLanguageString().add(value.get(l));
34 }
35 return multilanguageTextElement;
36 }
37
38 @Override
39 public Map<Language, LanguageString> unmarshal(MultilanguageTextElement value)
40 throws Exception {
41
42 Map<Language,LanguageString> map = new ConcurrentHashMap<>();
43
44 for(LanguageString l : value.getLanguageString()) {
45 map.put(l.getLanguage(), l);
46 }
47 return map;
48 }
49 }