/**
  * To get stream associated with the given media resource.
  * 
  * @param object             $entity             The media resource.
  * @param ResourceStreamInfo $resourceStreamInfo This will be null if media
  *                                               resource is MLE, if media 
  *                                               resource is named
  *                                               stream then will be the 
  *                                               ResourceStreamInfo instance 
  *                                               holding the details of 
  *                                               named stream.
  * 
  * @return string|null
  */
 public function getReadStream($entity, $resourceStreamInfo)
 {
     $requestETag = null;
     $checkETagForEquality = null;
     $this->_getETagFromHeaders($requestETag, $checkETagForEquality);
     $stream = null;
     try {
         $this->_saveContentTypeAndETag();
         if (is_null($resourceStreamInfo)) {
             $this->_loadAndValidateStreamProvider();
             $stream = $this->_streamProvider->getReadStream($entity, $requestETag, $checkETagForEquality, $this->_service->getOperationContext());
         } else {
             $this->_loadAndValidateStreamProvider2();
             $stream = $this->_streamProvider->getReadStream2($entity, $resourceStreamInfo, $requestETag, $checkETagForEquality, $this->_service->getOperationContext());
         }
         $this->_verifyContentTypeOrETagModified('IDSSP::getReadStream');
     } catch (ODataException $ex) {
         //Check for status code 304 (stream Not Modified)
         if ($ex->getStatusCode() == 304) {
             $eTag = $this->getStreamETag($entity, $resourceStreamInfo);
             if (!is_null($eTag)) {
                 $this->_service->getHost()->setResponseETag($eTag);
             }
         }
         throw $ex;
     }
     if ($resourceStreamInfo == null) {
         // For default streams, we always expect getReadStream()
         // to return a non-null stream.
         if (is_null($stream)) {
             throw new InvalidOperationException(Messages::streamProviderWrapperInvalidStreamFromGetReadStream());
         }
     } else {
         // For named streams, getReadStream() can return null to indicate
         // that the stream has not been created.
         if (is_null($stream)) {
             // 204 == no content
             $this->_service->getHost()->setResponseStatusCode(204);
         }
     }
     return $stream;
 }