summaryrefslogtreecommitdiffstats
path: root/libjava/gnu/gcj/protocol/file/Handler.java
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/gnu/gcj/protocol/file/Handler.java')
-rw-r--r--libjava/gnu/gcj/protocol/file/Handler.java49
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);
+ }
+}
OpenPOWER on IntegriCloud