Package com.stardog.stark.util

# Class ParsedURI

java.lang.Object
com.stardog.stark.util.ParsedURI

All Implemented Interfaces:
  `Cloneable`

public class ParsedURI extends Object implements Cloneable
A replacement for Java's own URI: java.net.URI. Java's implementation is quite buggy in that it doesn't resolve relative URIs correctly.

Note: this implementation is not guaranteed to handle ipv6 addresses correctly (yet).

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ParsedURI(String uriSpec)`
  `ParsedURI(String scheme, String schemeSpecificPart, String fragment)`
  `ParsedURI(String scheme, String authority, String path, String query, String fragment)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Object`
  `clone()`
  `String`
  `getAuthority()`
  `String`
  `getFragment()`
  `String`
  `getPath()`
  `String`
  `getQuery()`
  `String`
  `getScheme()`
  `String`
  `getSchemeSpecificPart()`
  `boolean`
  `isAbsolute()`
  `boolean`
  `isHierarchical()`
  `boolean`
  `isOpaque()`
  `boolean`
  `isRelative()`
  `boolean`
  `isSelfReference()`
  Checks whether this URI is a relative URI that references itself (i.e.
  `void`
  `normalize()`
  Normalizes the path of this URI if it has one.
  `ParsedURI`
  `resolve(ParsedURI relURI)`
  Resolves a relative URI using this URI as the base URI.
  `ParsedURI`
  `resolve(String relURISpec)`
  Resolves a relative URI using this URI as the base URI.
  `String`
  `toString()`
  `String`
  `toString(StringBuilder sb)`

  ### Methods inherited from class java.lang.Object

  `equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- ## Constructor Details

  - ### ParsedURI

    public ParsedURI(String uriSpec)

  - ### ParsedURI

    public ParsedURI(String scheme, String schemeSpecificPart, String fragment)

  - ### ParsedURI

    public ParsedURI(String scheme, String authority, String path, String query, String fragment)

- ## Method Details

  - ### isHierarchical

    public boolean isHierarchical()

  - ### isOpaque

    public boolean isOpaque()

  - ### isAbsolute

    public boolean isAbsolute()

  - ### isRelative

    public boolean isRelative()

  - ### isSelfReference

    public boolean isSelfReference()
    Checks whether this URI is a relative URI that references itself (i.e. it only contains an anchor).

  - ### getScheme

    public String getScheme()

  - ### getSchemeSpecificPart

    public String getSchemeSpecificPart()

  - ### getAuthority

    public String getAuthority()

  - ### getPath

    public String getPath()

  - ### getQuery

    public String getQuery()

  - ### getFragment

    public String getFragment()

  - ### normalize

    public void normalize()
    Normalizes the path of this URI if it has one. Normalizing a path means that any unnecessary '.' and '..' segments are removed. For example, the URI `http://server.com/a/b/../c/./d` would be normalized to `http://server.com/a/c/d`. A URI doens't have a path if it is opaque.

  - ### resolve

    public ParsedURI resolve(String relURISpec)
    Resolves a relative URI using this URI as the base URI.

  - ### resolve

    public ParsedURI resolve(ParsedURI relURI)
    Resolves a relative URI using this URI as the base URI.

  - ### toString

    public String toString(StringBuilder sb)

  - ### toString

    public String toString()
    Overrides:
      `toString` in class `Object`

  - ### clone

    public Object clone()
    Overrides:
      `clone` in class `Object`