home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1995 November / PCWK1195.iso / inne / win95 / sieciowe / hotja32.lzh / hotjava / classsrc / net / www / html / mimelauncher.java < prev    next >
Text File  |  1995-08-11  |  2KB  |  66 lines

  1. /*
  2.  * @(#)MimeLauncher.java    1.3 95/02/07  James Gosling
  3.  *
  4.  * Copyright (c) 1994 Sun Microsystems, Inc. All Rights Reserved.
  5.  *
  6.  * Permission to use, copy, modify, and distribute this software
  7.  * and its documentation for NON-COMMERCIAL purposes and without
  8.  * fee is hereby granted provided that this copyright notice
  9.  * appears in all copies. Please refer to the file "copyright.html"
  10.  * for further important copyright and licensing information.
  11.  *
  12.  * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF
  13.  * THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
  14.  * TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
  15.  * PARTICULAR PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR
  16.  * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
  17.  * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
  18.  */
  19.  
  20. package net.www.html;
  21. import java.io.*;
  22.  
  23. class MimeLauncher extends Thread {
  24.     MimeEntry m;
  25.     InputStream is;
  26.     URL u;
  27.     String GenericTempTemplate;
  28.  
  29.     MimeLauncher (MimeEntry M, InputStream IS, URL U, String gtt,
  30.           String name) {
  31.         super(name);
  32.     m = M;
  33.     is = IS;
  34.     u = U;
  35.     GenericTempTemplate = gtt;
  36.     }
  37.  
  38.     public void run() {
  39.     String c = m.command;
  40.     int inx = 0;
  41.     boolean substituted = false;
  42.     String ofn = m.TempNameTemplate;
  43.     if (ofn == null)
  44.         ofn = GenericTempTemplate;
  45.     while ((inx = ofn.indexOf("%s")) >= 0)
  46.         ofn = ofn.substring(0, inx) + System.currentTime() + ofn.substring(inx + 2);
  47.     OutputStream os = new FileOutputStream(ofn);
  48.     byte buf[] = new byte[2048];
  49.     int i;
  50.     while ((i = is.read(buf)) >= 0)
  51.         os.write(buf, 0, i);
  52.     is.close();
  53.     os.close();
  54.     while ((inx = c.indexOf("%t")) >= 0)
  55.         c = c.substring(0, inx) + u.content_type + c.substring(inx + 2);
  56.     while ((inx = c.indexOf("%s")) >= 0) {
  57.         c = c.substring(0, inx) + ofn + c.substring(inx + 2);
  58.         substituted = true;
  59.     }
  60.     if (!substituted)
  61.         c = c + " <" + ofn;
  62.     System.exec(c);
  63.     }
  64. }
  65.  
  66.