Interface AddRequest

  • All Superinterfaces:
    ChangeRecord, Entry, ProtocolOp, Request

    public interface AddRequest
    extends Request, ChangeRecord, Entry
    The Add operation allows a client to request the addition of an entry into the Directory.

    The RDN attribute(s) may or may not be included in the Add request. NO-USER-MODIFICATION attributes such as the createTimestamp or creatorsName attributes must not be included, since the server maintains these automatically.

    • Method Detail

      • addAttribute

        boolean addAttribute​(Attribute attribute)
        Description copied from interface: Entry
        Ensures that this entry contains the provided attribute and values (optional operation). This method has the following semantics:
        • If this entry does not already contain an attribute with a matching attribute description, then this entry will be modified such that it contains attribute, even if it is empty.
        • If this entry already contains an attribute with a matching attribute description, then the attribute values contained in attribute will be merged with the existing attribute values.

        NOTE: When attribute is non-empty, this method implements LDAP Modify add semantics.

        Specified by:
        addAttribute in interface Entry
        Parameters:
        attribute - The attribute values to be added to this entry, merging with any existing attribute values.
        Returns:
        true if this entry changed as a result of this call.
      • addAttribute

        boolean addAttribute​(Attribute attribute,
                             Collection<? super ByteString> duplicateValues)
        Description copied from interface: Entry
        Ensures that this entry contains the provided attribute and values (optional operation). This method has the following semantics:
        • If this entry does not already contain an attribute with a matching attribute description, then this entry will be modified such that it contains attribute, even if it is empty.
        • If this entry already contains an attribute with a matching attribute description, then the attribute values contained in attribute will be merged with the existing attribute values.

        NOTE: When attribute is non-empty, this method implements LDAP Modify add semantics.

        Specified by:
        addAttribute in interface Entry
        Parameters:
        attribute - The attribute values to be added to this entry, merging with any existing attribute values.
        duplicateValues - A collection into which duplicate values will be added, or null if duplicate values should not be saved.
        Returns:
        true if this entry changed as a result of this call.
      • addAttribute

        AddRequest addAttribute​(String attributeDescription,
                                Object... values)
        Description copied from interface: Entry
        Ensures that this entry contains the provided attribute and values (optional operation). This method has the following semantics:
        • If this entry does not already contain an attribute with a matching attribute description, then this entry will be modified such that it contains attribute, even if it is empty.
        • If this entry already contains an attribute with a matching attribute description, then the attribute values contained in attribute will be merged with the existing attribute values.

        The attribute description will be decoded using the schema associated with this entry (usually the default schema).

        Any attribute values which are not instances of ByteString will be converted using the ByteString.valueOfObject(Object) method.

        NOTE: When attribute is non-empty, this method implements LDAP Modify add semantics.

        Specified by:
        addAttribute in interface Entry
        Parameters:
        attributeDescription - The name of the attribute whose values are to be added.
        values - The attribute values to be added to this entry, merging any existing attribute values.
        Returns:
        This entry.
      • clearAttributes

        AddRequest clearAttributes()
        Description copied from interface: Entry
        Removes all the attributes from this entry (optional operation).
        Specified by:
        clearAttributes in interface Entry
        Returns:
        This entry.
      • containsAttribute

        boolean containsAttribute​(Attribute attribute,
                                  Collection<? super ByteString> missingValues)
        Description copied from interface: Entry
        Returns true if this entry contains all of the attribute values contained in attribute. If attribute is empty then this method will return true if the attribute is present in this entry, regardless of how many values it contains.
        Specified by:
        containsAttribute in interface Entry
        Parameters:
        attribute - The attribute values whose presence in this entry is to be tested.
        missingValues - A collection into which missing values will be added, or null if missing values should not be saved.
        Returns:
        true if this entry contains all of the attribute values contained in attribute.
      • containsAttribute

        boolean containsAttribute​(String attributeDescription,
                                  Object... values)
        Description copied from interface: Entry
        Returns true if this entry contains all of the attribute values contained in values. If values is null or empty then this method will return true if the attribute is present in this entry, regardless of how many values it contains.

        The attribute description will be decoded using the schema associated with this entry (usually the default schema).

        Any attribute values which are not instances of ByteString will be converted using the ByteString.valueOfObject(Object) method.

        Specified by:
        containsAttribute in interface Entry
        Parameters:
        attributeDescription - The name of the attribute whose presence in this entry is to be tested.
        values - The attribute values whose presence in this entry is to be tested, which may be null.
        Returns:
        true if this entry contains all of the attribute values contained in values.
      • getAllAttributes

        Iterable<Attribute> getAllAttributes()
        Description copied from interface: Entry
        Returns an Iterable containing all of the attributes in this entry. The returned Iterable may be used to remove attributes if permitted by this entry.
        Specified by:
        getAllAttributes in interface Entry
        Returns:
        An Iterable containing all of the attributes.
      • getAllAttributes

        Iterable<Attribute> getAllAttributes​(AttributeDescription attributeDescription)
        Description copied from interface: Entry
        Returns an Iterable containing all the attributes in this entry having an attribute description which is a sub-type of the provided attribute description. The returned Iterable may be used to remove attributes if permitted by this entry.
        Specified by:
        getAllAttributes in interface Entry
        Parameters:
        attributeDescription - The name of the attributes to be returned.
        Returns:
        An Iterable containing the matching attributes.
      • getAllAttributes

        Iterable<Attribute> getAllAttributes​(String attributeDescription)
        Description copied from interface: Entry
        Returns an Iterable containing all the attributes in this entry having an attribute description which is a sub-type of the provided attribute description. The returned Iterable may be used to remove attributes if permitted by this entry.

        The attribute description will be decoded using the schema associated with this entry (usually the default schema).

        Specified by:
        getAllAttributes in interface Entry
        Parameters:
        attributeDescription - The name of the attributes to be returned.
        Returns:
        An Iterable containing the matching attributes.
      • getAttribute

        Attribute getAttribute​(AttributeDescription attributeDescription)
        Description copied from interface: Entry
        Returns the named attribute contained in this entry, or null if it is not included with this entry.
        Specified by:
        getAttribute in interface Entry
        Parameters:
        attributeDescription - The name of the attribute to be returned.
        Returns:
        The named attribute, or null if it is not included with this entry.
      • getAttribute

        Attribute getAttribute​(String attributeDescription)
        Description copied from interface: Entry
        Returns the named attribute contained in this entry, or null if it is not included with this entry.

        The attribute description will be decoded using the schema associated with this entry (usually the default schema).

        Specified by:
        getAttribute in interface Entry
        Parameters:
        attributeDescription - The name of the attribute to be returned.
        Returns:
        The named attribute, or null if it is not included with this entry.
      • getAttributeCount

        int getAttributeCount()
        Description copied from interface: Entry
        Returns the number of attributes in this entry.
        Specified by:
        getAttributeCount in interface Entry
        Returns:
        The number of attributes.
      • getControl

        <C extends Control> C getControl​(ControlDecoder<C> decoder,
                                         DecodeOptions options)
                                  throws DecodeException
        Description copied from interface: ProtocolOp
        Decodes and returns the first control in this protocol-op having an OID corresponding to the provided control decoder.
        Specified by:
        getControl in interface ProtocolOp
        Type Parameters:
        C - The type of control to be decoded and returned.
        Parameters:
        decoder - The control decoder.
        options - The set of decode options which should be used when decoding the control.
        Returns:
        The decoded control, or null if the control is not included with this protocol-op.
        Throws:
        DecodeException - If the control could not be decoded because it was malformed in some way (e.g. the control value was missing, or its content could not be decoded).
      • getControls

        List<Control> getControls()
        Description copied from interface: ProtocolOp
        Returns a List containing the controls included with this protocol-op. The returned List may be modified if permitted by this protocol-op.
        Specified by:
        getControls in interface ProtocolOp
        Returns:
        A List containing the controls.
      • getName

        Dn getName()
        Description copied from interface: ChangeRecord
        Returns the distinguished name of the entry being modified by this ChangeRecord.
        Specified by:
        getName in interface ChangeRecord
        Specified by:
        getName in interface Entry
        Returns:
        The distinguished name of the entry being modified.
      • removeAttribute

        boolean removeAttribute​(Attribute attribute,
                                Collection<? super ByteString> missingValues)
        Description copied from interface: Entry
        Removes all of the attribute values contained in attribute from this entry if it is present (optional operation). If attribute is empty then the entire attribute will be removed if it is present.

        NOTE: This method implements LDAP Modify delete semantics.

        Specified by:
        removeAttribute in interface Entry
        Parameters:
        attribute - The attribute values to be removed from this entry, which may be empty if the entire attribute is to be removed.
        missingValues - A collection into which missing values will be added, or null if missing values should not be saved.
        Returns:
        true if this entry changed as a result of this call.
      • removeAttribute

        boolean removeAttribute​(AttributeDescription attributeDescription)
        Description copied from interface: Entry
        Removes the named attribute from this entry if it is present (optional operation). If this attribute does not contain the attribute, the call leaves this entry unchanged and returns false.
        Specified by:
        removeAttribute in interface Entry
        Parameters:
        attributeDescription - The name of the attribute to be removed.
        Returns:
        true if this entry changed as a result of this call.
      • removeAttribute

        AddRequest removeAttribute​(String attributeDescription,
                                   Object... values)
        Description copied from interface: Entry
        Removes all of the attribute values contained in values from the named attribute in this entry if it is present (optional operation). If values is null or empty then the entire attribute will be removed if it is present.

        The attribute description will be decoded using the schema associated with this entry (usually the default schema).

        Any attribute values which are not instances of ByteString will be converted using the ByteString.valueOfObject(Object) method.

        NOTE: This method implements LDAP Modify delete semantics.

        Specified by:
        removeAttribute in interface Entry
        Parameters:
        attributeDescription - The name of the attribute whose values are to be removed.
        values - The attribute values to be removed from this entry, which may be null or empty if the entire attribute is to be removed.
        Returns:
        This entry.
      • replaceAttribute

        boolean replaceAttribute​(Attribute attribute)
        Description copied from interface: Entry
        Adds all of the attribute values contained in attribute to this entry, replacing any existing attribute values (optional operation). If attribute is empty then the entire attribute will be removed if it is present.

        NOTE: This method implements LDAP Modify replace semantics as described in RFC 4511 - Section 4.6. Modify Operation.

        Specified by:
        replaceAttribute in interface Entry
        Parameters:
        attribute - The attribute values to be added to this entry, replacing any existing attribute values, and which may be empty if the entire attribute is to be removed.
        Returns:
        true if this entry changed as a result of this call.
      • replaceAttribute

        AddRequest replaceAttribute​(String attributeDescription,
                                    Object... values)
        Description copied from interface: Entry
        Adds all of the attribute values contained in values to this entry, replacing any existing attribute values (optional operation). If values is null or empty then the entire attribute will be removed if it is present.

        The attribute description will be decoded using the schema associated with this entry (usually the default schema).

        Any attribute values which are not instances of ByteString will be converted using the ByteString.valueOfObject(Object) method.

        NOTE: This method implements LDAP Modify replace semantics as described in RFC 4511 - Section 4.6. Modify Operation.

        Specified by:
        replaceAttribute in interface Entry
        Parameters:
        attributeDescription - The name of the attribute whose values are to be replaced.
        values - The attribute values to be added to this entry, replacing any existing attribute values, and which may be null or empty if the entire attribute is to be removed.
        Returns:
        This entry.
      • setName

        AddRequest setName​(Dn dn)
        Description copied from interface: ChangeRecord
        Sets the distinguished name of the entry to be updated. The server shall not perform any alias dereferencing in determining the object to be updated.
        Specified by:
        setName in interface ChangeRecord
        Specified by:
        setName in interface Entry
        Parameters:
        dn - The the distinguished name of the entry to be updated.
        Returns:
        This change record.
      • setName

        AddRequest setName​(String dn)
        Description copied from interface: ChangeRecord
        Sets the distinguished name of the entry to be updated. The server shall not perform any alias dereferencing in determining the object to be updated.
        Specified by:
        setName in interface ChangeRecord
        Specified by:
        setName in interface Entry
        Parameters:
        dn - The the distinguished name of the entry to be updated.
        Returns:
        This change record.