Interface ExtendedRequest<S extends ExtendedResult>

Type Parameters:
S - The type of result.
All Superinterfaces:
ProtocolOp, Request
All Known Implementing Classes:
AbstractExtendedRequest, CancelExtendedRequest, GenericExtendedRequest, PasswordModifyExtendedRequest, StartTlsExtendedRequest, WhoAmIExtendedRequest

public interface ExtendedRequest<S extends ExtendedResult> extends Request
The Extended operation allows additional operations to be defined for services not already available in the protocol; for example, to implement an operation which installs transport layer security (see StartTlsExtendedRequest).

To determine whether a directory server supports a given extension, read the list of supported extensions from the root DSE to get a collection of extension OIDs, and then check for a match. For example:

 
 Connection connection = ...;
 Collection&lt;String&gt; supported =
     RootDSE.readRootDSE(connection).getSupportedExtendedOperations();

 ExtendedRequest extension = ...;
 String OID = extension.getOID();
 if (supported != null && !supported.isEmpty() && supported.contains(OID)) {
     // The extension is supported. Use it here...
 }
 
 
  • Method Details

    • addControl

      ExtendedRequest<S> addControl(Control control)
      Description copied from interface: ProtocolOp
      Adds the provided control to this protocol-op.
      Specified by:
      addControl in interface ProtocolOp
      Specified by:
      addControl in interface Request
      Parameters:
      control - The control to be added to this protocol-op.
      Returns:
      This protocol-op.
    • addControls

      ExtendedRequest<S> addControls(Iterable<? extends Control> controls)
      Description copied from interface: ProtocolOp
      Adds the provided controls to this protocol-op.
      Specified by:
      addControls in interface ProtocolOp
      Specified by:
      addControls in interface Request
      Parameters:
      controls - The controls to be added to this protocol-op.
      Returns:
      This protocol-op.
    • removeControls

      ExtendedRequest<S> removeControls(String oid)
      Description copied from interface: ProtocolOp
      Removes all the controls having the specified OID.
      Specified by:
      removeControls in interface ProtocolOp
      Specified by:
      removeControls in interface Request
      Parameters:
      oid - The numeric OID of the protocol-op control to remove.
      Returns:
      This protocol-op.
    • 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.
    • getOid

      String getOid()
      Returns the numeric OID associated with this extended request.
      Returns:
      The numeric OID associated with this extended request.
    • getResultDecoder

      ExtendedResultDecoder<S> getResultDecoder()
      Returns a decoder which can be used to decoded responses to this extended request.
      Returns:
      A decoder which can be used to decoded responses to this extended request.
    • getValue

      ByteString getValue()
      Returns the value, if any, associated with this extended request. Its format is defined by the specification of this extended request.
      Returns:
      The value associated with this extended request, or null if there is no value.
    • hasValue

      boolean hasValue()
      Returns true if this extended request has a value. In some circumstances it may be useful to determine if a extended request has a value, without actually calculating the value and incurring any performance costs.
      Returns:
      true if this extended request has a value, or false if there is no value.