| Current File : /home/jvzmxxx/wiki1/extensions/Wikibase/repo/includes/EditEntityFactory.php |
<?php
namespace Wikibase;
use IContextSource;
use User;
use Wikibase\DataModel\Entity\EntityDocument;
use Wikibase\Lib\Store\EntityRevisionLookup;
use Wikibase\Lib\Store\EntityStore;
use Wikibase\Lib\Store\EntityTitleLookup;
use Wikibase\Repo\Hooks\EditFilterHookRunner;
use Wikibase\Repo\Store\EntityPermissionChecker;
/**
* @since 0.5
*
* @license GPL-2.0+
* @author Addshore
*/
class EditEntityFactory {
/**
* @var EntityTitleLookup
*/
private $titleLookup;
/**
* @var EntityRevisionLookup
*/
private $entityRevisionLookup;
/**
* @var EntityStore
*/
private $entityStore;
/**
* @var EntityPermissionChecker
*/
private $permissionChecker;
/**
* @var EditFilterHookRunner
*/
private $editFilterHookRunner;
/**
* @var IContextSource|null
*/
private $context;
/**
* @param EntityTitleLookup $titleLookup
* @param EntityRevisionLookup $entityLookup
* @param EntityStore $entityStore
* @param EntityPermissionChecker $permissionChecker
* @param EditFilterHookRunner $editFilterHookRunner
* @param IContextSource|null $context
*/
public function __construct(
EntityTitleLookup $titleLookup,
EntityRevisionLookup $entityLookup,
EntityStore $entityStore,
EntityPermissionChecker $permissionChecker,
EditFilterHookRunner $editFilterHookRunner,
IContextSource $context = null
) {
$this->titleLookup = $titleLookup;
$this->entityRevisionLookup = $entityLookup;
$this->entityStore = $entityStore;
$this->permissionChecker = $permissionChecker;
$this->editFilterHookRunner = $editFilterHookRunner;
$this->context = $context;
}
/**
* @param User $user the user performing the edit
* @param EntityDocument $entity the new entity object
* @param int|bool $baseRevId the base revision ID for conflict checking.
* Defaults to false, disabling conflict checks.
* `true` can be used to set the base revision to the latest revision:
* This will detect "late" edit conflicts, i.e. someone squeezing in an edit
* just before the actual database transaction for saving beings.
* The empty string and 0 are both treated as `false`, disabling conflict checks.
*
* @return EditEntity
*/
public function newEditEntity( User $user, EntityDocument $entity, $baseRevId = false ) {
return new EditEntity(
$this->titleLookup,
$this->entityRevisionLookup,
$this->entityStore,
$this->permissionChecker,
$entity,
$user,
$this->editFilterHookRunner,
$baseRevId,
$this->context
);
}
}