home *** CD-ROM | disk | FTP | other *** search
- package java.util;
-
- import java.io.BufferedInputStream;
- import java.io.InputStream;
-
- public abstract class ResourceBundle {
- static StackLookup stackLookup;
- private static boolean debugFlag;
- protected ResourceBundle parent;
- private static final Integer NOTFOUND;
- private static Hashtable cacheList;
-
- 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 {
- if (stackLookup == null) {
- stackLookup = new StackLookup();
- }
-
- return getBundle(var0, Locale.getDefault(), stackLookup.getLoader());
- }
-
- public static final ResourceBundle getBundle(String var0, Locale var1) {
- if (stackLookup == null) {
- stackLookup = new StackLookup();
- }
-
- return getBundle(var0, var1, stackLookup.getLoader());
- }
-
- private static synchronized ResourceBundle getBundle(String var0, Locale var1, ClassLoader var2) throws MissingResourceException {
- StringBuffer var3 = (new StringBuffer("_")).append(var1.toString());
- 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);
- debug("Searching for parent " + var0 + var3);
- 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) {
- debug("Found " + var7 + " in cache as NOTFOUND");
- var1.setLength(0);
- break;
- }
-
- if (var6 != null) {
- debug("Found " + var7 + " in cache");
- var1.setLength(0);
- break;
- }
-
- var8.addElement(var11);
- debug("Searching for " + var7);
-
- try {
- var6 = var2.loadClass(var7).newInstance();
- break;
- } catch (Exception var14) {
- var7 = var5 + var4 + ".properties";
- debug("Searching for " + var7);
- InputStream var10 = null;
-
- try {
- var10 = var2.getResourceAsStream(var7);
- } catch (Exception var12) {
- }
-
- if (var10 != null) {
- BufferedInputStream var17 = new BufferedInputStream(var10);
-
- try {
- var6 = new PropertyResourceBundle(var17);
- break;
- } catch (Exception var13) {
- }
- }
-
- 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 var18 = 0; var18 < var8.size(); ++var18) {
- cacheList.put(var8.elementAt(var18), var6);
- debug("Adding " + var8.elementAt(var18) + " to cache" + (var6 == NOTFOUND ? " as NOTFOUND." : "."));
- }
- } else if (var3) {
- for(int var19 = 0; var19 < var8.size(); ++var19) {
- cacheList.put(var8.elementAt(var19), NOTFOUND);
- debug("Adding " + var8.elementAt(var19) + " to cache as 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);
- }
-
- }
-
- static {
- SecurityManager.enablePrivilege("CreateSecurityManager");
- stackLookup = new StackLookup();
- NOTFOUND = new Integer(-1);
- cacheList = new Hashtable();
- }
- }
-