|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.directory.shared.ldap.name.DN
public class DN
The DN class contains a DN (Distinguished Name). Its specification can be found in RFC 2253, "UTF-8 String Representation of Distinguished Names". We will store two representation of a DN : - a user Provider representation, which is the parsed String given by a user - an internal representation. A DN is formed of RDNs, in a specific order : RDN[n], RDN[n-1], ... RDN[1], RDN[0] It represents a tree, in which the root is the last RDN (RDN[0]) and the leaf is the first RDN (RDN[n]).
Field Summary | |
---|---|
static DN |
EMPTY_DN
A null DN |
static int |
EQUAL
Value returned by the compareTo method if values are equals |
protected static org.slf4j.Logger |
LOG
The LoggerFactory used by this class |
static int |
NOT_EQUAL
Value returned by the compareTo method if values are not equals |
protected java.util.List<RDN> |
rdns
The RDNs that are elements of the DN NOTE THAT THESE ARE IN THE OPPOSITE ORDER FROM THAT IMPLIED BY THE JAVADOC! Rdn[0] is rdns.get(n) and Rdn[n] is rdns.get(0) |
Constructor Summary | |
---|---|
DN()
Construct an empty DN object |
|
DN(DN dn)
Copies a DN to an DN. |
|
DN(java.lang.String... upRdns)
Creates a new instance of DN, using varargs to declare the RDNs. |
|
DN(java.lang.String upName)
Parse a String and checks that it is a valid DN |
Method Summary | |
---|---|
DN |
add(int pos,
RDN newRdn)
Adds a single RDN to a specific position. |
DN |
add(int posn,
java.lang.String comp)
|
DN |
add(RDN newRdn)
Adds a single RDN to the (leaf) end of this name. |
DN |
add(java.lang.String comp)
|
DN |
addAll(DN suffix)
|
DN |
addAll(int posn,
DN dn)
|
DN |
addAll(int posn,
javax.naming.Name name)
|
DN |
addAllNormalized(int posn,
DN name)
Adds the components of a name -- in order -- at a specified position within this name. |
DN |
addNormalized(RDN newRdn)
Adds a single normalized RDN to the (leaf) end of this name. |
java.lang.Object |
clone()
|
int |
compareTo(DN dn)
|
boolean |
equals(java.lang.Object obj)
|
static DN |
fromName(javax.naming.Name name)
Convert a Name to a DN |
java.lang.String |
get(int posn)
Get the given RDN as a String. |
java.util.Enumeration<RDN> |
getAllRdn()
Retrieves the components of this name as an enumeration of strings. |
static byte[] |
getBytes(DN dn)
Get an UTF-8 representation of the normalized form of the DN |
java.lang.String |
getName()
Get the initial DN |
static int |
getNbBytes(DN dn)
Get the number of bytes necessary to store this DN |
java.lang.String |
getNormName()
Get the normalized DN |
DN |
getPrefix(int posn)
|
RDN |
getRdn()
Retrieves the last (leaf) component of this name. |
RDN |
getRdn(int posn)
Retrieves a component of this name. |
java.util.List<RDN> |
getRdns()
Retrieves all the components of this name. |
DN |
getSuffix(int posn)
|
int |
hashCode()
Gets the hash code of this name. |
boolean |
hasSuffix(DN dn)
Determines whether this name has a specific suffix. |
boolean |
isChildOf(DN dn)
Tells if a DN is a child of another DN. For instance, dc=example, dc=com is a child of dc=com |
boolean |
isChildOf(java.lang.String dn)
Tells if a DN is a child of another DN. For instance, dc=example, dc=com is a child of dc=com |
boolean |
isEmpty()
return true if this DN contains no RDNs |
boolean |
isNormalized()
Tells if the DN has already been normalized or not |
boolean |
isParentOf(DN dn)
Tells if the current DN is a parent of another DN. For instance, dc=com is a parent of dc=example, dc=com |
boolean |
isParentOf(java.lang.String dn)
Tells if the current DN is a parent of another DN. For instance, dc=com is a parent of dc=example, dc=com |
static boolean |
isValid(java.lang.String dn)
Check if a DistinguishedName is syntactically valid. |
java.util.Iterator<RDN> |
iterator()
|
static DN |
normalize(DN dn,
java.util.Map<java.lang.String,OidNormalizer> oidsMap)
Change the internal DN, using the OID instead of the first name or other aliases. |
DN |
normalize(java.util.Map<java.lang.String,OidNormalizer> oidsMap)
Change the internal DN, using the OID instead of the first name or other aliases. |
static DN |
normalize(java.lang.String name,
java.util.Map<java.lang.String,OidNormalizer> oidsMap)
Static factory which creates a normalized DN from a String and a Map of OIDs. |
void |
readExternal(java.io.ObjectInput in)
|
RDN |
remove(int posn)
|
int |
size()
|
static javax.naming.Name |
toName(DN dn)
Convert a DN to a Name |
java.lang.String |
toString()
Return the normalized DN as a String. |
void |
writeExternal(java.io.ObjectOutput out)
|
Methods inherited from class java.lang.Object |
---|
finalize, getClass, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
protected static final org.slf4j.Logger LOG
public static final int NOT_EQUAL
public static final int EQUAL
protected java.util.List<RDN> rdns
public static final DN EMPTY_DN
Constructor Detail |
---|
public DN()
public DN(DN dn) throws LdapInvalidDnException
name
- composed of String name components.
LdapInvalidDnException
- If the Name is invalid.public DN(java.lang.String upName) throws LdapInvalidDnException
<distinguishedName> ::= <name> | e
<name> ::= <name-component> <name-components>
<name-components> ::= <spaces> <separator>
<spaces> <name-component> <name-components> | e
upName
- The String that contains the DN.
LdapInvalidNameException
- if the String does not contain a valid DN.
LdapInvalidDnException
public DN(java.lang.String... upRdns) throws LdapInvalidDnException
String exampleName = "example"; String baseDn = "dc=apache,dc=org"; DN dn = new DN( "cn=Test", "ou", exampleName, baseDn);
upNames
-
LdapInvalidDnException
Method Detail |
---|
public static DN normalize(java.lang.String name, java.util.Map<java.lang.String,OidNormalizer> oidsMap) throws LdapInvalidDnException
name
- The DN as a StringoidsMap
- The OID mapping
LdapInvalidNameException
- If the DN is invalid.
LdapInvalidDnException
- If something went wrong.public java.lang.String toString()
toString
in class java.lang.Object
public int hashCode()
hashCode
in class java.lang.Object
Object.hashCode()
public java.lang.String getName()
public java.lang.String getNormName()
public int size()
public static int getNbBytes(DN dn)
dn
- The DN.
public static byte[] getBytes(DN dn)
dn
- The DN.
public boolean isParentOf(java.lang.String dn)
dn
- The child
public boolean isParentOf(DN dn)
dn
- The child
public boolean isChildOf(java.lang.String dn)
dn
- The parent
public boolean isChildOf(DN dn)
dn
- The parent
public boolean hasSuffix(DN dn)
dn
- the name to check
public boolean isEmpty()
public java.lang.String get(int posn)
dc=example,dc=apache,dc=orgthen :
get(0)
will return dc=orgget(1)
will return dc=apacheget(2)
will return dc=example
posn
- The position of the wanted RDN in the DN.public RDN getRdn(int posn)
posn
- the 0-based index of the component to retrieve. Must be in the
range [0,size()).
java.lang.ArrayIndexOutOfBoundsException
- if posn is outside the specified rangepublic RDN getRdn()
public java.util.List<RDN> getRdns()
public java.util.Enumeration<RDN> getAllRdn()
public DN getPrefix(int posn)
public DN getSuffix(int posn)
public DN addAllNormalized(int posn, DN name) throws LdapInvalidDnException
posn
- the index in this name at which to add the new components.
Must be in the range [0,size()]. Note this is from the opposite end as rnds.get(posn)name
- the components to add
java.lang.ArrayIndexOutOfBoundsException
- if posn is outside the specified range
LdapInvalidDnException
- if n is not a valid name, or if the addition of
the components would violate the syntax rules of this namepublic DN addAll(DN suffix) throws LdapInvalidDnException
LdapInvalidDnException
public DN addAll(int posn, javax.naming.Name name) throws javax.naming.InvalidNameException, LdapInvalidDnException
javax.naming.InvalidNameException
LdapInvalidDnException
public DN addAll(int posn, DN dn) throws LdapInvalidDnException
LdapInvalidDnException
public DN add(java.lang.String comp) throws LdapInvalidDnException
LdapInvalidDnException
public DN add(RDN newRdn)
newRdn
- the RDN to add
public DN add(int pos, RDN newRdn)
newRdn
- the RDN to addpos
- The position where we want to add the Rdn
public DN addNormalized(RDN newRdn)
newRdn
- the RDN to add
public DN add(int posn, java.lang.String comp) throws LdapInvalidDnException
LdapInvalidDnException
public RDN remove(int posn) throws LdapInvalidDnException
LdapInvalidDnException
public java.lang.Object clone()
clone
in class java.lang.Object
public boolean equals(java.lang.Object obj)
equals
in class java.lang.Object
true
if the two instances are equalsObject.equals(java.lang.Object)
public int compareTo(DN dn)
compareTo
in interface java.lang.Comparable<DN>
public static DN normalize(DN dn, java.util.Map<java.lang.String,OidNormalizer> oidsMap) throws LdapInvalidDnException
dn
- The DN to transform.oidsMap
- The mapping between names and oids.
LdapInvalidDnException
- If something went wrong.public DN normalize(java.util.Map<java.lang.String,OidNormalizer> oidsMap) throws LdapInvalidDnException
oidsMap
- The mapping between names and oids.
LdapInvalidDnException
- If something went wrong.public static boolean isValid(java.lang.String dn)
dn
- The DN to validate
true>
if the DN is valid, false
otherwisepublic boolean isNormalized()
true
if the DN is already normalized.public void writeExternal(java.io.ObjectOutput out) throws java.io.IOException
out
- The stream in which the DN will be serialized
java.io.IOException
- If the serialization failWe have to store a DN data efficiently. Here is the structure :
- upName
The User provided DN
- normName
May be null if the normName is equaivalent to
the upName
- rdns
The rdn's List.
for each rdn :
- call the RDN write method
public void readExternal(java.io.ObjectInput in) throws java.io.IOException, java.lang.ClassNotFoundException
in
- The stream from which the DN is read
java.io.IOException
- If the stream can't be read
java.lang.ClassNotFoundException
- If the RDN can't be createdWe read back the data to create a new DN. The structure
read is exposed in the {@link DN#writeExternal(ObjectOutput)}
method
public static DN fromName(javax.naming.Name name)
Name
to a DN
name
- The Name to convert
public static javax.naming.Name toName(DN dn)
Name
name
- The DN to convert
public java.util.Iterator<RDN> iterator()
iterator
in interface java.lang.Iterable<RDN>
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |