src/main/java/io/mola/galimatias/URL.java
public java.net.URI toJavaURI() throws URISyntaxException {
        if (isHierarchical) {
            return new URI(scheme(),
                    (!"".equals(userInfo()))? URLUtils.percentDecode(userInfo()) : null,
                    (host() != null)? host().toString() : null,
                    port,
                    (path() != null)? URLUtils.percentDecode(path()) : null,
                    (query() != null)? URLUtils.percentDecode(query()) : null,
                    (fragment() != null)? URLUtils.percentDecode(fragment()) : null
            );
        }
        return new URI(scheme(),
                URLUtils.percentDecode(schemeData()) + ((query() == null)? "" : "?" + URLUtils.percentDecode(query())),
                (fragment() != null)? URLUtils.percentDecode(fragment()) : null
        );
    }
public java.net.URI toJavaURI() throws URISyntaxException {
        if (isHierarchical) {
            return new URI(scheme(),
                    (!"".equals(userInfo()))? URLUtils.percentDecode(userInfo()) : null,
                    (host() != null)? host().toString() : null,
                    port,
                    (path() != null)? URLUtils.percentDecode(path()) : null,
                    (query() != null)? URLUtils.percentDecode(query()) : null,
                    (fragment() != null)? URLUtils.percentDecode(fragment()) : null
            );
        }
        return new URI(scheme(),
                URLUtils.percentDecode(schemeData()) + ((query() == null)? "" : "?" + URLUtils.percentDecode(query())),
                (fragment() != null)? URLUtils.percentDecode(fragment()) : null
        );
    }
Converts to {@link java.net.URI}.

Conversion to {@link java.net.URI} will throw
{@link java.net.URISyntaxException} if the URL contains
unescaped unsafe characters as defined in RFC 2396.
In order to prevent this, force RFC 2396 compliance when
parsing the URL. For example:

NOTE 1: This will not make distinction between no user and password and just empty
user and no password.
<pre>
<code>
URL.parse("http://example.com").toJavaURI().toString() -> "http://example.com"
URL.parse("http://@example.com").toJavaURI().toString() -> "http://example.com"
</code>
</pre>

TODO: Check if this exception can actually be thrown

@return