blob: ee149a1a0e6ad44affa1a0a0c2d2259c20715392 [file] [log] [blame]
// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.url;
import java.net.URISyntaxException;
/**
* An API shim around GURL that mostly matches the java.net.URI API.
*
* @deprecated Please use GURL directly in new code.
*/
@Deprecated
public class URI extends GURL {
/** Create a new GURL with a java.net.URI API shim. */
public URI(String uri) throws URISyntaxException {
super(uri);
if (!isValid()) {
throw new URISyntaxException(uri, "Uri could not be parsed as a valid GURL");
}
}
private URI() {}
/**
* This function is a convenience wrapper around {@link URI#URI(String)}, that wraps the thrown
* thrown URISyntaxException in an IllegalArgumentException and throws that instead.
*/
public static URI create(String str) {
try {
return new URI(str);
} catch (URISyntaxException e) {
throw new IllegalArgumentException(e);
}
}
@Override
public URI getOrigin() {
URI target = new URI();
getOriginInternal(target);
return target;
}
/** See {@link GURL#getRef()} */
public String getFragment() {
return getRef();
}
/** See {@link java.net.URI#isAbsolute()} */
public boolean isAbsolute() {
return !getScheme().isEmpty();
}
@Override
public String toString() {
return getPossiblyInvalidSpec();
}
}