home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1995 November / PCWK1195.iso / inne / win95 / sieciowe / hotja32.lzh / hotjava / classsrc / net / www / protocol / doc / handler.java
Text File  |  1995-08-11  |  2KB  |  77 lines

  1. /*
  2.  * @(#)Handler.java    1.8 95/05/15 Sami Shaio
  3.  *
  4.  * Copyright (c) 1995 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. /*-
  21.  *    doc urls point either into the local filesystem or externally
  22.  *      through an http url.
  23.  */
  24.  
  25. package net.www.protocol.doc;
  26.  
  27. import java.io.*;
  28. import net.www.protocol.http.*;
  29. import net.www.protocol.file.*;
  30. import net.www.html.*;
  31.  
  32. class Handler extends URLStreamHandler {
  33.     /*
  34.      * Attempt to find a load the given url using the local
  35.      * filesystem. If that fails, then try opening using http.
  36.      */
  37.     public synchronized InputStream openStream(URL u) {
  38.     net.www.protocol.http.Handler    http;
  39.     net.www.protocol.file.Handler    file;
  40.  
  41.     file = new net.www.protocol.file.Handler();
  42.     try {
  43.         InputStream    is;
  44.         URL ru = new URL("file", "~", u.file);
  45.  
  46.         is = file.openStream(ru);
  47.         u.setType(ru.content_type);
  48.         return is;
  49.     } catch (Exception e) {
  50.         String    host = System.getenv("HOTJAVA_HOST");
  51.         String    release = System.getenv("HOTJAVA_RELEASE");
  52.  
  53.         if (host == null) {
  54.         host = "java.sun.com";
  55.         }
  56.         if (release == null) {
  57.         release = "1.0alpha3";
  58.         }
  59.  
  60.         String dir;
  61.         if (!u.file.startsWith("/")) {
  62.         dir = "/" + release + "/";
  63.         } else {
  64.         dir = "/" + release;
  65.         }
  66.         String uri = "http://"+host+dir+u.file;
  67.         URL ru = new URL(null, uri);
  68.  
  69.         http = new net.www.protocol.http.Handler();
  70.         InputStream is = http.openStream(ru);
  71.         u.setType(ru.content_type);
  72.         return is;
  73.     }
  74.     }
  75. }
  76.  
  77.