home *** CD-ROM | disk | FTP | other *** search
/ S283 Planetary Science &n…he Search for Life DVD 2 / DVD-ROM.iso / install / jre1_3 / lib / rt.jar / java / text / resources / LocaleData.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  4.1 KB  |  166 lines

  1. package java.text.resources;
  2.  
  3. import java.io.File;
  4. import java.io.FileInputStream;
  5. import java.io.FileNotFoundException;
  6. import java.io.IOException;
  7. import java.security.AccessController;
  8. import java.util.Locale;
  9. import java.util.Vector;
  10. import java.util.zip.ZipEntry;
  11. import java.util.zip.ZipInputStream;
  12. import sun.security.action.GetPropertyAction;
  13.  
  14. public class LocaleData {
  15.    private static Vector classPathSegments = new Vector();
  16.    private static Locale[] localeList;
  17.    private static final String PACKAGE = "java.text.resources";
  18.    private static final String PREFIX = "LocaleElements_";
  19.    private static final char ZIPSEPARATOR = '/';
  20.  
  21.    public static Locale[] getAvailableLocales(String var0) {
  22.       Locale[] var1 = new Locale[localeList.length];
  23.       System.arraycopy(localeList, 0, var1, 0, localeList.length);
  24.       return var1;
  25.    }
  26.  
  27.    private static String[] getClassList(String var0, String var1) {
  28.       Vector var2 = new Vector();
  29.       String var3 = var0.replace('.', File.separatorChar) + File.separatorChar;
  30.       String var4 = var0.replace('.', '/') + '/';
  31.  
  32.       for(int var5 = 0; var5 < classPathSegments.size(); ++var5) {
  33.          String var6 = (String)classPathSegments.elementAt(var5);
  34.          File var7 = new File(var6);
  35.          if (var7.exists()) {
  36.             if (var7.isFile()) {
  37.                scanFile(var7, var4, var2, var1);
  38.             } else if (var7.isDirectory()) {
  39.                String var8;
  40.                if (var6.endsWith(File.separator)) {
  41.                   var8 = var6 + var3;
  42.                } else {
  43.                   var8 = var6 + File.separatorChar + var3;
  44.                }
  45.  
  46.                File var9 = new File(var8);
  47.                if (var9.exists() && var9.isDirectory()) {
  48.                   scanDir(var9, var2, var1);
  49.                }
  50.             }
  51.          }
  52.       }
  53.  
  54.       String[] var10 = new String[var2.size()];
  55.       var2.copyInto(var10);
  56.       return var10;
  57.    }
  58.  
  59.    private static void addClass(String var0, Vector var1, String var2) {
  60.       if (var0 != null && var0.startsWith(var2) && !var1.contains(var0)) {
  61.          var1.addElement(var0);
  62.       }
  63.  
  64.    }
  65.  
  66.    private static String midString(String var0, String var1, String var2) {
  67.       String var3;
  68.       if (var0.startsWith(var1) && var0.endsWith(var2)) {
  69.          var3 = var0.substring(var1.length(), var0.length() - var2.length());
  70.       } else {
  71.          var3 = null;
  72.       }
  73.  
  74.       return var3;
  75.    }
  76.  
  77.    private static void scanDir(File var0, Vector var1, String var2) {
  78.       String[] var3 = var0.list();
  79.  
  80.       for(int var4 = 0; var4 < var3.length; ++var4) {
  81.          addClass(midString(var3[var4], "", ".class"), var1, var2);
  82.       }
  83.  
  84.    }
  85.  
  86.    private static void scanFile(File var0, String var1, Vector var2, String var3) {
  87.       try {
  88.          ZipInputStream var4 = new ZipInputStream(new FileInputStream(var0));
  89.          boolean var5 = false;
  90.  
  91.          ZipEntry var6;
  92.          while((var6 = var4.getNextEntry()) != null) {
  93.             String var7 = var6.getName();
  94.             if (var7.startsWith(var1)) {
  95.                var5 = true;
  96.                if (var7.endsWith(".class")) {
  97.                   addClass(midString(var7, var1, ".class"), var2, var3);
  98.                }
  99.             } else if (var5) {
  100.                break;
  101.             }
  102.          }
  103.       } catch (FileNotFoundException var8) {
  104.          System.out.println("file not found:" + var8);
  105.       } catch (IOException var9) {
  106.          System.out.println("file IO Exception:" + var9);
  107.       } catch (Exception var10) {
  108.          System.out.println("Exception:" + var10);
  109.       }
  110.  
  111.    }
  112.  
  113.    // $FF: synthetic method
  114.    static String[] access$000(String var0, String var1) {
  115.       return getClassList(var0, var1);
  116.    }
  117.  
  118.    static {
  119.       String var0 = (String)AccessController.doPrivileged(new GetPropertyAction("sun.boot.class.path"));
  120.       String var1 = (String)AccessController.doPrivileged(new GetPropertyAction("java.class.path"));
  121.       if (var1 != null && var1.length() != 0) {
  122.          var0 = var0 + File.pathSeparator + var1;
  123.       }
  124.  
  125.       String var3;
  126.       for(; var0 != null && var0.length() != 0; classPathSegments.insertElementAt(var3, 0)) {
  127.          int var2 = var0.lastIndexOf(File.pathSeparatorChar);
  128.          var3 = var0.substring(var2 + 1);
  129.          if (var2 == -1) {
  130.             var0 = null;
  131.          } else {
  132.             var0 = var0.substring(0, var2);
  133.          }
  134.       }
  135.  
  136.       String[] var10 = (String[])AccessController.doPrivileged(new 1());
  137.       int var11 = "LocaleElements_".length();
  138.       localeList = new Locale[var10.length];
  139.  
  140.       for(int var4 = 0; var4 < var10.length; ++var4) {
  141.          int var5 = 0;
  142.          int var6 = var10[var4].indexOf(95, var11);
  143.          String var7 = "";
  144.          String var8 = "";
  145.          String var9 = "";
  146.          if (var6 == -1) {
  147.             var7 = var10[var4].substring(var11);
  148.          } else {
  149.             var7 = var10[var4].substring(var11, var6);
  150.             var5 = var10[var4].indexOf(95, var6 + 1);
  151.             if (var5 == -1) {
  152.                var8 = var10[var4].substring(var6 + 1);
  153.             } else {
  154.                var8 = var10[var4].substring(var6 + 1, var5);
  155.                if (var5 < var10[var4].length()) {
  156.                   var9 = var10[var4].substring(var5 + 1);
  157.                }
  158.             }
  159.          }
  160.  
  161.          localeList[var4] = new Locale(var7, var8, var9);
  162.       }
  163.  
  164.    }
  165. }
  166.