org.tmatesoft.svn.core
Class SVNURL

java.lang.Object
  extended by org.tmatesoft.svn.core.SVNURL

public class SVNURL
extends java.lang.Object

The SVNURL class is used for representing urls. Those SVNKit API methods, that need repository locations to carry out an operation, receive a repository location url represented by SVNURL. This class does all the basic work for a caller: parses an original url string (splitting it to components), encodes/decodes a path component to/from the UTF-8 charset, checks for validity (such as protocol support - if SVNKit does not support a particular protocol, SVNURL throws a corresponding exception).

To create a new SVNURL representation, pass an original url string (like "http://userInfo@host:port/path") to a corresponding parse method of this class.

Since:
1.2
See Also:
Examples

Method Summary
 SVNURL appendPath(java.lang.String segment, boolean uriEncoded)
          Constructs a new SVNURL representation appending a new path segment to the path component of this representation.
static SVNURL create(java.lang.String protocol, java.lang.String userInfo, java.lang.String host, int port, java.lang.String path, boolean uriEncoded)
          Creates a new SVNURL representation from the given url components.
 boolean equals(java.lang.Object obj)
          Compares this object with another one.
static SVNURL fromFile(java.io.File repositoryPath)
          Creates a "file:///" SVNURL representation given a filesystem style repository path.
static int getDefaultPortNumber(java.lang.String protocol)
          Returns the default port number for the specified protocol.
 java.lang.String getHost()
          Returns the host component of the url represented by this object.
 java.lang.String getPath()
          Returns the path component of the url represented by this object as a uri-decoded string
 int getPort()
          Returns the port number specified (or default) for the host.
 java.lang.String getProtocol()
          Returns the protocol component of the url represented by this object.
 java.lang.String getURIEncodedPath()
          Returns the path component of the url represented by this object as a uri-encoded string
 java.lang.String getUserInfo()
          Returns the user info component of the url represented by this object.
 int hashCode()
          Calculates and returns a hash code for this object.
 boolean hasPort()
          Says if the url is provided with a non-default port number or not.
static SVNURL parseURIDecoded(java.lang.String url)
          Parses the given decoded (not UTF-8 encoded) url string and creates a new SVNURL representation for this url.
static SVNURL parseURIEncoded(java.lang.String url)
          Parses the given UTF-8 encoded url string and creates a new SVNURL representation for this url.
static void registerProtocol(java.lang.String protocolName, int defaultPort)
          Sets the default protocol for a repository access protocol.
 SVNURL removePathTail()
          Constructs a new SVNURL representation removing a tail path segment from the path component of this representation.
 SVNURL setPath(java.lang.String path, boolean uriEncoded)
          Creates a new SVNURL object replacing a path component of this object with a new provided one.
 java.lang.String toDecodedString()
          Returns a string representing a decoded url.
 java.lang.String toString()
          Returns a string representing a UTF-8 encoded url.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Method Detail

create

public static SVNURL create(java.lang.String protocol,
                            java.lang.String userInfo,
                            java.lang.String host,
                            int port,
                            java.lang.String path,
                            boolean uriEncoded)
                     throws SVNException
Creates a new SVNURL representation from the given url components.

Parameters:
protocol - a protocol component
userInfo - a user info component
host - a host component
port - a port number
path - a path component
uriEncoded - true if path is UTF-8 encoded, false otherwise
Returns:
a new SVNURL representation
Throws:
SVNException - if the resultant url (composed of the given components) is malformed

parseURIDecoded

public static SVNURL parseURIDecoded(java.lang.String url)
                              throws SVNException
Parses the given decoded (not UTF-8 encoded) url string and creates a new SVNURL representation for this url.

Parameters:
url - an input url string (like 'http://myhost/mypath')
Returns:
a new SVNURL representation of url
Throws:
SVNException - if url is malformed

parseURIEncoded

public static SVNURL parseURIEncoded(java.lang.String url)
                              throws SVNException
Parses the given UTF-8 encoded url string and creates a new SVNURL representation for this url.

Parameters:
url - an input url string (like 'http://myhost/my%20path')
Returns:
a new SVNURL representation of url
Throws:
SVNException - if url is malformed

fromFile

public static SVNURL fromFile(java.io.File repositoryPath)
                       throws SVNException
Creates a "file:///" SVNURL representation given a filesystem style repository path.

Parameters:
repositoryPath - a repository path as a filesystem path
Returns:
an SVNURL representation
Throws:
SVNException

getDefaultPortNumber

public static int getDefaultPortNumber(java.lang.String protocol)
Returns the default port number for the specified protocol.

Parameters:
protocol - a particular access protocol
Returns:
default port number

registerProtocol

public static void registerProtocol(java.lang.String protocolName,
                                    int defaultPort)
Sets the default protocol for a repository access protocol.

Parameters:
protocolName - protocol name
defaultPort - default port value
Since:
1.2.0

getProtocol

public java.lang.String getProtocol()
Returns the protocol component of the url represented by this object.

Returns:
a protocol name (like http)

getHost

public java.lang.String getHost()
Returns the host component of the url represented by this object.

Returns:
a host name

getPort

public int getPort()
Returns the port number specified (or default) for the host.

Returns:
a port number

hasPort

public boolean hasPort()
Says if the url is provided with a non-default port number or not.

Returns:
true if the url comes with a non-default port number, false otherwise
See Also:
getPort()

getPath

public java.lang.String getPath()
Returns the path component of the url represented by this object as a uri-decoded string

Returns:
a uri-decoded path

getURIEncodedPath

public java.lang.String getURIEncodedPath()
Returns the path component of the url represented by this object as a uri-encoded string

Returns:
a uri-encoded path

getUserInfo

public java.lang.String getUserInfo()
Returns the user info component of the url represented by this object.

Returns:
a user info part of the url (if it was provided)

toString

public java.lang.String toString()
Returns a string representing a UTF-8 encoded url.

Overrides:
toString in class java.lang.Object
Returns:
an encoded url string

toDecodedString

public java.lang.String toDecodedString()
Returns a string representing a decoded url.

Returns:
a decoded url string

appendPath

public SVNURL appendPath(java.lang.String segment,
                         boolean uriEncoded)
                  throws SVNException
Constructs a new SVNURL representation appending a new path segment to the path component of this representation.

Parameters:
segment - a new path segment
uriEncoded - true if segment is UTF-8 encoded, false otherwise
Returns:
a new SVNURL representation
Throws:
SVNException - if a parse error occurred

setPath

public SVNURL setPath(java.lang.String path,
                      boolean uriEncoded)
               throws SVNException
Creates a new SVNURL object replacing a path component of this object with a new provided one.

Parameters:
path - a path component
uriEncoded - true if path is UTF-8 encoded
Returns:
a new SVNURL representation
Throws:
SVNException - if a parse error occurred

removePathTail

public SVNURL removePathTail()
                      throws SVNException
Constructs a new SVNURL representation removing a tail path segment from the path component of this representation.

Returns:
a new SVNURL representation
Throws:
SVNException

equals

public boolean equals(java.lang.Object obj)
Compares this object with another one.

Overrides:
equals in class java.lang.Object
Parameters:
obj - an object to compare with
Returns:
true if obj is an instance of SVNURL and has got the same url components as this object has

hashCode

public int hashCode()
Calculates and returns a hash code for this object.

Overrides:
hashCode in class java.lang.Object
Returns:
a hash code value