Refactors lib/private/SystemTag.

Mainly using PHP8's constructor property promotion.

Signed-off-by: Faraz Samapoor <f.samapoor@gmail.com>
This commit is contained in:
Faraz Samapoor 2023-06-25 22:20:15 +03:30
parent d4393174fc
commit a988754e3d
5 changed files with 32 additions and 65 deletions

View File

@ -39,26 +39,17 @@ use OCP\SystemTag\ISystemTagObjectMapper;
* @since 9.0.0
*/
class ManagerFactory implements ISystemTagManagerFactory {
/**
* Server container
*
* @var IServerContainer
*/
private $serverContainer;
/**
* Constructor for the system tag manager factory
*
* @param IServerContainer $serverContainer server container
*/
public function __construct(IServerContainer $serverContainer) {
$this->serverContainer = $serverContainer;
public function __construct(
private IServerContainer $serverContainer,
) {
}
/**
* Creates and returns an instance of the system tag manager
*
* @return ISystemTagManager
* @since 9.0.0
*/
public function getManager(): ISystemTagManager {
@ -73,7 +64,6 @@ class ManagerFactory implements ISystemTagManagerFactory {
* Creates and returns an instance of the system tag object
* mapper
*
* @return ISystemTagObjectMapper
* @since 9.0.0
*/
public function getObjectMapper(): ISystemTagObjectMapper {

View File

@ -30,39 +30,12 @@ namespace OC\SystemTag;
use OCP\SystemTag\ISystemTag;
class SystemTag implements ISystemTag {
/**
* @var string
*/
private $id;
/**
* @var string
*/
private $name;
/**
* @var bool
*/
private $userVisible;
/**
* @var bool
*/
private $userAssignable;
/**
* Constructor.
*
* @param string $id tag id
* @param string $name tag name
* @param bool $userVisible whether the tag is user visible
* @param bool $userAssignable whether the tag is user assignable
*/
public function __construct(string $id, string $name, bool $userVisible, bool $userAssignable) {
$this->id = $id;
$this->name = $name;
$this->userVisible = $userVisible;
$this->userAssignable = $userAssignable;
public function __construct(
private string $id,
private string $name,
private bool $userVisible,
private bool $userAssignable,
) {
}
/**
@ -97,14 +70,14 @@ class SystemTag implements ISystemTag {
* {@inheritdoc}
*/
public function getAccessLevel(): int {
if ($this->userVisible) {
if ($this->userAssignable) {
return self::ACCESS_LEVEL_PUBLIC;
} else {
return self::ACCESS_LEVEL_RESTRICTED;
}
} else {
if (!$this->userVisible) {
return self::ACCESS_LEVEL_INVISIBLE;
}
if (!$this->userAssignable) {
return self::ACCESS_LEVEL_RESTRICTED;
}
return self::ACCESS_LEVEL_PUBLIC;
}
}

View File

@ -50,10 +50,8 @@ class SystemTagManager implements ISystemTagManager {
/**
* Prepared query for selecting tags directly
*
* @var \OCP\DB\QueryBuilder\IQueryBuilder
*/
private $selectTagQuery;
private IQueryBuilder $selectTagQuery;
public function __construct(
protected IDBConnection $connection,
@ -219,7 +217,12 @@ class SystemTagManager implements ISystemTagManager {
/**
* {@inheritdoc}
*/
public function updateTag(string $tagId, string $newName, bool $userVisible, bool $userAssignable) {
public function updateTag(
string $tagId,
string $newName,
bool $userVisible,
bool $userAssignable,
): void {
try {
$tags = $this->getTagsByIds($tagId);
} catch (TagNotFoundException $e) {
@ -271,7 +274,7 @@ class SystemTagManager implements ISystemTagManager {
/**
* {@inheritdoc}
*/
public function deleteTags($tagIds) {
public function deleteTags($tagIds): void {
if (!\is_array($tagIds)) {
$tagIds = [$tagIds];
}
@ -363,14 +366,14 @@ class SystemTagManager implements ISystemTagManager {
return false;
}
private function createSystemTagFromRow($row) {
private function createSystemTagFromRow($row): SystemTag {
return new SystemTag((string)$row['id'], $row['name'], (bool)$row['visibility'], (bool)$row['editable']);
}
/**
* {@inheritdoc}
*/
public function setTagGroups(ISystemTag $tag, array $groupIds) {
public function setTagGroups(ISystemTag $tag, array $groupIds): void {
// delete relationships first
$this->connection->beginTransaction();
try {

View File

@ -81,7 +81,6 @@ class SystemTagObjectMapper implements ISystemTagObjectMapper {
$result->closeCursor();
}
return $mapping;
}
@ -128,7 +127,7 @@ class SystemTagObjectMapper implements ISystemTagObjectMapper {
/**
* {@inheritdoc}
*/
public function assignTags(string $objId, string $objectType, $tagIds) {
public function assignTags(string $objId, string $objectType, $tagIds): void {
if (!\is_array($tagIds)) {
$tagIds = [$tagIds];
}
@ -169,7 +168,7 @@ class SystemTagObjectMapper implements ISystemTagObjectMapper {
/**
* {@inheritdoc}
*/
public function unassignTags(string $objId, string $objectType, $tagIds) {
public function unassignTags(string $objId, string $objectType, $tagIds): void {
if (!\is_array($tagIds)) {
$tagIds = [$tagIds];
}
@ -241,7 +240,7 @@ class SystemTagObjectMapper implements ISystemTagObjectMapper {
*
* @throws \OCP\SystemTag\TagNotFoundException if at least one tag did not exist
*/
private function assertTagsExist($tagIds) {
private function assertTagsExist(array $tagIds): void {
$tags = $this->tagManager->getTagsByIds($tagIds);
if (\count($tags) !== \count($tagIds)) {
// at least one tag missing, bail out

View File

@ -36,7 +36,9 @@ use OCP\Files\Search\ISearchBinaryOperator;
use OCP\Files\Search\ISearchComparison;
class SystemTagsInFilesDetector {
public function __construct(protected QuerySearchHelper $searchHelper) {
public function __construct(
protected QuerySearchHelper $searchHelper,
) {
}
public function detectAssignedSystemTagsIn(