public static function build(string $fullPath, int $uploadStatus, string $clientFileName = null, string $clientMimeType = null) : \Dms\Core\File\IUploadedFile
    {
        if ($clientMimeType && stripos($clientMimeType, 'image') === 0) {
            return new UploadedImage(
                    $fullPath,
                    $uploadStatus,
                    $clientFileName,
                    $clientMimeType
            );
        } else {
            return new UploadedFile(
                    $fullPath,
                    $uploadStatus,
                    $clientFileName,
                    $clientMimeType
            );
        }
    }