Merge branch '2.0'
[GitHub/WoltLab/WCF.git] / wcfsetup / install / files / lib / system / moderation / queue / IModerationQueueHandler.class.php
CommitLineData
fc69b61d
MW
1<?php
2namespace wcf\system\moderation\queue;
3use wcf\data\moderation\queue\ModerationQueue;
4
5/**
6 * Default interface for moderation queue handlers.
7 *
8 * @author Alexander Ebert
ca4ba303 9 * @copyright 2001-2014 WoltLab GmbH
fc69b61d 10 * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
f4f05aa5 11 * @package com.woltlab.wcf
fc69b61d
MW
12 * @subpackage system.moderation.queue
13 * @category Community Framework
14 */
15interface IModerationQueueHandler {
16 /**
17 * Creates queue assignments for matching object ids.
18 *
0ad90fc3 19 * @param array<\wcf\data\moderation\queue\ModerationQueue> $queues
fc69b61d
MW
20 */
21 public function assignQueues(array $queues);
22
23 /**
24 * Returns the container id for current object id, may return 0.
25 *
26 * @param integer $objectID
27 * @return integer
28 */
29 public function getContainerID($objectID);
30
9bf4ce63
AE
31 /**
32 * Validates object ids and returns orphaned queue ids.
33 *
34 * @param array<integer> $queues
35 * @return array<integer>
36 */
37 public function identifyOrphans(array $queues);
38
fc69b61d
MW
39 /**
40 * Returns true if given object id is valid.
41 *
42 * @param integer $objectID
43 * @return boolean
44 */
45 public function isValid($objectID);
46
47 /**
48 * Populates object properties for viewing.
49 *
0ad90fc3 50 * @param array<\wcf\data\moderation\queue\ViewableModerationQueue> $queues
fc69b61d
MW
51 */
52 public function populate(array $queues);
53
54 /**
55 * Removes affected content. It is up to the processing class to either
56 * soft-delete the content or remove it permanently.
57 *
0ad90fc3 58 * @param \wcf\data\moderation\queue\ModerationQueue $queue
fc69b61d
MW
59 * @param string $message
60 */
61 public function removeContent(ModerationQueue $queue, $message);
62
b91f1424
TD
63 /**
64 * Returns true if the affected content may be removed.
65 *
66 * @return boolean
67 */
68 public function canRemoveContent(ModerationQueue $queue);
69
fc69b61d
MW
70 /**
71 * Removes queses from database, should only be called if the referenced
72 * object is permanently deleted.
73 *
74 * @param array<integer> $objectIDs
75 */
76 public function removeQueues(array $objectIDs);
77}