home *** CD-ROM | disk | FTP | other *** search
/ PC Pro 1999 April / DPPCPRO0499.ISO / April / Notes / 50b2wic.exe / DATA1.CAB / NotesProgramFilesJavaSupport / rt.jar / sun / net / www / MimeLauncher.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-04-23  |  3.5 KB  |  155 lines

  1. package sun.net.www;
  2.  
  3. import java.io.File;
  4. import java.io.FileOutputStream;
  5. import java.io.IOException;
  6. import java.io.InputStream;
  7. import java.io.OutputStream;
  8. import java.net.URL;
  9. import java.net.URLConnection;
  10. import java.util.StringTokenizer;
  11.  
  12. class MimeLauncher extends Thread {
  13.    // $FF: renamed from: uc java.net.URLConnection
  14.    URLConnection field_0;
  15.    // $FF: renamed from: m sun.net.www.MimeEntry
  16.    MimeEntry field_1;
  17.    String genericTempFileTemplate;
  18.    // $FF: renamed from: is java.io.InputStream
  19.    InputStream field_2;
  20.    String execPath;
  21.  
  22.    MimeLauncher(MimeEntry var1, URLConnection var2, InputStream var3, String var4, String var5) throws ApplicationLaunchException {
  23.       super(var5);
  24.       this.field_1 = var1;
  25.       this.field_0 = var2;
  26.       this.field_2 = var3;
  27.       this.genericTempFileTemplate = var4;
  28.       String var6 = this.field_1.getLaunchString();
  29.       if (!this.findExecutablePath(var6)) {
  30.          int var8 = var6.indexOf(32);
  31.          String var7;
  32.          if (var8 != -1) {
  33.             var7 = var6.substring(0, var8);
  34.          } else {
  35.             var7 = var6;
  36.          }
  37.  
  38.          throw new ApplicationLaunchException(var7);
  39.       }
  40.    }
  41.  
  42.    protected String getTempFileName(URL var1, String var2) {
  43.       int var4 = var2.lastIndexOf("%s");
  44.       String var5 = var2.substring(0, var4);
  45.       String var6 = "";
  46.       if (var4 < var2.length() - 2) {
  47.          var6 = var2.substring(var4 + 2);
  48.       }
  49.  
  50.       long var7 = System.currentTimeMillis() / 1000L;
  51.  
  52.       int var14;
  53.       for(var14 = 0; (var14 = var5.indexOf("%s")) >= 0; var5 = var5.substring(0, var14) + var7 + var5.substring(var14 + 2)) {
  54.       }
  55.  
  56.       String var10 = var1.getFile();
  57.       String var11 = "";
  58.       int var12 = var10.lastIndexOf(46);
  59.       if (var12 >= 0) {
  60.          var11 = var10.substring(var12);
  61.          var10 = var10.substring(0, var12);
  62.       }
  63.  
  64.       File var13 = new File(var10.replace('/', File.separatorChar));
  65.       var10 = var13.getName();
  66.       String var3 = var5 + var10 + var7 + var11 + var6;
  67.       return var3;
  68.    }
  69.  
  70.    public void run() {
  71.       try {
  72.          String var1 = this.field_1.getTempFileTemplate();
  73.          if (var1 == null) {
  74.             var1 = this.genericTempFileTemplate;
  75.          }
  76.  
  77.          var1 = this.getTempFileName(this.field_0.getURL(), var1);
  78.  
  79.          try {
  80.             FileOutputStream var2 = new FileOutputStream(var1);
  81.             byte[] var3 = new byte[2048];
  82.             int var4 = 0;
  83.  
  84.             try {
  85.                while((var4 = this.field_2.read(var3)) >= 0) {
  86.                   ((OutputStream)var2).write(var3, 0, var4);
  87.                }
  88.             } catch (IOException var11) {
  89.             } finally {
  90.                ((OutputStream)var2).close();
  91.                this.field_2.close();
  92.             }
  93.          } catch (IOException var13) {
  94.          }
  95.  
  96.          int var16 = 0;
  97.  
  98.          String var19;
  99.          for(var19 = this.execPath; (var16 = var19.indexOf("%t")) >= 0; var19 = var19.substring(0, var16) + this.field_0.getContentType() + var19.substring(var16 + 2)) {
  100.          }
  101.  
  102.          boolean var21;
  103.          for(var21 = false; (var16 = var19.indexOf("%s")) >= 0; var21 = true) {
  104.             var19 = var19.substring(0, var16) + var1 + var19.substring(var16 + 2);
  105.          }
  106.  
  107.          if (!var21) {
  108.             var19 = var19 + " <" + var1;
  109.          }
  110.  
  111.          Runtime.getRuntime().exec(var19);
  112.       } catch (IOException var14) {
  113.       }
  114.    }
  115.  
  116.    private boolean findExecutablePath(String var1) {
  117.       if (var1 != null && var1.length() != 0) {
  118.          int var3 = var1.indexOf(32);
  119.          String var2;
  120.          if (var3 != -1) {
  121.             var2 = var1.substring(0, var3);
  122.          } else {
  123.             var2 = var1;
  124.          }
  125.  
  126.          File var4 = new File(var2);
  127.          if (var4.isFile()) {
  128.             this.execPath = var1;
  129.             return true;
  130.          } else {
  131.             String var5 = System.getProperty("exec.path");
  132.             if (var5 == null) {
  133.                return false;
  134.             } else {
  135.                StringTokenizer var6 = new StringTokenizer(var5, "|");
  136.  
  137.                while(var6.hasMoreElements()) {
  138.                   String var7 = (String)var6.nextElement();
  139.                   String var8 = var7 + File.separator + var2;
  140.                   var4 = new File(var8);
  141.                   if (var4.isFile()) {
  142.                      this.execPath = var7 + File.separator + var1;
  143.                      return true;
  144.                   }
  145.                }
  146.  
  147.                return false;
  148.             }
  149.          }
  150.       } else {
  151.          return false;
  152.       }
  153.    }
  154. }
  155.