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 / awt / image / URLImageSource.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  2.5 KB  |  128 lines

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