+2004-04-23 Michael Koch <konqueror@gmx.de>
+
+ * java/net/URL.java
+ (hashcode): Don't initialize with default value explicitely.
+ (getContent): Removed redundant "final" keyword.
+ (openStream): Likewise.
+ (getURLStreamHandler): Fixed coding style.
+ * java/net/URLConnection.java
+ (defaultAllowUserInteraction): Don't initialize with default value
+ explicitely.
+ (connected): Likewise.
+ (doOutput): Likewise.
+ (ifModifiedSince): Likewise.
+ (dateformats_initialized): Likewise.
+ (setURLStreamHander): Use StreamTokenizer where it belongs to.
+
2004-04-23 Michael Koch <konqueror@gmx.de>
* gnu/java/nio/channels/FileChannelImpl.java
*/
private String host;
+ /**
+ * The user information necessary to establish the connection.
+ */
+ private String userInfo;
+
/**
* The port number of this protocol or -1 if the port number used is
* the default for this protocol.
/**
* This is the hashCode for this URL
*/
- private int hashCode = 0;
+ private int hashCode;
/**
* The protocol handler in use for this URL
this.host = host;
this.port = port;
- this.authority = null;
+ this.authority = (host != null) ? host : "";
+ if (port >= 0)
+ this.authority += ":" + port;
int hashAt = file.indexOf('#');
if (hashAt < 0)
*
* @since 1.3
*/
- public final Object getContent() throws IOException
+ public Object getContent() throws IOException
{
return openConnection().getContent();
}
*
* @exception IOException If an error occurs
*/
- public final Object getContent (Class[] classes) throws IOException
+ public Object getContent(Class[] classes) throws IOException
{
// FIXME: implement this
return getContent();
*
* @exception IOException If an error occurs
*/
- public final InputStream openStream() throws IOException
+ public InputStream openStream() throws IOException
{
return openConnection().getInputStream();
}
// be aware of this.
this.ph = getURLStreamHandler(protocol);
this.protocol = protocol.toLowerCase();
- this.authority = null;
+ this.authority = "";
this.port = port;
this.host = host;
this.file = file;
this.ref = ref;
+
+ if (host != null)
+ this.authority += host;
+ if (port >= 0)
+ this.authority += ":" + port;
+
hashCode = hashCode(); // Used for serialization.
}
// be aware of this.
this.ph = getURLStreamHandler(protocol);
this.protocol = protocol.toLowerCase();
- if (userInfo == null)
- this.host = host;
- else
- this.host = userInfo + "@" + host;
+ this.host = host;
+ this.userInfo = userInfo;
this.port = port;
+ this.file = path;
+ this.authority = authority;
if (query == null)
- this.file = path;
+ this.file = file;
else
- this.file = path + "?" + query;
+ this.file = file + "?" + query;
this.ref = ref;
hashCode = hashCode(); // Used for serialization.
}
// If a non-default factory has been set, use it to find the protocol.
if (factory != null)
{
- ph = factory.createURLStreamHandler (protocol);
+ ph = factory.createURLStreamHandler(protocol);
}
- else if (protocol.equals ("core"))
+ else if (protocol.equals("core"))
{
ph = new gnu.java.net.protocol.core.Handler();
}
- else if (protocol.equals ("file"))
+ else if (protocol.equals("file"))
{
// This is an interesting case. It's tempting to think that we
// could call Class.forName ("gnu.java.net.protocol.file.Handler") to
String type = getContentType();
ContentHandler ch = setContentHandler(type);
- if (ch != null)
- return ch.getContent(this);
+ if (ch == null)
+ return getInputStream();
- return getInputStream();
+ return ch.getContent(this);
}
/**
// Replace the '/' character in the content type with '.' and
// all other non-alphabetic, non-numeric characters with '_'.
- StringTokenizer pkgPrefix = new StringTokenizer(propVal, "|");
char[] cArray = contentType.toCharArray();
for (int i = 0; i < cArray.length; i++)
{
String contentClass = new String(cArray);
// See if a class of this content type exists in any of the packages.
+ StringTokenizer pkgPrefix = new StringTokenizer(propVal, "|");
do
{
String facName = pkgPrefix.nextToken() + "." + contentClass;