home *** CD-ROM | disk | FTP | other *** search
/ S283 Planetary Science &… the Search for Life CD 3 / 0_CD-ROM.iso / install / jre1_3 / lib / rt.jar / sun / misc / ExtensionInfo.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  2.7 KB  |  121 lines

  1. package sun.misc;
  2.  
  3. import java.util.StringTokenizer;
  4. import java.util.jar.Attributes;
  5. import java.util.jar.Attributes.Name;
  6.  
  7. public class ExtensionInfo {
  8.    public static final int COMPATIBLE = 0;
  9.    public static final int REQUIRE_SPECIFICATION_UPGRADE = 1;
  10.    public static final int REQUIRE_IMPLEMENTATION_UPGRADE = 2;
  11.    public static final int REQUIRE_VENDOR_SWITCH = 3;
  12.    public static final int INCOMPATIBLE = 4;
  13.    public String title;
  14.    public String name;
  15.    public String specVersion;
  16.    public String specVendor;
  17.    public String implementationVersion;
  18.    public String vendor;
  19.    public String vendorId;
  20.    public String url;
  21.  
  22.    public ExtensionInfo() {
  23.    }
  24.  
  25.    public ExtensionInfo(String var1, Attributes var2) throws NullPointerException {
  26.       String var3;
  27.       if (var1 != null) {
  28.          var3 = var1 + "-";
  29.       } else {
  30.          var3 = "";
  31.       }
  32.  
  33.       String var4 = var3 + Name.EXTENSION_NAME.toString();
  34.       this.name = var2.getValue(var4);
  35.       var4 = var3 + Name.SPECIFICATION_TITLE.toString();
  36.       this.title = var2.getValue(var4);
  37.       var4 = var3 + Name.SPECIFICATION_VERSION.toString();
  38.       this.specVersion = var2.getValue(var4);
  39.       var4 = var3 + Name.SPECIFICATION_VERSION.toString();
  40.       this.specVersion = var2.getValue(var4);
  41.       var4 = var3 + Name.IMPLEMENTATION_VERSION.toString();
  42.       this.implementationVersion = var2.getValue(var4);
  43.       var4 = var3 + Name.IMPLEMENTATION_VENDOR.toString();
  44.       this.vendor = var2.getValue(var4);
  45.       var4 = var3 + Name.IMPLEMENTATION_VENDOR_ID.toString();
  46.       this.vendorId = var2.getValue(var4);
  47.       var4 = var3 + Name.IMPLEMENTATION_URL.toString();
  48.       this.url = var2.getValue(var4);
  49.    }
  50.  
  51.    public int isCompatibleWith(ExtensionInfo var1) {
  52.       if (this.name != null && var1.name != null) {
  53.          if (this.name.compareTo(var1.name) == 0) {
  54.             System.out.println("Potential match");
  55.             if (this.specVersion != null && var1.specVersion != null) {
  56.                int var2 = this.compareExtensionVersion(this.specVersion, var1.specVersion);
  57.                if (var2 < 0) {
  58.                   return this.vendorId != null && var1.vendorId != null && this.vendorId.compareTo(var1.vendorId) != 0 ? 3 : 1;
  59.                } else {
  60.                   if (this.vendorId != null && var1.vendorId != null) {
  61.                      if (this.vendorId.compareTo(var1.vendorId) != 0) {
  62.                         return 3;
  63.                      }
  64.  
  65.                      if (this.implementationVersion != null && var1.implementationVersion != null) {
  66.                         var2 = this.compareExtensionVersion(this.implementationVersion, var1.implementationVersion);
  67.                         if (var2 < 0) {
  68.                            return 2;
  69.                         }
  70.                      }
  71.                   }
  72.  
  73.                   return 0;
  74.                }
  75.             } else {
  76.                return 0;
  77.             }
  78.          } else {
  79.             return 4;
  80.          }
  81.       } else {
  82.          return 4;
  83.       }
  84.    }
  85.  
  86.    public String toString() {
  87.       return "Extension : " + this.title + "(" + this.name + "), spec version(" + this.specVersion + "), impl version(" + this.implementationVersion + ") from " + this.vendor + "(" + this.vendorId + ")";
  88.    }
  89.  
  90.    private int compareExtensionVersion(String var1, String var2) throws NumberFormatException {
  91.       StringTokenizer var3 = new StringTokenizer(var1, ".,");
  92.       StringTokenizer var4 = new StringTokenizer(var2, ".,");
  93.  
  94.       while(var3.hasMoreTokens() || var4.hasMoreTokens()) {
  95.          int var5;
  96.          if (var3.hasMoreTokens()) {
  97.             var5 = Integer.parseInt(var3.nextToken());
  98.          } else {
  99.             var5 = 0;
  100.          }
  101.  
  102.          int var6;
  103.          if (var4.hasMoreTokens()) {
  104.             var6 = Integer.parseInt(var4.nextToken());
  105.          } else {
  106.             var6 = 0;
  107.          }
  108.  
  109.          if (var5 < var6) {
  110.             return -1;
  111.          }
  112.  
  113.          if (var5 > var6) {
  114.             return 1;
  115.          }
  116.       }
  117.  
  118.       return 0;
  119.    }
  120. }
  121.