summaryrefslogtreecommitdiffstats
path: root/libjava/java/net/URLStreamHandler.java
diff options
context:
space:
mode:
authormkoch <mkoch@138bc75d-0d04-0410-961f-82ee72b054a4>2002-10-21 04:53:50 +0000
committermkoch <mkoch@138bc75d-0d04-0410-961f-82ee72b054a4>2002-10-21 04:53:50 +0000
commitdac1d14e2c8204194548c329188113a9059e2cf4 (patch)
treeb447e5f79ee0539fc3758ba8fc6ed0a6b4745cd9 /libjava/java/net/URLStreamHandler.java
parent2d1396189a956d5647ec1fd2f4d46c03a6aa2dba (diff)
downloadppe42-gcc-dac1d14e2c8204194548c329188113a9059e2cf4.tar.gz
ppe42-gcc-dac1d14e2c8204194548c329188113a9059e2cf4.zip
2002-10-11 Michael Koch <konqueror@gmx.de>
* java/net/URL.java (URL): Activate SecurityManager checks. (equals): Use URLStreamHandler implementation instead of doing it alone. This allows special protocol stream handlers to change default behaviour. (hashCode): Use URLStreamHandler implementation instead of doing it alone. This allows special protocol stream handlers to change default behaviour. * java/net/URLStreamHandler.java (equals): Implemented default URL equality check. (hostsEqual): Implemented default URL equality check. (hashCode): Implemented default URL hashCode algorithm. * java/net/natPlainDatagramSocketImpl.cc: No lines longer then 80 characters. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@58345 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/java/net/URLStreamHandler.java')
-rw-r--r--libjava/java/net/URLStreamHandler.java39
1 files changed, 33 insertions, 6 deletions
diff --git a/libjava/java/net/URLStreamHandler.java b/libjava/java/net/URLStreamHandler.java
index 58add6f1883..a30f1570f89 100644
--- a/libjava/java/net/URLStreamHandler.java
+++ b/libjava/java/net/URLStreamHandler.java
@@ -234,8 +234,30 @@ public abstract class URLStreamHandler
*/
protected boolean equals (URL url1, URL url2)
{
- // FIXME: implement this
- return false;
+ // This comparison is very conservative. It assumes that any
+ // field can be null.
+ return (url1.getPort () == url2.getPort ()
+ && ((url1.getProtocol () == null && url2.getProtocol () == null)
+ || (url1.getProtocol () != null
+ && url1.getProtocol ().equals (url2.getProtocol ())))
+ && ((url1.getUserInfo () == null && url2.getUserInfo () == null)
+ || (url1.getUserInfo () != null
+ && url1.getUserInfo ().equals(url2.getUserInfo ())))
+ && ((url1.getAuthority () == null && url2.getAuthority () == null)
+ || (url1.getAuthority () != null
+ && url1.getAuthority ().equals(url2.getAuthority ())))
+ && ((url1.getHost () == null && url2.getHost () == null)
+ || (url1.getHost () != null
+ && url1.getHost ().equals(url2.getHost ())))
+ && ((url1.getPath () == null && url2.getPath () == null)
+ || (url1.getPath () != null
+ && url1.getPath ().equals (url2.getPath ())))
+ && ((url1.getQuery () == null && url2.getQuery () == null)
+ || (url1.getQuery () != null
+ && url1.getQuery ().equals(url2.getQuery ())))
+ && ((url1.getRef () == null && url2.getRef () == null)
+ || (url1.getRef () != null
+ && url1.getRef ().equals(url2.getRef ()))));
}
/**
@@ -244,9 +266,12 @@ public abstract class URLStreamHandler
* @exception UnknownHostException If an unknown host is found
*/
protected boolean hostsEqual (URL url1, URL url2)
+ throws UnknownHostException
{
- // FIXME: implement this
- return false;
+ InetAddress addr1 = InetAddress.getByName (url1.getHost ());
+ InetAddress addr2 = InetAddress.getByName (url2.getHost ());
+
+ return addr1.equals (addr2);
}
/**
@@ -285,8 +310,10 @@ public abstract class URLStreamHandler
*/
protected int hashCode (URL url)
{
- // FIXME: implement this
- return 0;
+ return url.getProtocol ().hashCode () +
+ ((url.getHost () == null) ? 0 : url.getHost ().hashCode ()) +
+ url.getFile ().hashCode() +
+ url.getPort ();
}
/**
OpenPOWER on IntegriCloud