home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1997 August / PCO0897.ISO / browser / tonline / ie32.exe / IEXPLORE.CAB / CLASSES.ZIP / com / ms / util / SystemVersionManager.class (.txt) < prev   
Encoding:
Java Class File  |  1996-10-01  |  2.6 KB  |  112 lines

  1. package com.ms.util;
  2.  
  3. import com.ms.lang.RegKey;
  4. import java.util.Enumeration;
  5. import java.util.Hashtable;
  6. import java.util.Properties;
  7. import java.util.Vector;
  8.  
  9. public class SystemVersionManager implements Runnable {
  10.    int classesbuild;
  11.  
  12.    public static Properties getVMVersion() {
  13.       Properties var0;
  14.       try {
  15.          var0 = getVMVersionData();
  16.       } catch (Throwable var2) {
  17.          var0 = createVersion(4, 79, 0, 1158, "Microsoft (R) VM for Java (tm), 3.0 Release");
  18.       }
  19.  
  20.       return var0;
  21.    }
  22.  
  23.    SystemVersionManager() {
  24.    }
  25.  
  26.    public static Properties getSystemComponentVersion(String var0) {
  27.       if (var0.equals("VM")) {
  28.          return getVMVersion();
  29.       } else if (!var0.equals("Classes") && !var0.equals("TrustedClasses")) {
  30.          return null;
  31.       } else {
  32.          int var1 = 1155;
  33.          SystemVersionManager var2 = new SystemVersionManager();
  34.          Thread var3 = new Thread(var2);
  35.          synchronized(var3){}
  36.  
  37.          try {
  38.             var3.start();
  39.  
  40.             try {
  41.                var3.wait();
  42.                var1 = var2.classesbuild;
  43.             } catch (InterruptedException var12) {
  44.             }
  45.          } catch (Throwable var13) {
  46.             throw var13;
  47.          }
  48.  
  49.          Object var15 = null;
  50.          Object var14 = null;
  51.          String var4 = var0.charAt(0) == 'C' ? "System" : "Trusted";
  52.          String var5;
  53.          if (var1 < 1155) {
  54.             var5 = ", 3.0 Prerelease";
  55.          } else if (var1 == 1155) {
  56.             try {
  57.                Class.forName("com.ms.com.ComContext");
  58.                var5 = ", Visual J++ 1.0 Release";
  59.             } catch (Throwable var11) {
  60.                var5 = ", 3.0 Release";
  61.             }
  62.          } else {
  63.             var5 = ", 3.0a Update";
  64.          }
  65.  
  66.          return createVersion(4, 79, 0, var1, "Microsoft (R) " + var4 + " Classes" + var5);
  67.       }
  68.    }
  69.  
  70.    private static native Properties getVMVersionData();
  71.  
  72.    public static Properties createVersion(int var0, int var1, int var2, int var3, String var4) {
  73.       Properties var5 = new Properties();
  74.       ((Hashtable)var5).put("MajorVersion", Integer.toString(var0));
  75.       ((Hashtable)var5).put("MinorVersion", Integer.toString(var1));
  76.       ((Hashtable)var5).put("BuildNumber", Integer.toString(var2));
  77.       ((Hashtable)var5).put("BuildIncrement", Integer.toString(var3));
  78.       ((Hashtable)var5).put("Description", new String(var4));
  79.       return var5;
  80.    }
  81.  
  82.    public static Properties getPackageVersion(String var0) {
  83.       return null;
  84.    }
  85.  
  86.    public void run() {
  87.       try {
  88.          RegKey var1 = new RegKey(RegKey.getRootKey(2), "Software\\Microsoft\\Java VM", 1);
  89.          this.classesbuild = Integer.parseInt(var1.getStringValue("ClassesBuild"));
  90.       } catch (Throwable var7) {
  91.          this.classesbuild = 1155;
  92.       }
  93.  
  94.       synchronized(this){}
  95.  
  96.       try {
  97.          this.notify();
  98.       } catch (Throwable var6) {
  99.          throw var6;
  100.       }
  101.  
  102.    }
  103.  
  104.    public static Enumeration enumerate() {
  105.       Vector var0 = new Vector();
  106.       var0.addElement("VM");
  107.       var0.addElement("Classes");
  108.       var0.addElement("TrustedClasses");
  109.       return var0.elements();
  110.    }
  111. }
  112.