/**
   * Method description
   *
   * @param registryResponse
   * @param context
   * @return
   */
  private boolean checkForSuccess(
      GetDocumentsSQResponseMessage registryResponse, SDRActivityContext context) {

    boolean result = false;

    SubmitDocumentResponse sdrResponse = context.getSubmitDocumentResponse();
    Document document = context.getDocument();

    List<String> objectRefs = null;

    try {

      objectRefs = parseObjectRefs(registryResponse, context);

    } catch (XdsException e) {

      // Downstream XDS returned an error
      String msg = String.format("Document id can not be validated as unique: %s", e.getMessage());

      sdrResponse.addResponse(document, ResponseTypeStatus.Failure, msg);
    }

    if (objectRefs != null) {

      if (objectRefs.isEmpty()) {

        result = true;

      } else {

        String errmsg = "Document already exists in the registry. It will not be processed.";

        logger.error(errmsg);
        sdrResponse.addResponse(document, ResponseTypeStatus.Failure, errmsg);
      }
    }

    return result;
  }
  /**
   * Method description
   *
   * @param context
   * @return
   */
  @Override
  public boolean execute(SDRActivityContext context) {

    boolean result = false;

    Document doc = context.getDocument();

    if (doc.isGeneratedDocumentId()) {

      // if we generated the id, nothing to check
      result = true;

    } else if (StringUtils.equals(doc.getDocumentIdAsOID(), doc.getReplaceIdAsOID())) {

      // error condition
      String errmsg =
          String.format(
              "Document Id (OID) %s equals Replace Id (OID) %s. These IDs can not be the same.",
              doc.getDocumentIdAsOID(), doc.getReplaceIdAsOID());

      SubmitDocumentResponse sdrResponse = context.getSubmitDocumentResponse();

      logger.error(errmsg);
      sdrResponse.addResponse(doc, ResponseTypeStatus.Failure, errmsg);

    } else {

      GetDocumentsSQResponseMessage getDocsResp =
          callGetDocumentsSQ(context, doc.getDocumentIdAsOID());

      if (getDocsResp != null) {

        result = checkForSuccess(getDocsResp, context);
      }
    }

    return result;
  }