summaryrefslogtreecommitdiffstats
path: root/libjava/gnu/java/net/protocol/file/Connection.java
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/gnu/java/net/protocol/file/Connection.java')
-rw-r--r--libjava/gnu/java/net/protocol/file/Connection.java106
1 files changed, 73 insertions, 33 deletions
diff --git a/libjava/gnu/java/net/protocol/file/Connection.java b/libjava/gnu/java/net/protocol/file/Connection.java
index 3bddd0ffe13..1df5c487c88 100644
--- a/libjava/gnu/java/net/protocol/file/Connection.java
+++ b/libjava/gnu/java/net/protocol/file/Connection.java
@@ -1,15 +1,45 @@
-// Connection.java - Implementation of URLConnection for file protocol.
-
-/* Copyright (C) 1999 Free Software Foundation
-
- 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. */
-
+/*
+ FileURLConnection.java -- URLConnection class for "file" protocol
+ Copyright (C) 1998, 1999, 2003 Free Software Foundation, Inc.
+
+ This file is part of GNU Classpath.
+
+ GNU Classpath is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GNU Classpath is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Classpath; see the file COPYING. If not, write to the
+ Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA.
+
+ Linking this library statically or dynamically with other modules is
+ making a combined work based on this library. Thus, the terms and
+ conditions of the GNU General Public License cover the whole
+ combination.
+
+ As a special exception, the copyright holders of this library give you
+ permission to link this library with independent modules to produce an
+ executable, regardless of the license terms of these independent
+ modules, and to copy and distribute the resulting executable under
+ terms of your choice, provided that you also meet, for each linked
+ independent module, the terms and conditions of the license of that
+ module. An independent module is a module which is not derived from
+ or based on this library. If you modify this library, you may extend
+ this exception to your version of the library, but you are not
+ obligated to do so. If you do not wish to do so, delete this
+ exception statement from your version.
+*/
package gnu.java.net.protocol.file;
+import java.net.URL;
+import java.net.URLConnection;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
@@ -19,8 +49,6 @@ import java.io.InputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.ProtocolException;
-import java.net.URL;
-import java.net.URLConnection;
import java.util.Map;
import java.util.Vector;
import java.util.Hashtable;
@@ -30,14 +58,7 @@ import java.util.Enumeration;
* @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 subset of functionality.
- */
-
-class Connection extends URLConnection
+public class Connection extends URLConnection
{
private Hashtable hdrHash = new Hashtable();
private Vector hdrVec = new Vector();
@@ -48,16 +69,18 @@ class Connection extends URLConnection
public Connection(URL url)
{
- super(url);
+ super (url);
}
-
- // Implementation of abstract method.
+
+ /**
+ * "Connects" to the file by opening it.
+ */
public void connect() throws IOException
{
// Call is ignored if already connected.
if (connected)
return;
-
+
// If not connected, then file needs to be openned.
String fname = url.getFile();
fileIn = new File(fname);
@@ -65,21 +88,37 @@ class Connection extends URLConnection
inputStream = new BufferedInputStream(new FileInputStream(fileIn));
if (doOutput)
outputStream = new BufferedOutputStream(new FileOutputStream(fileIn));
+
connected = true;
}
-
- public InputStream getInputStream() throws IOException
+
+ /**
+ * Opens the file for reading and returns a stream for it.
+ *
+ * @return An InputStream for this connection.
+ *
+ * @exception IOException If an error occurs
+ */
+ public InputStream getInputStream()
+ throws IOException
{
if (! doInput)
throw new ProtocolException("Can't open InputStream if doInput is false");
if (!connected)
connect();
-
+
return inputStream;
}
- // Override default method in URLConnection.
- public OutputStream getOutputStream() throws IOException
+ /**
+ * Opens the file for writing and returns a stream for it.
+ *
+ * @return An OutputStream for this connection.
+ *
+ * @exception IOException If an error occurs.
+ */
+ public OutputStream getOutputStream()
+ throws IOException
{
if (! doOutput)
throw new
@@ -87,7 +126,7 @@ class Connection extends URLConnection
if (!connected)
connect();
-
+
return outputStream;
}
@@ -98,7 +137,7 @@ class Connection extends URLConnection
{
getHeaders();
}
- catch (IOException x)
+ catch (IOException e)
{
return null;
}
@@ -112,7 +151,7 @@ class Connection extends URLConnection
{
getHeaders();
}
- catch (IOException x)
+ catch (IOException e)
{
return null;
}
@@ -198,4 +237,5 @@ class Connection extends URLConnection
String key = getKey(line);
hdrHash.put(key.toLowerCase(), Long.toString(len));
}
-}
+
+} // class FileURLConnection
OpenPOWER on IntegriCloud