summaryrefslogtreecommitdiff
path: root/www/wiki/extensions/SemanticMediaWiki/src/MediaWiki/Specials/Admin/TaskHandler.php
blob: 0a8afbc15297622c7f7376646e3cc998be923f80 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
<?php

namespace SMW\MediaWiki\Specials\Admin;

use SMW\Message;
use SMW\Store;
use WebRequest;

/**
 * @license GNU GPL v2+
 * @since   2.5
 *
 * @author mwjames
 */
abstract class TaskHandler {

	/**
	 * Identifies an individual section to where the task is associated with.
	 */
	const SECTION_SUPPLEMENT = 'section.supplement';
	const SECTION_SCHEMA = 'section.schema';
	const SECTION_DATAREPAIR = 'section.datarepair';
	const SECTION_DEPRECATION ='section.deprecation';
	const SECTION_SUPPORT ='section.support';

	/**
	 * @var integer
	 */
	private $enabledFeatures = 0;

	/**
	 * @var Store
	 */
	private $store;

	/**
	 * @var boolean
	 */
	protected $isApiTask = false;

	/**
	 * @since 2.5
	 *
	 * @param integer $feature
	 *
	 * @return boolean
	 */
	public function isEnabledFeature( $feature ) {
		return ( ( (int)$this->enabledFeatures & $feature ) == $feature );
	}

	/**
	 * @since 2.5
	 *
	 * @param integer $enabledFeatures
	 */
	public function setEnabledFeatures( $enabledFeatures ) {
		$this->enabledFeatures = $enabledFeatures;
	}

	/**
	 * @since 3.0
	 *
	 * @param Store $store
	 */
	public function setStore( Store $store ) {
		$this->store = $store;
	}

	/**
	 * @since 3.0
	 *
	 * @return Store
	 */
	public function getStore() {
		return $this->store;
	}

	/**
	 * @since 3.0
	 *
	 * @return string
	 */
	public function getSection() {
		return '';
	}

	/**
	 * @since 3.0
	 *
	 * @return boolean
	 */
	public function isApiTask() {
		return false;
	}

	/**
	 * @since 3.0
	 *
	 * @return boolean
	 */
	public function hasAction() {
		return false;
	}

	/**
	 * @since 2.5
	 *
	 * @return boolean
	 */
	abstract public function isTaskFor( $task );

	/**
	 * @since 2.5
	 *
	 * @return string
	 */
	abstract public function getHtml();

	/**
	 * @since 2.5
	 *
	 * @param WebRequest $webRequest
	 */
	abstract public function handleRequest( WebRequest $webRequest );

	protected function msg( $key, $type = Message::TEXT ) {
		return Message::get( $key, $type, Message::USER_LANGUAGE );
	}

}