/**
  * @param ValidatorProviderInterface $validators
  * @param RequestInterpreterInterface $interpreter
  * @param RequestInterface $request
  * @return DocumentValidatorInterface|null
  */
 private function documentAcceptanceValidator(ValidatorProviderInterface $validators, RequestInterpreterInterface $interpreter, RequestInterface $request)
 {
     $resourceType = $request->getResourceType();
     $resourceId = $interpreter->getResourceId();
     $relationshipName = $interpreter->getRelationshipName();
     $record = $request->getRecord();
     /** Create Resource */
     if ($interpreter->isCreateResource()) {
         return $validators->createResource($resourceType);
     } elseif ($interpreter->isUpdateResource()) {
         return $validators->updateResource($resourceType, $resourceId, $record);
     } elseif ($interpreter->isModifyRelationship()) {
         return $validators->modifyRelationship($resourceType, $resourceId, $relationshipName, $record);
     }
     return null;
 }
 /**
  * @param string $resourceType
  * @return FilterValidatorInterface|null
  */
 private function filterValidator($resourceType)
 {
     return $this->validators ? $this->validators->filterResources($resourceType) : null;
 }