public Request<SetReceiptRulePositionRequest> marshall(
      SetReceiptRulePositionRequest setReceiptRulePositionRequest) {

    if (setReceiptRulePositionRequest == null) {
      throw new AmazonClientException("Invalid argument passed to marshall(...)");
    }

    Request<SetReceiptRulePositionRequest> request =
        new DefaultRequest<SetReceiptRulePositionRequest>(
            setReceiptRulePositionRequest, "AmazonSimpleEmailService");
    request.addParameter("Action", "SetReceiptRulePosition");
    request.addParameter("Version", "2010-12-01");
    request.setHttpMethod(HttpMethodName.POST);

    if (setReceiptRulePositionRequest.getRuleSetName() != null) {
      request.addParameter(
          "RuleSetName", StringUtils.fromString(setReceiptRulePositionRequest.getRuleSetName()));
    }

    if (setReceiptRulePositionRequest.getRuleName() != null) {
      request.addParameter(
          "RuleName", StringUtils.fromString(setReceiptRulePositionRequest.getRuleName()));
    }

    if (setReceiptRulePositionRequest.getAfter() != null) {
      request.addParameter(
          "After", StringUtils.fromString(setReceiptRulePositionRequest.getAfter()));
    }

    return request;
  }
  @Override
  public boolean equals(Object obj) {
    if (this == obj) return true;
    if (obj == null) return false;

    if (obj instanceof SetReceiptRulePositionRequest == false) return false;
    SetReceiptRulePositionRequest other = (SetReceiptRulePositionRequest) obj;
    if (other.getRuleSetName() == null ^ this.getRuleSetName() == null) return false;
    if (other.getRuleSetName() != null
        && other.getRuleSetName().equals(this.getRuleSetName()) == false) return false;
    if (other.getRuleName() == null ^ this.getRuleName() == null) return false;
    if (other.getRuleName() != null && other.getRuleName().equals(this.getRuleName()) == false)
      return false;
    if (other.getAfter() == null ^ this.getAfter() == null) return false;
    if (other.getAfter() != null && other.getAfter().equals(this.getAfter()) == false) return false;
    return true;
  }