• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 package org.unicode.cldr.util;
2 
3 import java.util.HashMap;
4 import java.util.Map;
5 import java.util.Set;
6 
7 /**
8  * This list needs updating as a new organizations are added; that's by design
9  * so that we know when new ones show up.
10  */
11 public enum Organization {
12     // Please update Locales.txt for default coverage when adding an organization here.
13     adlam("Winden Jangen Adlam"),
14     adobe("Adobe"),
15     afghan_csa("Afghan CSA"),
16     afghan_mcit("Afghan MCIT"),
17     afrigen("Afrigen"),
18     apple("Apple"),
19     bangladesh("Bangladesh", "Bangladesh Computer Council"),
20     bangor_univ("Bangor Univ."),
21     bhutan("Bhutan DDC"),
22     breton("Office of Breton Lang"),
23     cherokee("Cherokee Nation"),
24     cldr("Cldr"),
25     facebook("Facebook"),
26     gaeilge("Foras na Gaeilge"),
27     georgia_isi("Georgia ISI"),
28     gnome("Gnome Foundation"),
29     google("Google"),
30     guest("Guest (Unicode)"),
31     ibm("IBM"),
32     india("India MIT"),
33     iran_hci("Iran HCI"),
34     kendra("Kendra (Nepal)"),
35     kotoistus("Kotoistus (Finnish IT Ctr)"),
36     kunsill_malti("Il-Kunsill Nazzjonali tal-Ilsien Malti", "National Council for the Maltese Language", "malta", "malti"),
37     lakota_lc("Lakota LC"),
38     lao_dpt("Lao Posts/Telecom??"),
39     longnow("The Long Now Foundation", "Long Now", "PanLex", "Utilka Foundation"),
40     microsoft("Microsoft"),
41     mozilla("Mozilla"),
42     netflix("Netflix"),
43     nyiakeng_puachue_hmong("Nyiakeng Puachue Hmong"),
44     openinstitute("Open Inst (Cambodia)"),
45     openoffice_org("Open Office"),
46     oracle("Oracle", "sun", "Sun Micro"),
47     pakistan("Pakistan"),
48     rodakych("Rodakych", "Nigerian Pidgin"),
49     rumantscha("Lia Rumantscha"),
50     sardware("Sardware", "Sardware"),
51     sil("SIL", "SIL International"),
52     srilanka("Sri Lanka ICTA", "Sri Lanka"),
53     surveytool("Survey Tool"),
54     welsh_lc("Welsh LC"),
55     wikimedia("Wikimedia Foundation"),
56     yahoo("Yahoo"),
57     // To be removed.
58     ;
59 
60     public final String displayName;
61     private final String[] names;
62 
fromString(String name)63     public static Organization fromString(String name) {
64         if (name == null) {
65             throw new NullPointerException("Organization.fromString(null) called");
66         }
67         if (name.contains("Government of Pakistan")) {
68             /*
69              * "Government of Pakistan - National Language Authority"
70              * occurs in the cldr_users table; avoid problems with hyphen
71              */
72             return Organization.pakistan;
73         } else if (name.contains("Utilika")) {
74             /*
75              * "Utilika" and "Utilika Foundation" occur in the cldr_users table.
76              * Compare "Utilka Foundation", one of the variants for Organization.longnow
77              */
78             return Organization.longnow;
79         }
80         name = name.toLowerCase().replace('-', '_').replace('.', '_');
81         Organization org = OrganizationNameMap.get(name);
82         return org;
83     }
84 
getDisplayName()85     public String getDisplayName() {
86         return displayName;
87     }
88 
89     static Map<String, Organization> OrganizationNameMap;
90     static {
91         OrganizationNameMap = new HashMap<>();
92         for (Organization x : values()) {
93             OrganizationNameMap.put(x.displayName.toLowerCase().replace('-', '_').replace('.', '_'), x);
94             for (String name : x.names) {
95                 OrganizationNameMap.put(name.toLowerCase().replace('-', '_').replace('.', '_'), x);
96             }
97             OrganizationNameMap.put(x.name().toLowerCase().replace('-', '_').replace('.', '_'), x);
98         }
99     }
100 
101     /**
102      * @param displayName Preferred display name for the organization
103      * @param names Alternate aliases for this organization
104      */
Organization(String displayName, String... names)105     private Organization(String displayName, String... names) {
106         this.displayName = displayName;
107         this.names = names;
108     }
109 
110     private LocaleSet localeSet = null;
111 
getCoveredLocales()112     public LocaleSet getCoveredLocales() {
113         if (localeSet == null) {
114             final Set<String> localeNameSet = StandardCodes.make().getLocaleCoverageLocales(this);
115             if (localeNameSet.contains(LocaleNormalizer.ALL_LOCALES)) {
116                 localeSet = LocaleNormalizer.ALL_LOCALES_SET;
117             } else {
118                 localeSet = new LocaleSet(localeNameSet);
119             }
120         }
121         return localeSet;
122     }
123 }
124