2 * Copyright (C) 2007 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
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.
10 package eu
.etaxonomy
.cdm
.model
.common
;
12 import java
.util
.Enumeration
;
13 import java
.util
.HashMap
;
14 import java
.util
.List
;
15 import java
.util
.Locale
;
17 import org
.apache
.log4j
.Logger
;
22 * Special array that takes care that all LanguageString elements have a unique language
24 public class MultilanguageSet
extends HashMap
<Language
, LanguageString
> {
26 private static final long serialVersionUID
= 7876604337076705862L;
28 static Logger logger
= Logger
.getLogger(MultilanguageSet
.class);
34 public static MultilanguageSet
NewInstance(){
35 MultilanguageSet result
= new MultilanguageSet();
43 public static MultilanguageSet
NewInstance(LanguageString languageString
){
44 MultilanguageSet result
= new MultilanguageSet(languageString
);
48 public MultilanguageSet(){
55 protected MultilanguageSet (LanguageString languageString
){
57 this.add(languageString
);
60 public String
getText(Language language
){
61 LanguageString languageString
= super.get(language
);
62 if (languageString
!= null){
63 return languageString
.getText();
70 * @param languageString
71 * @return String the previous text in the MultilanguageSet that was associated with the language
72 * defined in languageString, or null if there was no such text before. (A null return can also indicate that the text was previously null.)
74 public LanguageString
add(LanguageString languageString
){
75 if (languageString
== null){
78 // Language language = languageString.getLanguage();
79 // String text = languageString.getText();
80 // String result =this.put(languageString.getLanguage(), languageString.getText());
83 return this.put(languageString
.getLanguage(), languageString
);
93 public LanguageString
getPreferredLanguageString(List
<Language
> languages
){
95 LanguageString languageString
= null;
96 for (Language language
: languages
) {
97 languageString
= super.get(language
);
98 if(languageString
!= null){
99 return languageString
;
102 return super.get(Language
.DEFAULT());