Package org.ldaptive

Class LdapEntry

  • All Implemented Interfaces:
    Message

    public class LdapEntry
    extends AbstractMessage
    LDAP search result entry defined as:
       SearchResultEntry ::= [APPLICATION 4] SEQUENCE {
         objectName      LDAPDN,
         attributes      PartialAttributeList }
    
       PartialAttributeList ::= SEQUENCE OF
         partialAttribute PartialAttribute
    
       PartialAttribute ::= SEQUENCE {
         type       AttributeDescription,
         vals       SET OF value AttributeValue }
     
    • Field Detail

      • HASH_CODE_SEED

        private static final int HASH_CODE_SEED
        hash code seed.
        See Also:
        Constant Field Values
      • LDAP_DN_PATH

        private static final DERPath LDAP_DN_PATH
        DER path to LDAP DN.
      • ATTRIBUTES_PATH

        private static final DERPath ATTRIBUTES_PATH
        DER path to attributes.
      • ldapDn

        private String ldapDn
        LDAP DN of the entry.
      • parsedDn

        private Dn parsedDn
        Parsed LDAP DN.
      • normalizedDn

        private String normalizedDn
        Normalized LDAP DN.
    • Constructor Detail

      • LdapEntry

        public LdapEntry()
        Default constructor.
      • LdapEntry

        public LdapEntry​(DERBuffer buffer)
        Creates a new search result entry.
        Parameters:
        buffer - to decode
    • Method Detail

      • getDn

        public String getDn()
        Returns the ldap DN.
        Returns:
        ldap DN
      • getParsedDn

        public Dn getParsedDn()
        Returns the parsed ldap DN. Parsing is performed using DefaultDnParser.
        Returns:
        parsed ldap DN or null if ldapDn is null or could not be parsed
      • getNormalizedDn

        public String getNormalizedDn()
        Returns the normalized ldap DN. Normalization is performed using DefaultRDnNormalizer.
        Returns:
        normalized ldap DN or null if ldapDn is null or could not be parsed
      • setDn

        public void setDn​(String dn)
        Sets the ldap DN.
        Parameters:
        dn - ldap DN
      • getAttributes

        public Collection<LdapAttribute> getAttributes()
        Returns the ldap attributes.
        Returns:
        ldap attributes
      • getAttribute

        public LdapAttribute getAttribute()
        Returns a single attribute of this entry. If multiple attributes exist the first attribute returned by the underlying iterator is used. If no attributes exist null is returned.
        Returns:
        single attribute
      • getAttribute

        public LdapAttribute getAttribute​(String name)
        Returns the attribute with the supplied name.
        Parameters:
        name - of the attribute to return
        Returns:
        ldap attribute
      • getAttributeNames

        public String[] getAttributeNames()
        Returns the attribute names in this entry.
        Returns:
        string array of attribute names
      • addAttributes

        public void addAttributes​(LdapAttribute... attrs)
        Adds attributes to the entry.
        Parameters:
        attrs - attributes to add
      • addAttributes

        public void addAttributes​(Collection<LdapAttribute> attrs)
        Adds attributes to the entry.
        Parameters:
        attrs - attributes to add
      • removeAttribute

        public void removeAttribute​(String name)
        Removes the attribute with the supplied name.
        Parameters:
        name - of attribute to remove
      • removeAttributes

        public void removeAttributes​(LdapAttribute... attrs)
        Removes an attribute from this ldap attributes.
        Parameters:
        attrs - attribute to remove
      • removeAttributes

        public void removeAttributes​(Collection<LdapAttribute> attrs)
        Removes the attribute(s) from this ldap attributes.
        Parameters:
        attrs - collection of ldap attributes to remove
      • size

        public int size()
        Returns the number of attributes.
        Returns:
        number of attributes
      • clear

        public void clear()
        Removes all the attributes.
      • hashCode

        public int hashCode()
        Description copied from class: AbstractMessage
        Returns the hash code for this object.
        Specified by:
        hashCode in class AbstractMessage
        Returns:
        hash code
      • sort

        public static LdapEntry sort​(LdapEntry le)
        Returns a new entry whose attributes are sorted naturally by name without options.
        Parameters:
        le - entry to sort
        Returns:
        sorted entry
      • computeModifications

        public static AttributeModification[] computeModifications​(LdapEntry source,
                                                                   LdapEntry target)
        Returns the list of attribute modifications needed to change the supplied target entry into the supplied source entry. See computeModifications(LdapEntry, LdapEntry, boolean).
        Parameters:
        source - ldap entry containing new data
        target - ldap entry containing existing data
        Returns:
        attribute modifications needed to change target into source or an empty array
      • computeModifications

        public static AttributeModification[] computeModifications​(LdapEntry source,
                                                                   LdapEntry target,
                                                                   boolean useReplace)
        Returns the list of attribute modifications needed to change the supplied target entry into the supplied source entry. This implementation performs a byte comparison on the attribute values to determine changes.
        Parameters:
        source - ldap entry containing new data
        target - ldap entry containing existing data
        useReplace - whether to use a single REPLACE modification or individual ADD/DELETE for attribute values
        Returns:
        attribute modifications needed to change target into source or an empty array
      • builder

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