blob: 6a18c23d08c198accf29b3bda840b8af9a32cee0 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
using System;
namespace Mammoth.Couscous.java.net {
internal class URI {
private readonly Uri _uri;
internal URI(string uri) {
try {
_uri = new Uri(uri, UriKind.RelativeOrAbsolute);
} catch (UriFormatException exception) {
throw new URISyntaxException(exception.Message);
}
}
internal URI(Uri uri) {
_uri = uri;
}
internal bool isAbsolute() {
return _uri.IsAbsoluteUri;
}
internal URL toURL() {
return new URL(_uri.ToString());
}
internal URI resolve(string relativeUri) {
if (new URI(relativeUri).isAbsolute()) {
return new URI(relativeUri);
} else if (_uri.IsAbsoluteUri) {
return new URI(new Uri(_uri, relativeUri));
} else {
var path = _uri.ToString();
var basePath = System.IO.Path.GetDirectoryName(path);
return new URI(System.IO.Path.Combine(basePath, relativeUri));
}
}
}
}
|