~ubuntu-branches/ubuntu/trusty/monodevelop/trusty-proposed

« back to all changes in this revision

Viewing changes to external/ikvm/openjdk/sun/misc/FileURLMapper.java

  • Committer: Package Import Robot
  • Author(s): Jo Shields
  • Date: 2013-05-12 09:46:03 UTC
  • mto: This revision was merged to the branch mainline in revision 29.
  • Revision ID: package-import@ubuntu.com-20130512094603-mad323bzcxvmcam0
Tags: upstream-4.0.5+dfsg
ImportĀ upstreamĀ versionĀ 4.0.5+dfsg

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved.
 
3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 
4
 *
 
5
 * This code is free software; you can redistribute it and/or modify it
 
6
 * under the terms of the GNU General Public License version 2 only, as
 
7
 * published by the Free Software Foundation.  Oracle designates this
 
8
 * particular file as subject to the "Classpath" exception as provided
 
9
 * by Oracle in the LICENSE file that accompanied this code.
 
10
 *
 
11
 * This code is distributed in the hope that it will be useful, but WITHOUT
 
12
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 
13
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 
14
 * version 2 for more details (a copy is included in the LICENSE file that
 
15
 * accompanied this code).
 
16
 *
 
17
 * You should have received a copy of the GNU General Public License version
 
18
 * 2 along with this work; if not, write to the Free Software Foundation,
 
19
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 
20
 *
 
21
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
 
22
 * or visit www.oracle.com if you need additional information or have any
 
23
 * questions.
 
24
 */
 
25
 
 
26
/*IKVM*/
 
27
/*
 
28
 * Modified for IKVM by Jeroen Frijters on May 22, 2007.
 
29
 * 
 
30
 * This is a merged version of the Windows & Solaris platform specific versions.
 
31
 * Since the IKVM class library binary can be used both on Windows and on *nix,
 
32
 * I've merged the platform specific classes into a generic class that at
 
33
 * runtime determines if it runs on Windows or not.
 
34
 * 
 
35
/*IKVM*/
 
36
 
 
37
package sun.misc;
 
38
 
 
39
import java.net.URL;
 
40
import java.io.File;
 
41
import sun.net.www.ParseUtil;
 
42
 
 
43
/**
 
44
 * Platform specific handling for file: URLs . In particular deals
 
45
 * with network paths mapping them to UNCs.
 
46
 *
 
47
 * @author      Michael McMahon
 
48
 * @version     1.10, 07/05/05
 
49
 */
 
50
 
 
51
public class FileURLMapper {
 
52
    private static final boolean runningOnWindows = cli.System.Environment.get_OSVersion().ToString().indexOf("Unix") == -1;
 
53
    URL url;
 
54
    String file;
 
55
 
 
56
    public FileURLMapper (URL url) {
 
57
        this.url = url;
 
58
    }
 
59
 
 
60
    /**
 
61
     * @returns the platform specific path corresponding to the URL, and in particular
 
62
     *  returns a UNC when the authority contains a hostname
 
63
     */
 
64
 
 
65
    public String getPath () {
 
66
        if (file != null) {
 
67
            return file;
 
68
        }
 
69
        if (runningOnWindows) {
 
70
            String host = url.getHost();
 
71
            if (host != null && !host.equals("") &&
 
72
                !"localhost".equalsIgnoreCase(host)) {
 
73
                String rest = url.getFile();
 
74
                String s = host + ParseUtil.decode (url.getFile());
 
75
                file = "\\\\"+ s.replace('/', '\\');
 
76
                return file;
 
77
            }
 
78
            String path = url.getFile().replace('/', '\\');
 
79
            file = ParseUtil.decode(path);
 
80
            return file;
 
81
        } else {
 
82
            String host = url.getHost();
 
83
            if (host == null || "".equals(host) || "localhost".equalsIgnoreCase (host)) {
 
84
                file = url.getFile();
 
85
                file = ParseUtil.decode (file);
 
86
            }
 
87
            return file;
 
88
        }
 
89
    }
 
90
 
 
91
    public boolean exists() {
 
92
        String path = getPath();
 
93
        if (path == null) {
 
94
            return false;
 
95
        }
 
96
        File f = new File (path);
 
97
        return f.exists();
 
98
    }
 
99
}