home *** CD-ROM | disk | FTP | other *** search
- package java.net;
-
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.OutputStream;
- import java.util.Date;
- import java.util.Hashtable;
- import java.util.StringTokenizer;
-
- public abstract class URLConnection {
- protected URL url;
- protected boolean doInput = true;
- protected boolean doOutput = false;
- private static boolean defaultAllowUserInteraction;
- protected boolean allowUserInteraction;
- private static boolean defaultUseCaches = true;
- protected boolean useCaches;
- protected long ifModifiedSince;
- protected boolean connected;
- private static FileNameMap fileNameMap;
- static ContentHandlerFactory factory;
- private static Hashtable handlers = new Hashtable();
- private static ContentHandler UnknownContentHandlerP = new UnknownContentHandler();
- private static final String contentClassPrefix = "sun.net.www.content";
- private static final String contentPathProp = "java.content.handler.pkgs";
-
- public static FileNameMap getFileNameMap() {
- return fileNameMap;
- }
-
- public static void setFileNameMap(FileNameMap var0) {
- SecurityManager var1 = System.getSecurityManager();
- if (var1 != null) {
- var1.checkSetFactory();
- }
-
- fileNameMap = var0;
- }
-
- public abstract void connect() throws IOException;
-
- protected URLConnection(URL var1) {
- this.allowUserInteraction = defaultAllowUserInteraction;
- this.useCaches = defaultUseCaches;
- this.connected = false;
- this.url = var1;
- }
-
- public URL getURL() {
- return this.url;
- }
-
- public int getContentLength() {
- return this.getHeaderFieldInt("content-length", -1);
- }
-
- public String getContentType() {
- return this.getHeaderField("content-type");
- }
-
- public String getContentEncoding() {
- return this.getHeaderField("content-encoding");
- }
-
- public long getExpiration() {
- return this.getHeaderFieldDate("expires", 0L);
- }
-
- public long getDate() {
- return this.getHeaderFieldDate("date", 0L);
- }
-
- public long getLastModified() {
- return this.getHeaderFieldDate("last-modified", 0L);
- }
-
- public String getHeaderField(String var1) {
- return null;
- }
-
- public int getHeaderFieldInt(String var1, int var2) {
- try {
- return Integer.parseInt(this.getHeaderField(var1));
- } catch (Throwable var3) {
- return var2;
- }
- }
-
- public long getHeaderFieldDate(String var1, long var2) {
- try {
- return Date.parse(this.getHeaderField(var1));
- } catch (Throwable var4) {
- return var2;
- }
- }
-
- public String getHeaderFieldKey(int var1) {
- return null;
- }
-
- public String getHeaderField(int var1) {
- return null;
- }
-
- public Object getContent() throws IOException {
- return this.getContentHandler().getContent(this);
- }
-
- public InputStream getInputStream() throws IOException {
- throw new UnknownServiceException("protocol doesn't support input");
- }
-
- public OutputStream getOutputStream() throws IOException {
- throw new UnknownServiceException("protocol doesn't support output");
- }
-
- public String toString() {
- return this.getClass().getName() + ":" + this.url;
- }
-
- public void setDoInput(boolean var1) {
- if (this.connected) {
- throw new IllegalAccessError("Already connected");
- } else {
- this.doInput = var1;
- }
- }
-
- public boolean getDoInput() {
- return this.doInput;
- }
-
- public void setDoOutput(boolean var1) {
- if (this.connected) {
- throw new IllegalAccessError("Already connected");
- } else {
- this.doOutput = var1;
- }
- }
-
- public boolean getDoOutput() {
- return this.doOutput;
- }
-
- public void setAllowUserInteraction(boolean var1) {
- if (this.connected) {
- throw new IllegalAccessError("Already connected");
- } else {
- this.allowUserInteraction = var1;
- }
- }
-
- public boolean getAllowUserInteraction() {
- return this.allowUserInteraction;
- }
-
- public static void setDefaultAllowUserInteraction(boolean var0) {
- defaultAllowUserInteraction = var0;
- }
-
- public static boolean getDefaultAllowUserInteraction() {
- return defaultAllowUserInteraction;
- }
-
- public void setUseCaches(boolean var1) {
- if (this.connected) {
- throw new IllegalAccessError("Already connected");
- } else {
- this.useCaches = var1;
- }
- }
-
- public boolean getUseCaches() {
- return this.useCaches;
- }
-
- public void setIfModifiedSince(long var1) {
- if (this.connected) {
- throw new IllegalAccessError("Already connected");
- } else {
- this.ifModifiedSince = var1;
- }
- }
-
- public long getIfModifiedSince() {
- return this.ifModifiedSince;
- }
-
- public boolean getDefaultUseCaches() {
- return defaultUseCaches;
- }
-
- public void setDefaultUseCaches(boolean var1) {
- defaultUseCaches = var1;
- }
-
- public void setRequestProperty(String var1, String var2) {
- if (this.connected) {
- throw new IllegalAccessError("Already connected");
- }
- }
-
- public String getRequestProperty(String var1) {
- if (this.connected) {
- throw new IllegalAccessError("Already connected");
- } else {
- return null;
- }
- }
-
- public static void setDefaultRequestProperty(String var0, String var1) {
- }
-
- public static String getDefaultRequestProperty(String var0) {
- return null;
- }
-
- public static synchronized void setContentHandlerFactory(ContentHandlerFactory var0) {
- if (factory != null) {
- throw new Error("factory already defined");
- } else {
- SecurityManager var1 = System.getSecurityManager();
- if (var1 != null) {
- var1.checkSetFactory();
- }
-
- factory = var0;
- }
- }
-
- synchronized ContentHandler getContentHandler() throws UnknownServiceException {
- String var1 = this.getContentType();
- ContentHandler var2 = null;
- if (var1 == null) {
- throw new UnknownServiceException("no content-type");
- } else {
- try {
- var2 = (ContentHandler)handlers.get(var1);
- if (var2 != null) {
- return var2;
- }
- } catch (Exception var5) {
- }
-
- if (factory != null) {
- var2 = factory.createContentHandler(var1);
- }
-
- if (var2 == null) {
- try {
- var2 = this.lookupContentHandlerClassFor(var1);
- } catch (Exception var4) {
- ((Throwable)var4).printStackTrace();
- var2 = UnknownContentHandlerP;
- }
-
- handlers.put(var1, var2);
- }
-
- return var2;
- }
- }
-
- private ContentHandler lookupContentHandlerClassFor(String var1) throws InstantiationException, IllegalAccessException, ClassNotFoundException {
- String var2 = this.typeToPackageName(var1);
- String var3 = this.getContentHandlerPkgPrefixes();
- StringTokenizer var4 = new StringTokenizer(var3, "|");
-
- while(var4.hasMoreTokens()) {
- String var5 = var4.nextToken().trim();
-
- try {
- String var6 = var5 + "." + var2;
- ContentHandler var7 = (ContentHandler)Class.forName(var6).newInstance();
- return var7;
- } catch (Exception var8) {
- }
- }
-
- return UnknownContentHandlerP;
- }
-
- private String typeToPackageName(String var1) {
- int var2 = var1.length();
- char[] var3 = new char[var2];
- var1.getChars(0, var2, var3, 0);
-
- for(int var4 = 0; var4 < var2; ++var4) {
- char var5 = var3[var4];
- if (var5 == '/') {
- var3[var4] = '.';
- } else if ((var5 < 'A' || var5 > 'Z') && (var5 < 'a' || var5 > 'z') && (var5 < '0' || var5 > '9')) {
- var3[var4] = '_';
- }
- }
-
- return new String(var3);
- }
-
- private String getContentHandlerPkgPrefixes() {
- String var1 = System.getProperty("java.content.handler.pkgs", "");
- if (var1 != "") {
- var1 = var1 + "|";
- }
-
- return var1 + "sun.net.www.content";
- }
-
- protected static String guessContentTypeFromName(String var0) {
- String var1 = null;
- if (fileNameMap != null) {
- var1 = fileNameMap.getContentTypeFor(var0);
- }
-
- return var1;
- }
-
- public static String guessContentTypeFromStream(InputStream var0) throws IOException {
- var0.mark(10);
- int var1 = var0.read();
- int var2 = var0.read();
- int var3 = var0.read();
- int var4 = var0.read();
- int var5 = var0.read();
- int var6 = var0.read();
- var0.reset();
- if (var1 == 202 && var2 == 254 && var3 == 186 && var4 == 190) {
- return "application/java-vm";
- } else if (var1 == 172 && var2 == 237) {
- return "application/x-java-serialized-object";
- } else if (var1 == 71 && var2 == 73 && var3 == 70 && var4 == 56) {
- return "image/gif";
- } else if (var1 == 35 && var2 == 100 && var3 == 101 && var4 == 102) {
- return "image/x-bitmap";
- } else if (var1 == 33 && var2 == 32 && var3 == 88 && var4 == 80 && var5 == 77 && var6 == 50) {
- return "image/x-pixmap";
- } else if (var1 != 60 || var2 != 33 && (var6 != 62 || (var2 != 104 || (var3 != 116 || var4 != 109 || var5 != 108) && (var3 != 101 || var4 != 97 || var5 != 100)) && (var2 != 98 || var3 != 111 || var4 != 100 || var5 != 121))) {
- if (var1 == 46 && var2 == 115 && var3 == 110 && var4 == 100) {
- return "audio/basic";
- } else if (var1 == 100 && var2 == 110 && var3 == 115 && var4 == 46) {
- return "audio/basic";
- } else if (var1 != 60 || var2 != 33 && (var2 != 104 || (var3 != 116 || var4 != 109 || var5 != 108) && (var3 != 101 || var4 != 97 || var5 != 100)) && (var2 != 98 || var3 != 111 || var4 != 100 || var5 != 121) && (var2 != 72 || (var3 != 84 || var4 != 77 || var5 != 76) && (var3 != 69 || var4 != 65 || var5 != 68)) && (var2 != 66 || var3 != 79 || var4 != 68 || var5 != 89)) {
- if (var1 == 255 && var2 == 216 && var3 == 255 && var4 == 224) {
- return "image/jpeg";
- } else if (var1 == 255 && var2 == 216 && var3 == 255 && var4 == 238) {
- return "image/jpg";
- } else {
- return var1 == 82 && var2 == 73 && var3 == 70 && var4 == 70 ? "audio/x-wav" : null;
- }
- } else {
- return "text/html";
- }
- } else {
- return "text/html";
- }
- }
- }
-