KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > sun > org > apache > xml > internal > resolver > helpers > FileURL


1 // FileURL.java - Construct a file: scheme URL
2

3 /*
4  * Copyright 2001-2004 The Apache Software Foundation or its licensors,
5  * as applicable.
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  * http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  */

19
20 package com.sun.org.apache.xml.internal.resolver.helpers;
21
22 import java.net.URL JavaDoc;
23 import java.net.MalformedURLException JavaDoc;
24 import java.io.File JavaDoc;
25
26 /**
27  * Static method for dealing with file: URLs.
28  *
29  * <p>This class defines a static method that can be used to construct
30  * an appropriate file: URL from parts. It's defined here so that it
31  * can be reused throught the resolver.</p>
32  *
33  * <p>(Yes, I'd rather have called this class FileUR<b>I</b>, but
34  * given that a jave.net.URL is returned, it seemed...even more
35  * confusing.)</p>
36  *
37  * @author Norman Walsh
38  * <a HREF="mailto:Norman.Walsh@Sun.COM">Norman.Walsh@Sun.COM</a>
39  *
40  * @version 1.0
41  */

42 public abstract class FileURL {
43   protected FileURL() { }
44
45   /**
46    * Construct a file: URL for a path name.
47    *
48    * <p>URLs in the file: scheme can be constructed for paths on
49    * the local file system. Several possibilities need to be considered:
50    * </p>
51    *
52    * <ul>
53    * <li>If the path does not begin with a slash, then it is assumed
54    * to reside in the users current working directory
55    * (System.getProperty("user.dir")).</li>
56    * <li>On Windows machines, the current working directory uses
57    * backslashes (\\, instead of /).</li>
58    * <li>If the current working directory is "/", don't add an extra
59    * slash before the base name.</li>
60    * </ul>
61    *
62    * <p>This method is declared static so that other classes
63    * can use it directly.</p>
64    *
65    * @param pathname The path name component for which to construct a URL.
66    *
67    * @return The appropriate file: URL.
68    *
69    * @throws MalformedURLException if the pathname can't be turned into
70    * a proper URL.
71    */

72   public static URL JavaDoc makeURL(String JavaDoc pathname) throws MalformedURLException JavaDoc {
73     /*if (pathname.startsWith("/")) {
74       return new URL("file://" + pathname);
75     }
76      
77     String userdir = System.getProperty("user.dir");
78     userdir.replace('\\', '/');
79      
80     if (userdir.endsWith("/")) {
81       return new URL("file:///" + userdir + pathname);
82     } else {
83       return new URL("file:///" + userdir + "/" + pathname);
84     }
85      */

86       File JavaDoc file = new File JavaDoc(pathname);
87       return file.toURL();
88   }
89 }
90
Popular Tags