Interface ExtendedRequest<S extends ExtendedResult>

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

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<String> 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

      Description copied from interface: Request
      Adds the provided control to this request.
      Specified by:
      addControl in interface Request
      Parameters:
      control - The control to be added to this request.
      Returns:
      This request.
    • getControl

      <C extends Control> C getControl(ControlDecoder<C> decoder, DecodeOptions options) throws DecodeException
      Description copied from interface: Request
      Decodes and returns the first control in this request having an OID corresponding to the provided control decoder.
      Specified by:
      getControl in interface Request
      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 request.
      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

      Description copied from interface: Request
      Returns a List containing the controls included with this request. The returned List may be modified if permitted by this request.
      Specified by:
      getControls in interface Request
      Returns:
      A List containing the controls.
    • getOID

      Returns the numeric OID associated with this extended request.
      Returns:
      The numeric OID associated with this extended request.
    • 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

      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.