OSDN Git Service

2004-07-05 Anthony Green <green@redhat.com>
authorgreen <green@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 6 Jul 2004 02:52:54 +0000 (02:52 +0000)
committergreen <green@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 6 Jul 2004 02:52:54 +0000 (02:52 +0000)
                                                                                                                                               * java/io/File.java (toURI): Merge from Classpath.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@84145 138bc75d-0d04-0410-961f-82ee72b054a4

libjava/ChangeLog
libjava/java/io/File.java

index 4cff650..66f3f41 100644 (file)
@@ -1,3 +1,7 @@
+2004-07-05  Anthony Green  <green@redhat.com>
+       
+       * java/io/File.java (toURI): Merge from Classpath.
+
 2004-07-05  Bryce McKinlay  <mckinlay@redhat.com>
 
        * gnu/gcj/runtime/VMClassLoader.java (init): Check classpath entry
index 53ae529..47f18b5 100644 (file)
@@ -40,6 +40,8 @@ exception statement from your version. */
 package java.io;
 
 import java.net.MalformedURLException;
+import java.net.URI;
+import java.net.URISyntaxException;
 import java.net.URL;
 import gnu.classpath.Configuration;
 import gnu.gcj.runtime.FileDeleter;
@@ -875,6 +877,28 @@ public class File implements Serializable, Comparable
   }
 
   /**
+   * @return A <code>URI</code> for this object.
+   */
+  public URI toURI()
+  {
+    String abspath = getAbsolutePath();
+
+    if (isDirectory())
+      abspath = abspath + separator;
+        
+    try
+      {
+       return new URI("file", "", abspath.replace(separatorChar, '/'));
+      }
+    catch (URISyntaxException use)
+      {
+        // Can't happen.
+        throw (InternalError) new InternalError("Unconvertible file: "
+                                               + this).initCause(use);
+      }
+  }
+
+  /**
    * This method returns a <code>URL</code> with the <code>file:</code>
    * protocol that represents this file.  The exact form of this URL is
    * system dependent.