Class URIish

java.lang.Object
org.eclipse.jgit.transport.URIish
All Implemented Interfaces:
Serializable

public class URIish extends Object implements Serializable
This URI like construct used for referencing Git archives over the net, as well as locally stored archives. It is similar to RFC 2396 URI's, but also support SCP and the malformed file://<path> syntax (as opposed to the correct file:<path> syntax.
See Also:
  • Field Details

    • SCHEME_P

      private static final String SCHEME_P
      Part of a pattern which matches the scheme part (git, http, ...) of an URI. Defines one capturing group containing the scheme without the trailing colon and slashes
      See Also:
    • OPT_USER_PWD_P

      private static final String OPT_USER_PWD_P
      Part of a pattern which matches the optional user/password part (e.g. root:pwd@ in git://root:pwd@host.xyz/a.git) of URIs. Defines two capturing groups: the first containing the user and the second containing the password
      See Also:
    • HOST_P

      private static final String HOST_P
      Part of a pattern which matches the host part of URIs. Defines one capturing group containing the host name.
      See Also:
    • OPT_PORT_P

      private static final String OPT_PORT_P
      Part of a pattern which matches the optional port part of URIs. Defines one capturing group containing the port without the preceding colon.
      See Also:
    • USER_HOME_P

      private static final String USER_HOME_P
      Part of a pattern which matches the ~username part (e.g. /~root in git://host.xyz/~root/a.git) of URIs. Defines no capturing group.
      See Also:
    • OPT_DRIVE_LETTER_P

      private static final String OPT_DRIVE_LETTER_P
      Part of a pattern which matches the optional drive letter in paths (e.g. D: in file:///D:/a.txt). Defines no capturing group.
      See Also:
    • RELATIVE_PATH_P

      private static final String RELATIVE_PATH_P
      Part of a pattern which matches a relative path. Relative paths don't start with slash or drive letters. Defines no capturing group.
      See Also:
    • PATH_P

      private static final String PATH_P
      Part of a pattern which matches a relative or absolute path. Defines no capturing group.
      See Also:
    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • FULL_URI

      private static final Pattern FULL_URI
      A pattern matching standard URI:
      scheme "://" user_password? hostname? portnumber? path
    • LOCAL_FILE

      private static final Pattern LOCAL_FILE
      A pattern matching the reference to a local file. This may be an absolute path (maybe even containing windows drive-letters) or a relative path.
    • SINGLE_SLASH_FILE_URI

      private static final Pattern SINGLE_SLASH_FILE_URI
      A pattern matching a URI for the scheme 'file' which has only ':/' as separator between scheme and path. Standard file URIs have '://' as separator, but java.io.File.toURI() constructs those URIs.
    • RELATIVE_SCP_URI

      private static final Pattern RELATIVE_SCP_URI
      A pattern matching a SCP URI's of the form user@host:path/to/repo.git
    • ABSOLUTE_SCP_URI

      private static final Pattern ABSOLUTE_SCP_URI
      A pattern matching a SCP URI's of the form user@host:/path/to/repo.git
    • scheme

      private String scheme
    • path

      private String path
    • rawPath

      private String rawPath
    • user

      private String user
    • pass

      private String pass
    • port

      private int port
    • host

      private String host
    • reservedChars

      private static final BitSet reservedChars
  • Constructor Details

    • URIish

      public URIish(String s) throws URISyntaxException
      Parse and construct an URIish from a string
      Parameters:
      s - a String object.
      Throws:
      URISyntaxException
    • URIish

      public URIish(URL u)
      Construct a URIish from a standard URL.
      Parameters:
      u - the source URL to convert from.
    • URIish

      public URIish()
      Create an empty, non-configured URI.
    • URIish

      private URIish(URIish u)
  • Method Details

    • parseHexByte

      private static int parseHexByte(byte c1, byte c2)
    • unescape

      private static String unescape(String s) throws URISyntaxException
      Throws:
      URISyntaxException
    • escape

      private static String escape(String s, boolean escapeReservedChars, boolean encodeNonAscii)
      Escape unprintable characters optionally URI-reserved characters
      Parameters:
      s - The Java String to encode (may contain any character)
      escapeReservedChars - true to escape URI reserved characters
      encodeNonAscii - encode any non-ASCII characters
      Returns:
      a URI-encoded string
    • n2e

      private String n2e(String s)
    • cleanLeadingSlashes

      private String cleanLeadingSlashes(String p, String s)
    • isRemote

      public boolean isRemote()
      Whether this URI references a repository on another system.
      Returns:
      true if this URI references a repository on another system.
    • getHost

      public String getHost()
      Get host name part.
      Returns:
      host name part or null
    • setHost

      public URIish setHost(String n)
      Return a new URI matching this one, but with a different host.
      Parameters:
      n - the new value for host.
      Returns:
      a new URI with the updated value.
    • getScheme

      public String getScheme()
      Get protocol name
      Returns:
      protocol name or null for local references
    • setScheme

      public URIish setScheme(String n)
      Return a new URI matching this one, but with a different scheme.
      Parameters:
      n - the new value for scheme.
      Returns:
      a new URI with the updated value.
    • getPath

      public String getPath()
      Get path name component
      Returns:
      path name component
    • getRawPath

      public String getRawPath()
      Get path name component
      Returns:
      path name component
    • setPath

      public URIish setPath(String n)
      Return a new URI matching this one, but with a different path.
      Parameters:
      n - the new value for path.
      Returns:
      a new URI with the updated value.
    • setRawPath

      public URIish setRawPath(String n) throws URISyntaxException
      Return a new URI matching this one, but with a different (raw) path.
      Parameters:
      n - the new value for path.
      Returns:
      a new URI with the updated value.
      Throws:
      URISyntaxException
    • getUser

      public String getUser()
      Get user name requested for transfer
      Returns:
      user name requested for transfer or null
    • setUser

      public URIish setUser(String n)
      Return a new URI matching this one, but with a different user.
      Parameters:
      n - the new value for user.
      Returns:
      a new URI with the updated value.
    • getPass

      public String getPass()
      Get password requested for transfer
      Returns:
      password requested for transfer or null
    • setPass

      public URIish setPass(String n)
      Return a new URI matching this one, but with a different password.
      Parameters:
      n - the new value for password.
      Returns:
      a new URI with the updated value.
    • getPort

      public int getPort()
      Get port number requested for transfer or -1 if not explicit
      Returns:
      port number requested for transfer or -1 if not explicit
    • setPort

      public URIish setPort(int n)
      Return a new URI matching this one, but with a different port.
      Parameters:
      n - the new value for port.
      Returns:
      a new URI with the updated value.
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • eq

      private static boolean eq(String a, String b)
    • toPrivateString

      public String toPrivateString()
      Obtain the string form of the URI, with the password included.
      Returns:
      the URI, including its password field, if any.
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • format

      private String format(boolean includePassword, boolean escapeNonAscii)
    • toASCIIString

      public String toASCIIString()
      Get the URI as an ASCII string.
      Returns:
      the URI as an ASCII string. Password is not included.
    • toPrivateASCIIString

      public String toPrivateASCIIString()
      Convert the URI including password, formatted with only ASCII characters such that it will be valid for use over the network.
      Returns:
      the URI including password, formatted with only ASCII characters such that it will be valid for use over the network.
    • getHumanishName

      public String getHumanishName() throws IllegalArgumentException
      Get the "humanish" part of the path. Some examples of a 'humanish' part for a full path:
      Path Humanish part
      /path/to/repo.git repo
      /path/to/repo.git/
      /path/to/repo/.git
      /path/to/repo/
      localhost ssh://localhost/
      /path//to an empty string
      Returns:
      the "humanish" part of the path. May be an empty string. Never null.
      Throws:
      IllegalArgumentException - if it's impossible to determine a humanish part, or path is null or empty
      See Also: