* java/util/ResourceBundle.java
authorTom Tromey <tromey@redhat.com>
Fri, 15 Dec 2000 06:51:07 +0000 (06:51 +0000)
committerTom Tromey <tromey@gcc.gnu.org>
Fri, 15 Dec 2000 06:51:07 +0000 (06:51 +0000)
(getBundle(String,Locale,ClassLoader)): New method.
(trySomeGetBundle): Added `loader' argument.
(partialGetBundle): Likewise.

From-SVN: r38275

libjava/ChangeLog
libjava/java/util/ResourceBundle.java

index 0f958887461dab8cfdf30ff992bbfc913a50d455..24f2307b84b9396516697da569eb8df0fcce9316 100644 (file)
@@ -1,5 +1,10 @@
 2000-12-14  Tom Tromey  <tromey@redhat.com>
 
+       * java/util/ResourceBundle.java
+       (getBundle(String,Locale,ClassLoader)): New method.
+       (trySomeGetBundle): Added `loader' argument.
+       (partialGetBundle): Likewise.
+
        * java/text/NumberFormat.java (groupingUsed, parseIntegerOnly,
        maximumFractionDigits, maximumIntegerDigits,
        minimumFractionDigits, minimumIntegerDigits): Now
index 639872bb838a85bf9e27a1691fa9c7a602e0ac1a..99b81bf218e7ebc8cff3cfcd45fd61c445d7c61a 100644 (file)
@@ -73,7 +73,8 @@ public abstract class ResourceBundle
   // stripping off the '_' delimited tails until the search name is
   // the same as stopHere.
   private static final ResourceBundle trySomeGetBundle (String bundleName,
-                                                       String stopHere)
+                                                       String stopHere,
+                                                       ClassLoader loader)
     {
       Class rbc;
       ResourceBundle needs_parent = null, r, result = null;
@@ -115,9 +116,9 @@ public abstract class ResourceBundle
            }
 
          // Look for a properties file.
-         InputStream i = 
-           ClassLoader.getSystemResourceAsStream (bundleName.replace ('.', '/') 
-                                                  + ".properties");
+         InputStream i = loader.getResourceAsStream (bundleName.replace ('.',
+                                                                         '/')
+                                                     + ".properties");
          if (i != null)
            {
              try
@@ -151,7 +152,8 @@ public abstract class ResourceBundle
   // Search for bundles, but stop at baseName_language (if required).
   // This is synchronized so that the cache works correctly.
   private static final synchronized ResourceBundle
-    partialGetBundle (String baseName, Locale locale, boolean langStop)
+    partialGetBundle (String baseName, Locale locale, boolean langStop,
+                     ClassLoader loader)
     {
       ResourceBundle rb;
 
@@ -168,7 +170,7 @@ public abstract class ResourceBundle
                         + (langStop ? ("_" + locale.getLanguage()) : ""));
 
 
-      rb = trySomeGetBundle(bundleName, stopHere);
+      rb = trySomeGetBundle(bundleName, stopHere, loader);
       if (rb != null)
        resource_cache.put(bundleName, rb);
 
@@ -177,6 +179,13 @@ public abstract class ResourceBundle
 
   public static final ResourceBundle getBundle (String baseName, 
                                                Locale locale)
+  {
+    return getBundle (baseName, locale, ClassLoader.getSystemClassLoader ());
+  }
+
+  public static final ResourceBundle getBundle (String baseName, 
+                                               Locale locale,
+                                               ClassLoader loader)
     throws MissingResourceException
     {
       ResourceBundle rb;
@@ -185,14 +194,14 @@ public abstract class ResourceBundle
       if (baseName == null)
        throw new NullPointerException ();
 
-      rb = partialGetBundle(baseName, locale, false);
+      rb = partialGetBundle(baseName, locale, false, loader);
       if (rb != null)
        return rb;
 
       // Finally, try the default locale.
       if (! locale.equals(Locale.getDefault()))
        {
-         rb = partialGetBundle(baseName, Locale.getDefault(), true);
+         rb = partialGetBundle(baseName, Locale.getDefault(), true, loader);
          if (rb != null)
            return rb;
        }