/**
   * Add any resource-specific headers to the response
   *
   * @param resource the resource
   */
  protected void addResourceHttpHeaders(final FedoraResource resource) {
    if (resource instanceof FedoraBinary) {

      final FedoraBinary binary = (FedoraBinary) resource;
      final ContentDisposition contentDisposition =
          ContentDisposition.type("attachment")
              .fileName(binary.getFilename())
              .creationDate(binary.getCreatedDate())
              .modificationDate(binary.getLastModifiedDate())
              .size(binary.getContentSize())
              .build();

      servletResponse.addHeader("Content-Type", binary.getMimeType());
      servletResponse.addHeader("Content-Length", String.valueOf(binary.getContentSize()));
      servletResponse.addHeader("Accept-Ranges", "bytes");
      servletResponse.addHeader("Content-Disposition", contentDisposition.toString());
    }

    servletResponse.addHeader("Link", "<" + LDP_NAMESPACE + "Resource>;rel=\"type\"");

    if (resource instanceof NonRdfSource) {
      servletResponse.addHeader("Link", "<" + LDP_NAMESPACE + "NonRDFSource>;rel=\"type\"");
    } else if (resource instanceof Container) {
      servletResponse.addHeader("Link", "<" + CONTAINER.getURI() + ">;rel=\"type\"");
      if (resource.hasType(LDP_BASIC_CONTAINER)) {
        servletResponse.addHeader("Link", "<" + BASIC_CONTAINER.getURI() + ">;rel=\"type\"");
      } else if (resource.hasType(LDP_DIRECT_CONTAINER)) {
        servletResponse.addHeader("Link", "<" + DIRECT_CONTAINER.getURI() + ">;rel=\"type\"");
      } else if (resource.hasType(LDP_INDIRECT_CONTAINER)) {
        servletResponse.addHeader("Link", "<" + INDIRECT_CONTAINER.getURI() + ">;rel=\"type\"");
      } else {
        servletResponse.addHeader("Link", "<" + BASIC_CONTAINER.getURI() + ">;rel=\"type\"");
      }
    } else {
      servletResponse.addHeader("Link", "<" + LDP_NAMESPACE + "RDFSource>;rel=\"type\"");
    }
    if (httpHeaderInject != null) {
      httpHeaderInject.addHttpHeaderToResponseStream(servletResponse, uriInfo, resource());
    }
  }