home *** CD-ROM | disk | FTP | other *** search
- package java.util;
-
- import java.io.BufferedInputStream;
- import java.io.InputStream;
-
- public abstract class ResourceBundle {
- private static SystemClassLoader systemClassLoader = new SystemClassLoader();
- private static boolean debugFlag;
- protected ResourceBundle parent;
- private static final Integer NOTFOUND = new Integer(-1);
- private static Hashtable cacheList = new Hashtable();
-
- public final String getString(String var1) throws MissingResourceException {
- return (String)this.getObject(var1);
- }
-
- public final String[] getStringArray(String var1) throws MissingResourceException {
- return (String[])this.getObject(var1);
- }
-
- public final Object getObject(String var1) throws MissingResourceException {
- Object var2 = this.handleGetObject(var1);
- if (var2 == null) {
- if (this.parent != null) {
- var2 = this.parent.getObject(var1);
- }
-
- if (var2 == null) {
- throw new MissingResourceException("Can't find resource", this.getClass().getName(), var1);
- }
- }
-
- return var2;
- }
-
- public static final ResourceBundle getBundle(String var0) throws MissingResourceException {
- return getBundle(var0, Locale.getDefault(), getLoader());
- }
-
- public static final ResourceBundle getBundle(String var0, Locale var1) {
- return getBundle(var0, var1, getLoader());
- }
-
- private static ClassLoader getLoader() {
- Class[] var0 = getClassContext();
- Class var1 = var0[2];
- ClassLoader var2 = var1 == null ? null : var1.getClassLoader();
- return (ClassLoader)(var2 == null ? systemClassLoader : var2);
- }
-
- private static native Class[] getClassContext();
-
- private static synchronized ResourceBundle getBundle(String var0, Locale var1, ClassLoader var2) throws MissingResourceException {
- StringBuffer var3 = (new StringBuffer("_")).append(var1.toString());
- if (var1.toString().equals("")) {
- var3.setLength(0);
- }
-
- ResourceBundle var4 = findBundle(var0, var3, var2, false);
- if (var4 == null) {
- var3.setLength(0);
- var3.append("_").append(Locale.getDefault().toString());
- var4 = findBundle(var0, var3, var2, true);
- if (var4 == null) {
- throw new MissingResourceException("can't find resource for " + var0 + "_" + var1, var0 + "_" + var1, "");
- }
- }
-
- for(ResourceBundle var5 = var4; var5 != null && var5.parent == null; var5 = var5.parent) {
- int var6 = var3.toString().lastIndexOf(95);
- if (var6 != -1) {
- var3.setLength(var6);
- var5.setParent(findBundle(var0, var3, var2, true));
- }
- }
-
- return var4;
- }
-
- protected void setParent(ResourceBundle var1) {
- this.parent = var1;
- }
-
- private static ResourceBundle findBundle(String var0, StringBuffer var1, ClassLoader var2, boolean var3) {
- String var4 = var1.toString();
- String var5 = var0.replace('.', '/');
- Object var6 = null;
- Vector var8 = new Vector();
-
- while(true) {
- String var7 = var0 + var4;
- String var11 = "[" + Integer.toString(var2.hashCode()) + "]" + var7;
- var6 = cacheList.get(var11);
- if (var6 == NOTFOUND) {
- var1.setLength(0);
- break;
- }
-
- if (var6 != null) {
- var1.setLength(0);
- break;
- }
-
- var8.addElement(var11);
-
- try {
- var6 = var2.loadClass(var7).newInstance();
- break;
- } catch (Exception var13) {
- var7 = var5 + var4 + ".properties";
- InputStream var10 = var2.getResourceAsStream(var7);
- if (var10 != null) {
- BufferedInputStream var16 = new BufferedInputStream(var10);
-
- try {
- var6 = new PropertyResourceBundle(var16);
- break;
- } catch (Exception var12) {
- }
- }
-
- int var9 = var4.lastIndexOf(95);
- if (var9 == 0 && !var3 || var9 == -1) {
- break;
- }
-
- var4 = var4.substring(0, var9);
- var1.setLength(var9);
- }
- }
-
- if (var6 != null) {
- for(int var17 = 0; var17 < var8.size(); ++var17) {
- cacheList.put(var8.elementAt(var17), var6);
- }
- } else if (var3) {
- for(int var18 = 0; var18 < var8.size(); ++var18) {
- cacheList.put(var8.elementAt(var18), NOTFOUND);
- }
- }
-
- return var6 != NOTFOUND && var6 != null ? (ResourceBundle)var6 : null;
- }
-
- protected abstract Object handleGetObject(String var1) throws MissingResourceException;
-
- public abstract Enumeration getKeys();
-
- private static void debug(String var0) {
- if (debugFlag) {
- System.out.println("ResourceBundle: " + var0);
- }
-
- }
- }
-