SubmissionFileBaseAccessPolicy::getSubmissionFile PHP Method

getSubmissionFile() public method

Get the requested submission file.
public getSubmissionFile ( $request ) : SubmissionFile
$request PKPRequest
return SubmissionFile
    function getSubmissionFile($request)
    {
        // Try to get the submission file info.
        $fileIdAndRevision = $this->_fileIdAndRevision;
        if (!is_null($fileIdAndRevision)) {
            $fileData = explode('-', $fileIdAndRevision);
            $fileId = (int) $fileData[0];
            $revision = isset($fileData[1]) ? (int) $fileData[1] : 0;
            // -0 for most recent revision
            $cacheId = $fileIdAndRevision;
        } else {
            // Get the identifying info from the request
            $fileId = (int) $request->getUserVar('fileId');
            $revision = (int) $request->getUserVar('revision');
            assert($fileId > 0);
            $cacheId = "{$fileId}-{$revision}";
            // -0 for most recent revision
        }
        // Fetch the object, caching if possible
        $cache =& $this->_getCache();
        if (!isset($cache[$cacheId])) {
            // Cache miss
            $submissionFileDao = DAORegistry::getDAO('SubmissionFileDAO');
            if ($revision) {
                $cache[$cacheId] = $submissionFileDao->getRevision($fileId, $revision);
            } else {
                $cache[$cacheId] = $submissionFileDao->getLatestRevision($fileId);
            }
        }
        return $cache[$cacheId];
    }