netscape.ldap
Class LDAPUrl

java.lang.Object
  |
  +--netscape.ldap.LDAPUrl

public class LDAPUrl
extends java.lang.Object

Represents an LDAP URL. The complete specification for LDAP URLs is in RFC 1959. LDAP URLs have the following format:

 "ldap://" [ hostName [":" portNumber] ] "//"
                      distinguishedName
          ["?" attributeList ["?" scope
                      "?" filterString ] ]
 
where

Note that if scope and filterString are not specified, an LDAP URL identifies exactly one entry in the directory.

The same encoding rules for other URLs (e.g. HTTP) apply for LDAP URLs. Specifically, any "illegal" characters are escaped with %HH, where HH represent the two hex digits which correspond to the ASCII value of the character. This encoding is only legal (or necessary) on the DN and filter portions of the URL.


Field Summary
static java.lang.String defaultFilter
           
 
Constructor Summary
LDAPUrl(java.lang.String url)
          Constructs a URL object with the specified string as URL.
LDAPUrl(java.lang.String host, int port, java.lang.String DN)
          Constructs with the specified host, port, and DN.
LDAPUrl(java.lang.String host, int port, java.lang.String DN, java.util.Enumeration attributes, int scope, java.lang.String filter)
          Constructs a full-blown LDAP URL to specify an LDAP search operation.
LDAPUrl(java.lang.String host, int port, java.lang.String DN, java.lang.String[] attributes, int scope, java.lang.String filter)
          Constructs a full-blown LDAP URL to specify an LDAP search operation.
 
Method Summary
static java.lang.String decode(java.lang.String URLEncoded)
          Decodes a URL-encoded string.
static java.lang.String encode(java.lang.String toEncode)
          Encodes an arbitrary string.
 boolean equals(LDAPUrl url)
          Reports if the two objects represent the same URL
 java.lang.String[] getAttributeArray()
          Return the collection of attributes specified in the URL, or null for "every attribute"
 java.util.Enumeration getAttributes()
          Return the collection of attributes specified in the URL, or null for "every attribute"
 java.lang.String getDN()
          Return the distinguished name encapsulated in the URL
 java.lang.String getFilter()
          Returns the search filter (RFC 1558), or the default if none was specified.
 java.lang.String getHost()
          Return the host name of the LDAP server
 int getPort()
          Return the port number for the LDAP server
 int getScope()
          Returns the scope of the search, according to the values SCOPE_BASE, SCOPE_ONE, SCOPE_SUB as defined in LDAPv2.
 java.lang.String getUrl()
          Returns a valid string representation of this LDAP URL.
 java.lang.String toString()
          Returns the URL in String format
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

defaultFilter

public static java.lang.String defaultFilter
Constructor Detail

LDAPUrl

public LDAPUrl(java.lang.String url)
        throws java.net.MalformedURLException
Constructs a URL object with the specified string as URL.
Parameters:
url - LDAP search expression in URL form
Throws:
java.net.MalformedURLException - failed to parse URL

LDAPUrl

public LDAPUrl(java.lang.String host,
               int port,
               java.lang.String DN)
Constructs with the specified host, port, and DN. This form is used to create URL references to a particular object in the directory.
Parameters:
host - host name of the LDAP server, or null for "nearest X.500/LDAP"
port - port number of the LDAP server (use LDAPv2.DEFAULT_PORT for the default port)
DN - distinguished name of the object

LDAPUrl

public LDAPUrl(java.lang.String host,
               int port,
               java.lang.String DN,
               java.lang.String[] attributes,
               int scope,
               java.lang.String filter)
Constructs a full-blown LDAP URL to specify an LDAP search operation.
Parameters:
host - host name of the LDAP server, or null for "nearest X.500/LDAP"
port - port number of the LDAP server (use LDAPv2.DEFAULT_PORT for the default port)
DN - distinguished name of the object
attributes - list of attributes to return. Use null for "all attributes."
scope - depth of search (in DN namespace). Use one of the LDAPv2 scopes: SCOPE_BASE, SCOPE_ONE, or SCOPE_SUB.
filter - LDAP filter string (as defined in RFC 1558). Use null for no filter (this effectively makes the URL reference a single object).

LDAPUrl

public LDAPUrl(java.lang.String host,
               int port,
               java.lang.String DN,
               java.util.Enumeration attributes,
               int scope,
               java.lang.String filter)
Constructs a full-blown LDAP URL to specify an LDAP search operation.
Parameters:
host - host name of the LDAP server, or null for "nearest X.500/LDAP"
port - port number of the LDAP server (use LDAPv2.DEFAULT_PORT for the default port)
DN - distinguished name of the object
attributes - list of the attributes to return. Use null for "all attributes."
scope - depth of the search (in DN namespace). Use one of the LDAPv2 scopes: SCOPE_BASE, SCOPE_ONE, or SCOPE_SUB.
filter - LDAP filter string (as defined in RFC 1558). Use null for no filter (this effectively makes the URL reference a single object).
Method Detail

getHost

public java.lang.String getHost()
Return the host name of the LDAP server
Returns:
LDAP host.

getPort

public int getPort()
Return the port number for the LDAP server
Returns:
port number.

getDN

public java.lang.String getDN()
Return the distinguished name encapsulated in the URL
Returns:
target distinguished name.

getAttributes

public java.util.Enumeration getAttributes()
Return the collection of attributes specified in the URL, or null for "every attribute"
Returns:
enumeration of attributes.

getAttributeArray

public java.lang.String[] getAttributeArray()
Return the collection of attributes specified in the URL, or null for "every attribute"
Returns:
string array of attributes.

getScope

public int getScope()
Returns the scope of the search, according to the values SCOPE_BASE, SCOPE_ONE, SCOPE_SUB as defined in LDAPv2. This refers to how deep within the directory namespace the search will look
Returns:
search scope.

getFilter

public java.lang.String getFilter()
Returns the search filter (RFC 1558), or the default if none was specified.
Returns:
the search filter.

getUrl

public java.lang.String getUrl()
Returns a valid string representation of this LDAP URL.
Returns:
the LDAP search expression in URL form.

decode

public static java.lang.String decode(java.lang.String URLEncoded)
                               throws java.net.MalformedURLException
Decodes a URL-encoded string. Any occurences of %HH are decoded to the hex value represented. However, this routine does NOT decode "+" into " ". See RFC 1738 for full details about URL encoding/decoding.
Parameters:
URLEncoded - a segment of a URL which was encoded using the URL encoding rules
Throws:
java.net.MalformedURLException - failed to parse URL

encode

public static java.lang.String encode(java.lang.String toEncode)
Encodes an arbitrary string. Any illegal characters are encoded as %HH. However, this routine does NOT decode "+" into " " (this is a HTTP thing, not a general URL thing). Note that, because Sun's URLEncoder does do this encoding, we can't use it. See RFC 1738 for full details about URL encoding/decoding.
Parameters:
toEncode - an arbitrary string to encode for embedding within a URL

toString

public java.lang.String toString()
Returns the URL in String format
Overrides:
toString in class java.lang.Object
Returns:
the URL in String format

equals

public boolean equals(LDAPUrl url)
Reports if the two objects represent the same URL
Parameters:
url - the object to be compared to
Returns:
true if the two are equivalent