Class Dn

All Implemented Interfaces:
Freezable

public final class Dn extends AbstractFreezable
Distinguished name containing zero or more relative distinguished names. RDNs are ordered from left to right such that the left-most RDN is considered the first. For the DN 'cn=Jane Doe,ou=People,dc=ldaptive,dc=org', the first RDN is 'cn=Jane Doe'. See RFC 4514 for more details on the string representations of DNs.
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static final class 
     
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private static final int
    hash code seed.
    private final List<RDn>
    RDN components.
  • Constructor Summary

    Constructors
    Constructor
    Description
    Dn()
    Default constructor.
    Dn(String dn)
    Creates a new DN with the supplied string.
    Dn(String dn, DnParser parser)
    Creates a new DN with the supplied string.
    Dn(List<RDn> rdns)
    Creates a new DN with the supplied RDNs.
    Dn(RDn... rdn)
    Creates a new DN with the supplied RDNs.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    add(int index, RDn rdn)
    Adds the supplied RDN at the supplied index.
    void
    add(Dn dn)
    Adds all the RDNs in the supplied DN to the end of this DN.
    void
    add(RDn rdn)
    Adds the supplied RDN to the end of this DN.
    static Dn.Builder
    Creates a builder for this class.
    static Dn
    copy(Dn dn)
    Creates a mutable copy of the supplied DN.
    boolean
     
    Produces a string representation of this DN.
    format(RDnNormalizer normalizer)
    Produces a string representation of this DN.
    format(RDnNormalizer normalizer, char delimiter, boolean reverse)
    Produces a string representation of this DN.
    Returns all the RDN names.
    Convenience method to retrieve the parent DN.
    Returns the first RDN in this DN.
    Returns the RDNs in this DN.
    Returns the first RDN value with the supplied name.
    Returns the RDN values with the supplied name.
    int
     
    boolean
    Returns whether the supplied DN is an ancestor.
    boolean
    isAncestor(Dn dn, RDnNormalizer normalizer)
    Returns whether the supplied DN is an ancestor.
    boolean
    Returns whether the supplied DN is a descendant.
    boolean
    isDescendant(Dn dn, RDnNormalizer normalizer)
    Returns whether the supplied DN is a descendant.
    boolean
    Returns whether this DN contains any RDN components.
    boolean
    isSame(Dn dn)
    Returns whether the normalized format of the supplied DN equals the normalized format of this DN.
    boolean
    isSame(Dn dn, RDnNormalizer normalizer)
    Returns whether the normalized format of the supplied DN equals the normalized format of this DN.
    int
    Returns the number of RDNs in this DN.
    subDn(int index)
    Returns a new DN containing all the RDN components from the supplied index.
    subDn(int beginIndex, int endIndex)
    Returns a new DN containing all the RDN components between the supplied indexes.
     

    Methods inherited from class org.ldaptive.AbstractFreezable

    assertMutable, freeze, freeze, freeze, isFrozen

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
  • Field Details

    • HASH_CODE_SEED

      private static final int HASH_CODE_SEED
      hash code seed.
      See Also:
    • rdnComponents

      private final List<RDn> rdnComponents
      RDN components.
  • Constructor Details

    • Dn

      public Dn()
      Default constructor.
    • Dn

      public Dn(String dn)
      Creates a new DN with the supplied string. Uses a DefaultDnParser by default.
      Parameters:
      dn - to parse
    • Dn

      public Dn(String dn, DnParser parser)
      Creates a new DN with the supplied string.
      Parameters:
      dn - to parse
      parser - to parse dn
    • Dn

      public Dn(RDn... rdn)
      Creates a new DN with the supplied RDNs.
      Parameters:
      rdn - to add
    • Dn

      public Dn(List<RDn> rdns)
      Creates a new DN with the supplied RDNs.
      Parameters:
      rdns - to add
  • Method Details

    • getRDn

      public RDn getRDn()
      Returns the first RDN in this DN.
      Returns:
      first RDN
    • getRDns

      public List<RDn> getRDns()
      Returns the RDNs in this DN.
      Returns:
      RDNs
    • add

      public void add(Dn dn)
      Adds all the RDNs in the supplied DN to the end of this DN.
      Parameters:
      dn - to add to this DN
    • add

      public void add(RDn rdn)
      Adds the supplied RDN to the end of this DN.
      Parameters:
      rdn - to add to this DN
    • add

      public void add(int index, RDn rdn)
      Adds the supplied RDN at the supplied index.
      Parameters:
      index - to add the RDN at
      rdn - to add to this DN
    • subDn

      public Dn subDn(int index)
      Returns a new DN containing all the RDN components from the supplied index.
      Parameters:
      index - of RDNs to include
      Returns:
      DN with sub-components of this DN
    • subDn

      public Dn subDn(int beginIndex, int endIndex)
      Returns a new DN containing all the RDN components between the supplied indexes.
      Parameters:
      beginIndex - first RDN to include (inclusive)
      endIndex - last RDN to include (exclusive)
      Returns:
      DN with sub-components of this DN or null if beginIndex > endIndex
    • getParent

      public Dn getParent()
      Convenience method to retrieve the parent DN. Invokes subDn(int) with a parameter of 1.
      Returns:
      DN containing all sub-components of this DN except the first or null if this DN has no components
    • getNames

      public Collection<String> getNames()
      Returns all the RDN names.
      Returns:
      all RDN names
    • getValues

      public Collection<String> getValues(String name)
      Returns the RDN values with the supplied name. If the RDN is multi-value the first value is used.
      Parameters:
      name - of the RDN
      Returns:
      RDN values for the supplied name
    • getValue

      public String getValue(String name)
      Returns the first RDN value with the supplied name. If the RDN is multi-value the first value is used.
      Parameters:
      name - of the RDN
      Returns:
      RDN value
    • size

      public int size()
      Returns the number of RDNs in this DN.
      Returns:
      number of RDNs
    • isEmpty

      public boolean isEmpty()
      Returns whether this DN contains any RDN components.
      Returns:
      whether this DN contains any RDN components
    • isSame

      public boolean isSame(Dn dn)
      Returns whether the normalized format of the supplied DN equals the normalized format of this DN. See DefaultRDnNormalizer.
      Parameters:
      dn - to compare
      Returns:
      whether the supplied DN is the same as this DN
    • isSame

      public boolean isSame(Dn dn, RDnNormalizer normalizer)
      Returns whether the normalized format of the supplied DN equals the normalized format of this DN.
      Parameters:
      normalizer - to use for comparison
      dn - to compare
      Returns:
      whether the supplied DN is the same as this DN
    • isAncestor

      public boolean isAncestor(Dn dn)
      Returns whether the supplied DN is an ancestor. See isSame(Dn).
      Parameters:
      dn - to determine ancestry of
      Returns:
      whether the supplied DN is an ancestor
    • isAncestor

      public boolean isAncestor(Dn dn, RDnNormalizer normalizer)
      Returns whether the supplied DN is an ancestor. See isSame(Dn, RDnNormalizer).
      Parameters:
      dn - to determine ancestry of
      normalizer - to format DN for comparison
      Returns:
      whether the supplied DN is an ancestor
    • isDescendant

      public boolean isDescendant(Dn dn)
      Returns whether the supplied DN is a descendant. See isSame(Dn).
      Parameters:
      dn - to determine descendancy of
      Returns:
      whether the supplied DN is a descendant
    • isDescendant

      public boolean isDescendant(Dn dn, RDnNormalizer normalizer)
      Returns whether the supplied DN is a descendant. See isSame(Dn, RDnNormalizer).
      Parameters:
      dn - to determine descendancy of
      normalizer - to format DN for comparison
      Returns:
      whether the supplied DN is a descendant
    • format

      public String format()
      Produces a string representation of this DN. Uses a DefaultRDnNormalizer by default.
      Returns:
      DN string
    • format

      public String format(RDnNormalizer normalizer)
      Produces a string representation of this DN.
      Parameters:
      normalizer - to apply to the RDN components or null for no formatting
      Returns:
      DN string
    • format

      public String format(RDnNormalizer normalizer, char delimiter, boolean reverse)
      Produces a string representation of this DN.
      Parameters:
      normalizer - to apply to the RDN components or null for no formatting
      delimiter - to separate each RDN component
      reverse - whether to reverse the order of RDN components for formatting. i.e. process components from right to left
      Returns:
      DN string
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

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

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

      public static Dn copy(Dn dn)
      Creates a mutable copy of the supplied DN.
      Parameters:
      dn - to copy
      Returns:
      new DN instance
    • builder

      public static Dn.Builder builder()
      Creates a builder for this class.
      Returns:
      new builder