1 /*
2  * Copyright (c) 2004, 2012, Oracle and/or its affiliates. All rights reserved.
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * This code is free software; you can redistribute it and/or modify it
6  * under the terms of the GNU General Public License version 2 only, as
7  * published by the Free Software Foundation.  Oracle designates this
8  * particular file as subject to the "Classpath" exception as provided
9  * by Oracle in the LICENSE file that accompanied this code.
10  *
11  * This code is distributed in the hope that it will be useful, but WITHOUT
12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14  * version 2 for more details (a copy is included in the LICENSE file that
15  * accompanied this code).
16  *
17  * You should have received a copy of the GNU General Public License version
18  * 2 along with this work; if not, write to the Free Software Foundation,
19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20  *
21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22  * or visit www.oracle.com if you need additional information or have any
23  * questions.
24  *
25  * THIS FILE WAS MODIFIED BY SUN MICROSYSTEMS, INC.
26  */
27 
28 package com.sun.xml.internal.fastinfoset;
29 
30 import java.util.Locale;
31 import java.util.ResourceBundle;
32 
33 /** Resource bundle implementation for localized messages.
34  */
35 public class CommonResourceBundle extends AbstractResourceBundle {
36 
37     public static final String BASE_NAME = "com.sun.xml.internal.fastinfoset.resources.ResourceBundle";
38     private static volatile CommonResourceBundle instance = null;
39     private static Locale locale = null;
40     private ResourceBundle bundle = null;
41 
CommonResourceBundle()42     protected CommonResourceBundle() {
43         // Load the resource bundle of default locale
44         bundle = ResourceBundle.getBundle(BASE_NAME);
45     }
46 
CommonResourceBundle(Locale locale)47     protected CommonResourceBundle(Locale locale) {
48         // Load the resource bundle of specified locale
49         bundle = ResourceBundle.getBundle(BASE_NAME, locale);
50     }
51 
getInstance()52     public static CommonResourceBundle getInstance() {
53         if (instance == null) {
54             synchronized (CommonResourceBundle.class) {
55                 instance = new CommonResourceBundle();
56                 //**need to know where to get the locale
57                 //String localeString = CommonProperties.getInstance()
58                 //                  .getProperty("omar.common.locale");
59                 locale = parseLocale(/*localeString*/null);
60             }
61         }
62 
63         return instance;
64     }
65 
getInstance(Locale locale)66     public static CommonResourceBundle getInstance(Locale locale) {
67         if (instance == null) {
68             synchronized (CommonResourceBundle.class) {
69                 instance = new CommonResourceBundle(locale);
70             }
71         } else {
72             synchronized (CommonResourceBundle.class) {
73                 if (CommonResourceBundle.locale != locale) {
74                     instance = new CommonResourceBundle(locale);
75                 }
76             }
77         }
78         return instance;
79     }
80 
81 
getBundle()82     public ResourceBundle getBundle() {
83         return bundle;
84     }
getBundle(Locale locale)85     public ResourceBundle getBundle(Locale locale) {
86         return ResourceBundle.getBundle(BASE_NAME, locale);
87     }
88 
89 }
90