1 module hunt.http.codec.websocket.utils.WSURI;
2 
3 // import java.net.URI;
4 // import java.net.URISyntaxException;
5 // import java.util.Objects;
6 
7 /**
8  * Utility methods for converting a {@link URI} between a HTTP(S) and WS(S) URI.
9  */
10 final class WSURI {
11     // /**
12     //  * Convert to HTTP <code>http</code> or <code>https</code> scheme URIs.
13     //  * <p>
14     //  * Converting <code>ws</code> and <code>wss</code> URIs to their HTTP equivalent
15     //  *
16     //  * @param inputUri the input URI
17     //  * @return the HTTP scheme URI for the input URI.
18     //  * @throws URISyntaxException if unable to convert the input URI
19     //  */
20     // static URI toHttp(URI inputUri) {
21     //     Objects.requireNonNull(inputUri, "Input URI must not be null");
22     //     string wsScheme = inputUri.getScheme();
23     //     if ("http".equalsIgnoreCase(wsScheme) || "https".equalsIgnoreCase(wsScheme)) {
24     //         // leave alone
25     //         return inputUri;
26     //     }
27 
28     //     if ("ws".equalsIgnoreCase(wsScheme)) {
29     //         // convert to http
30     //         return new URI("http" ~ inputUri.toString().substring(wsScheme.length()));
31     //     }
32 
33     //     if ("wss".equalsIgnoreCase(wsScheme)) {
34     //         // convert to https
35     //         return new URI("https" ~ inputUri.toString().substring(wsScheme.length()));
36     //     }
37 
38     //     throw new URISyntaxException(inputUri.toString(), "Unrecognized WebSocket scheme");
39     // }
40 
41     // /**
42     //  * Convert to WebSocket <code>ws</code> or <code>wss</code> scheme URIs
43     //  * <p>
44     //  * Converting <code>http</code> and <code>https</code> URIs to their WebSocket equivalent
45     //  *
46     //  * @param inputUrl the input URI
47     //  * @return the WebSocket scheme URI for the input URI.
48     //  * @throws URISyntaxException if unable to convert the input URI
49     //  */
50     // static URI toWebsocket(CharSequence inputUrl) {
51     //     return toWebsocket(new URI(inputUrl.toString()));
52     // }
53 
54     // /**
55     //  * Convert to WebSocket <code>ws</code> or <code>wss</code> scheme URIs
56     //  * <p>
57     //  * Converting <code>http</code> and <code>https</code> URIs to their WebSocket equivalent
58     //  *
59     //  * @param inputUrl the input URI
60     //  * @param query    the optional query string
61     //  * @return the WebSocket scheme URI for the input URI.
62     //  * @throws URISyntaxException if unable to convert the input URI
63     //  */
64     // static URI toWebsocket(CharSequence inputUrl, string query) {
65     //     if (query is null) {
66     //         return toWebsocket(new URI(inputUrl.toString()));
67     //     }
68     //     return toWebsocket(new URI(inputUrl.toString() + '?' + query));
69     // }
70 
71     // /**
72     //  * Convert to WebSocket <code>ws</code> or <code>wss</code> scheme URIs
73     //  * <p>
74     //  * <p>
75     //  * Converting <code>http</code> and <code>https</code> URIs to their WebSocket equivalent
76     //  *
77     //  * @param inputUri the input URI
78     //  * @return the WebSocket scheme URI for the input URI.
79     //  * @throws URISyntaxException if unable to convert the input URI
80     //  */
81     // static URI toWebsocket(final URI inputUri) {
82     //     Objects.requireNonNull(inputUri, "Input URI must not be null");
83     //     string httpScheme = inputUri.getScheme();
84     //     if ("ws".equalsIgnoreCase(httpScheme) || "wss".equalsIgnoreCase(httpScheme)) {
85     //         // keep as-is
86     //         return inputUri;
87     //     }
88 
89     //     if ("http".equalsIgnoreCase(httpScheme)) {
90     //         // convert to ws
91     //         return new URI("ws" ~ inputUri.toString().substring(httpScheme.length()));
92     //     }
93 
94     //     if ("https".equalsIgnoreCase(httpScheme)) {
95     //         // convert to wss
96     //         return new URI("wss" ~ inputUri.toString().substring(httpScheme.length()));
97     //     }
98 
99     //     throw new URISyntaxException(inputUri.toString(), "Unrecognized HTTP scheme");
100     // }
101 }