java.lang.Object | |
↳ | com.sun.jndi.ldap.LdapName |
LdapName
implements compound names for LDAP v3 as
specified by RFC 2253.
RFC 2253 has a few ambiguities and outright inconsistencies. These are resolved as follows:
String names passed to LdapName
or returned by it
use the full 16-bit Unicode character set. They may also contain
characters encoded into UTF-8 with each octet represented by a
three-character substring such as "\\B4".
They may not, however, contain characters encoded into UTF-8 with
each octet represented by a single character in the string: the
meaning would be ambiguous.
LdapName
will properly parse all valid names, but
does not attempt to detect all possible violations when parsing
invalid names. It's "generous".
When names are tested for equality, attribute types and binary values are case-insensitive, and string values are by default case-insensitive. String values with different but equivalent usage of quoting, escaping, or UTF8-hex-encoding are considered equal. The order of components in multi-valued RDNs (such as "ou=Sales+cn=Bob") is not significant.
[Expand]
Inherited Constants | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
![]() |
Public Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Constructs an LDAP name from the given DN.
|
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Adds a single component at a specified position within this name.
| |||||||||||
Adds a single component to the end of this name.
| |||||||||||
Adds the components of a name -- in order -- at a specified position
within this name.
| |||||||||||
Adds the components of a name -- in order -- to the end of this name.
| |||||||||||
Creates and returns a copy of this object.
| |||||||||||
Compares this name with another name for order.
| |||||||||||
Determines whether this name ends with a specified suffix.
| |||||||||||
Indicates whether some other object is "equal to" this one.
| |||||||||||
Given the value of an attribute, returns a string suitable
for inclusion in a DN.
| |||||||||||
Retrieves a component of this name.
| |||||||||||
Retrieves the components of this name as an enumeration
of strings.
| |||||||||||
Creates a name whose components consist of a prefix of the
components of this name.
| |||||||||||
Creates a name whose components consist of a suffix of the
components in this name.
| |||||||||||
Returns a hash code value for the object.
| |||||||||||
Determines whether this name is empty.
| |||||||||||
Removes a component from this name.
| |||||||||||
Controls whether string-values are treated as case-sensitive
when the string values within names are compared.
| |||||||||||
Returns the number of components in this name.
| |||||||||||
Determines whether this name starts with a specified prefix.
| |||||||||||
Returns a string representation of the object.
| |||||||||||
Given an attribute value formated according to RFC 2253,
returns the unformated value.
|
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
![]() | |||||||||||
![]() | |||||||||||
![]() |
Constructs an LDAP name from the given DN.
name | An LDAP DN. To JNDI, a compound name. |
---|
InvalidNameException | if a syntax violation is detected. |
---|
Adds a single component at a specified position within this name. Components of this name at or after the index of the new component are shifted up by one (away from index 0) to accommodate the new component.
pos | the index at which to add the new component. Must be in the range [0,size()]. |
---|---|
comp | the component to add |
InvalidNameException |
---|
Adds a single component to the end of this name.
comp | the component to add |
---|
InvalidNameException |
---|
Adds the components of a name -- in order -- at a specified position within this name. Components of this name at or after the index of the first new component are shifted up (away from 0) to accommodate the new components.
pos | the index in this name at which to add the new components. Must be in the range [0,size()]. |
---|---|
suffix | the components to add |
InvalidNameException |
---|
Adds the components of a name -- in order -- to the end of this name.
suffix | the components to add |
---|
InvalidNameException |
---|
Creates and returns a copy of this object. The precise meaning of "copy" may depend on the class of the object. The general intent is that, for any object x, the expression:
will be true, and that the expression:x.clone() != x
will be true, but these are not absolute requirements. While it is typically the case that:x.clone().getClass() == x.getClass()
will be true, this is not an absolute requirement.x.clone().equals(x)
By convention, the returned object should be obtained by calling super.clone. If a class and all of its superclasses (except Object) obey this convention, it will be the case that x.clone().getClass() == x.getClass().
By convention, the object returned by this method should be independent of this object (which is being cloned). To achieve this independence, it may be necessary to modify one or more fields of the object returned by super.clone before returning it. Typically, this means copying any mutable objects that comprise the internal "deep structure" of the object being cloned and replacing the references to these objects with references to the copies. If a class contains only primitive fields or references to immutable objects, then it is usually the case that no fields in the object returned by super.clone need to be modified.
The method clone for class Object performs a specific cloning operation. First, if the class of this object does not implement the interface Cloneable, then a CloneNotSupportedException is thrown. Note that all arrays are considered to implement the interface Cloneable. Otherwise, this method creates a new instance of the class of this object and initializes all its fields with exactly the contents of the corresponding fields of this object, as if by assignment; the contents of the fields are not themselves cloned. Thus, this method performs a "shallow copy" of this object, not a "deep copy" operation.
The class Object does not itself implement the interface Cloneable, so calling the clone method on an object whose class is Object will result in throwing an exception at run time.
Compares this name with another name for order. Returns a negative integer, zero, or a positive integer as this name is less than, equal to, or greater than the given name.
As with Object.equals(), the notion of ordering for names depends on the class that implements this interface. For example, the ordering may be based on lexicographical ordering of the name components. Specific attributes of the name, such as how it treats case, may affect the ordering. In general, two names of different classes may not be compared.
obj | the non-null object to compare against. |
---|
Determines whether this name ends with a specified suffix. A name n is a suffix if it is equal to getSuffix(size()-n.size()).
n | the name to check |
---|
Indicates whether some other object is "equal to" this one.
The equals
method implements an equivalence relation
on non-null object references:
x
, x.equals(x)
should return
true
.
x
and y
, x.equals(y)
should return true
if and only if
y.equals(x)
returns true
.
x
, y
, and z
, if
x.equals(y)
returns true
and
y.equals(z)
returns true
, then
x.equals(z)
should return true
.
x
and y
, multiple invocations of
x.equals(y) consistently return true
or consistently return false
, provided no
information used in equals
comparisons on the
objects is modified.
x
,
x.equals(null)
should return false
.
The equals method for class Object
implements
the most discriminating possible equivalence relation on objects;
that is, for any non-null reference values x
and
y
, this method returns true
if and only
if x
and y
refer to the same object
(x == y
has the value true
).
Note that it is generally necessary to override the hashCode method whenever this method is overridden, so as to maintain the general contract for the hashCode method, which states that equal objects must have equal hash codes.
obj | the reference object with which to compare. |
---|
true
if this object is the same as the obj
argument; false
otherwise.Given the value of an attribute, returns a string suitable for inclusion in a DN. If the value is a string, this is accomplished by using backslash (\) to escape the following characters:
, = + < > # ; " \
Retrieves a component of this name.
pos | the 0-based index of the component to retrieve. Must be in the range [0,size()). |
---|
Retrieves the components of this name as an enumeration of strings. The effect on the enumeration of updates to this name is undefined. If the name has zero components, an empty (non-null) enumeration is returned.
Creates a name whose components consist of a prefix of the components of this name. Subsequent changes to this name will not affect the name that is returned and vice versa.
pos | the 0-based index of the component at which to stop. Must be in the range [0,size()]. |
---|
Creates a name whose components consist of a suffix of the components in this name. Subsequent changes to this name do not affect the name that is returned and vice versa.
pos | the 0-based index of the component at which to start. Must be in the range [0,size()]. |
---|
Returns a hash code value for the object. This method is
supported for the benefit of hashtables such as those provided by
java.util.Hashtable
.
The general contract of hashCode
is:
hashCode
method on each of
the two objects must produce the same integer result.
equals(java.lang.Object)
method, then calling the hashCode method on each of the
two objects must produce distinct integer results. However, the
programmer should be aware that producing distinct integer results
for unequal objects may improve the performance of hashtables.
As much as is reasonably practical, the hashCode method defined by class Object does return distinct integers for distinct objects. (This is typically implemented by converting the internal address of the object into an integer, but this implementation technique is not required by the JavaTM programming language.)
Determines whether this name is empty. An empty name is one with zero components.
Removes a component from this name. The component of this name at the specified position is removed. Components with indexes greater than this position are shifted down (toward index 0) by one.
pos | the index of the component to remove. Must be in the range [0,size()). |
---|
InvalidNameException |
---|
Controls whether string-values are treated as case-sensitive when the string values within names are compared. The default behavior is case-insensitive comparison.
Returns the number of components in this name.
Determines whether this name starts with a specified prefix. A name n is a prefix if it is equal to getPrefix(n.size()).
n | the name to check |
---|
Returns a string representation of the object. In general, the
toString
method returns a string that
"textually represents" this object. The result should
be a concise but informative representation that is easy for a
person to read.
It is recommended that all subclasses override this method.
The toString
method for class Object
returns a string consisting of the name of the class of which the
object is an instance, the at-sign character `@
', and
the unsigned hexadecimal representation of the hash code of the
object. In other words, this method returns a string equal to the
value of:
getClass().getName() + '@' + Integer.toHexString(hashCode())
Given an attribute value formated according to RFC 2253, returns the unformated value. Returns a string value as a string, and a binary value as a byte array.