/**
  * {@inheritdoc}
  */
 public function process(ContextInterface $context)
 {
     /** @var GetListContext $context */
     if ($context->getResponseHeaders()->has(self::HEADER_NAME)) {
         // total count header is already set
         return;
     }
     $xInclude = $context->getRequestHeaders()->get(Context::INCLUDE_HEADER);
     if (empty($xInclude) || !in_array(self::HEADER_VALUE, $xInclude, true)) {
         // total count is not requested
         return;
     }
     $totalCount = null;
     $totalCountCallback = $context->getTotalCountCallback();
     if (null !== $totalCountCallback) {
         $totalCount = $this->executeTotalCountCallback($totalCountCallback);
     }
     $query = $context->getQuery();
     if (null !== $query && null === $totalCount) {
         $totalCount = $this->calculateTotalCount($query);
     }
     if (null !== $totalCount) {
         $context->getResponseHeaders()->set(self::HEADER_NAME, $totalCount);
     }
 }
 /**
  * {@inheritdoc}
  */
 public function process(ContextInterface $context)
 {
     /** @var Context $context */
     $responseHeaders = $context->getResponseHeaders();
     if (!$responseHeaders->has('Content-Type')) {
         $context->getResponseHeaders()->set('Content-Type', self::JSON_API_CONTENT_TYPE);
     }
 }