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

  1. package sun.awt.image;
  2.  
  3. import java.io.IOException;
  4. import java.io.InputStream;
  5. import java.net.MalformedURLException;
  6. import java.net.URL;
  7. import java.net.URLConnection;
  8.  
  9. public class URLImageSource extends InputStreamImageSource {
  10.    URL url;
  11.    URLConnection conn;
  12.    String actualHost;
  13.    int actualPort;
  14.  
  15.    public URLImageSource(URL var1) {
  16.       SecurityManager var2 = System.getSecurityManager();
  17.       if (var2 != null) {
  18.          var2.checkConnect(var1.getHost(), var1.getPort());
  19.       }
  20.  
  21.       this.url = var1;
  22.    }
  23.  
  24.    public URLImageSource(String var1) throws MalformedURLException {
  25.       this(new URL((URL)null, var1));
  26.    }
  27.  
  28.    public URLImageSource(URL var1, URLConnection var2) {
  29.       this(var1);
  30.       this.conn = var2;
  31.    }
  32.  
  33.    public URLImageSource(URLConnection var1) {
  34.       this(var1.getURL(), var1);
  35.    }
  36.  
  37.    final boolean checkSecurity(Object var1, boolean var2) {
  38.       if (this.actualHost != null) {
  39.          try {
  40.             SecurityManager var3 = System.getSecurityManager();
  41.             if (var3 != null) {
  42.                var3.checkConnect(this.actualHost, this.actualPort, var1);
  43.             }
  44.          } catch (SecurityException var4) {
  45.             if (!var2) {
  46.                throw var4;
  47.             }
  48.  
  49.             return false;
  50.          }
  51.       }
  52.  
  53.       return true;
  54.    }
  55.  
  56.    private synchronized URLConnection getConnection() throws IOException {
  57.       URLConnection var1;
  58.       if (this.conn != null) {
  59.          var1 = this.conn;
  60.          this.conn = null;
  61.       } else {
  62.          var1 = this.url.openConnection();
  63.       }
  64.  
  65.       return var1;
  66.    }
  67.  
  68.    protected ImageDecoder getDecoder() {
  69.       InputStream var1 = null;
  70.       Object var2 = null;
  71.  
  72.       try {
  73.          URLConnection var3 = this.getConnection();
  74.          var1 = var3.getInputStream();
  75.          var8 = var3.getContentType();
  76.          URL var4 = var3.getURL();
  77.          if (var4 != this.url && (var4.getHost() != this.url.getHost() || var4.getPort() != this.url.getPort())) {
  78.             if (this.actualHost != null && (this.actualHost != var4.getHost() || this.actualPort != var4.getPort())) {
  79.                throw new SecurityException("image moved!");
  80.             }
  81.  
  82.             this.actualHost = var4.getHost();
  83.             this.actualPort = var4.getPort();
  84.          }
  85.       } catch (IOException var6) {
  86.          if (var1 != null) {
  87.             try {
  88.                var1.close();
  89.             } catch (IOException var5) {
  90.             }
  91.          }
  92.  
  93.          return null;
  94.       }
  95.  
  96.       ImageDecoder var9 = ((InputStreamImageSource)this).decoderForType(var1, var8);
  97.       if (var9 == null) {
  98.          var9 = ((InputStreamImageSource)this).getDecoder(var1);
  99.       }
  100.  
  101.       return var9;
  102.    }
  103. }
  104.