/**
  * Validate request..
  *
  * @throws Exception the exception
  */
 @Override
 protected void validate() throws Exception {
   super.validate();
   EwsUtilities.validateParamCollection(this.getDelegateUsers().iterator(), "DelegateUsers");
   for (DelegateUser delegateUser : this.getDelegateUsers()) {
     delegateUser.validateUpdateDelegate();
   }
 }
  /**
   * Writes XML elements.
   *
   * @param writer the writer
   * @throws Exception the exception
   */
  @Override
  protected void writeElementsToXml(EwsServiceXmlWriter writer) throws Exception {
    super.writeElementsToXml(writer);

    writer.writeStartElement(XmlNamespace.Messages, XmlElementNames.DelegateUsers);

    for (DelegateUser delegateUser : this.getDelegateUsers()) {
      delegateUser.writeToXml(writer, XmlElementNames.DelegateUser);
    }

    writer.writeEndElement(); // DelegateUsers

    if (this.getMeetingRequestsDeliveryScope() != null) {
      writer.writeElementValue(
          XmlNamespace.Messages,
          XmlElementNames.DeliverMeetingRequests,
          this.getMeetingRequestsDeliveryScope());
    }
  }