diff options
Diffstat (limited to 'libjava/gnu/gcj/protocol/file/Handler.java')
| -rw-r--r-- | libjava/gnu/gcj/protocol/file/Handler.java | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/libjava/gnu/gcj/protocol/file/Handler.java b/libjava/gnu/gcj/protocol/file/Handler.java new file mode 100644 index 00000000000..de7d79b35d0 --- /dev/null +++ b/libjava/gnu/gcj/protocol/file/Handler.java @@ -0,0 +1,49 @@ +// Handler.java - URLStreamHandler for file protocol. + +/* Copyright (C) 1999 Cygnus Solutions + + This file is part of libgcj. + +This software is copyrighted work licensed under the terms of the +Libgcj License. Please consult the file "LIBGCJ_LICENSE" for +details. */ + +package gnu.gcj.protocol.file; + +import java.net.URL; +import java.net.URLConnection; +import java.net.URLStreamHandler; +import java.io.IOException; + +/** + * @author Warren Levy <warrenl@cygnus.com> + * @date April 13, 1999. + */ + +/** + * Written using on-line Java Platform 1.2 API Specification, as well + * as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998). + * Status: Minimal functionality. + */ + +public class Handler extends URLStreamHandler +{ + protected URLConnection openConnection(URL url) throws IOException + { + // If a hostname is set, then we need to switch protocols to ftp + // in order to transfer this from the remote host. + if (! url.getHost().equals("")) + { + // Reset the protocol (and implicitly the handler) for this URL. + // Then have the URL attempt the connection again, as it will + // get the changed handler the next time around. + url.set("ftp", url.getHost(), url.getPort(), url.getFile(), + url.getRef()); + // Until the ftp protocol handler is written, this will cause + // a NullPointerException. + return url.openConnection(); + } + + return new Connection(url); + } +} |

