V8 inspector: debug sourcemap-backed files
[idea/community.git] / platform / platform-impl / src / com / intellij / util / LocalFileUrl.java
1 package com.intellij.util;
2
3 import com.intellij.openapi.util.text.StringUtil;
4 import org.jetbrains.annotations.NotNull;
5 import org.jetbrains.annotations.Nullable;
6
7 public final class LocalFileUrl implements Url {
8   private final String path;
9
10   /**
11    * Use {@link Urls#newLocalFileUrl(String)} instead
12    */
13   public LocalFileUrl(@NotNull String path) {
14     this.path = path;
15   }
16
17   @Override
18   public Url resolve(@NotNull String subPath) {
19     return new LocalFileUrl(path.isEmpty() ? subPath : (path + "/" + subPath));
20   }
21
22   @NotNull
23   @Override
24   public String getPath() {
25     return path;
26   }
27
28   @Override
29   public boolean isInLocalFileSystem() {
30     return true;
31   }
32
33   @Override
34   public String toDecodedForm() {
35     return path;
36   }
37
38   @NotNull
39   @Override
40   public String toExternalForm() {
41     return path;
42   }
43
44   @Nullable
45   @Override
46   public String getScheme() {
47     return null;
48   }
49
50   @Nullable
51   @Override
52   public String getAuthority() {
53     return null;
54   }
55
56   @Nullable
57   @Override
58   public String getParameters() {
59     return null;
60   }
61
62   @NotNull
63   @Override
64   public Url trimParameters() {
65     return this;
66   }
67
68   @Override
69   public String toString() {
70     return toExternalForm();
71   }
72
73   @Override
74   public boolean equals(Object o) {
75     return this == o || ((o instanceof LocalFileUrl) && path.equals(((LocalFileUrl)o).path));
76   }
77
78   @Override
79   public boolean equalsIgnoreCase(@Nullable Url o) {
80     return this == o || ((o instanceof LocalFileUrl) && path.equalsIgnoreCase(((LocalFileUrl)o).path));
81   }
82
83   @Override
84   public boolean equalsIgnoreParameters(@Nullable Url url) {
85     return equals(url);
86   }
87
88   @Override
89   public int hashCode() {
90     return path.hashCode();
91   }
92
93   @Override
94   public int hashCodeCaseInsensitive() {
95     return StringUtil.stringHashCodeInsensitive(path);
96   }
97 }