Completed
Push — master ( 72bb06...9fb7ca )
by mw
33:54
created

MaintenanceFactory::newRebuildPropertyStatistics()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 1
Bugs 0 Features 1
Metric Value
c 1
b 0
f 1
dl 0
loc 3
ccs 2
cts 2
cp 1
rs 10
cc 1
eloc 2
nc 1
nop 0
crap 1
1
<?php
2
3
namespace SMW\Maintenance;
4
5
use SMW\ApplicationFactory;
6
use SMW\Store;
7
use SMW\Store\PropertyStatisticsStore;
8
use SMW\SQLStore\PropertyStatisticsTable;
9
use SMW\SQLStore\SQLStore;
10
use Onoi\MessageReporter\MessageReporterFactory;
11
12
/**
13
 * @license GNU GPL v2+
14
 * @since 2.2
15
 *
16
 * @author mwjames
17
 */
18
class MaintenanceFactory {
19
20
	/**
21
	 * @since 2.2
22
	 *
23
	 * @return MaintenanceHelper
24
	 */
25 4
	public function newMaintenanceHelper() {
26 4
		return new MaintenanceHelper();
27
	}
28
29
	/**
30
	 * @since 2.2
31
	 *
32
	 * @param Store $store
33
	 * @param Callable|null $reporterCallback
34
	 *
35
	 * @return DataRebuilder
36
	 */
37 3
	public function newDataRebuilder( Store $store, $reporterCallback = null ) {
38
39 3
		$messageReporter = MessageReporterFactory::getInstance()->newObservableMessageReporter();
40 3
		$messageReporter->registerReporterCallback( $reporterCallback );
41
42 3
		$dataRebuilder = new DataRebuilder(
43
			$store,
44 3
			ApplicationFactory::getInstance()->newTitleCreator()
45
		);
46
47 3
		$dataRebuilder->setMessageReporter( $messageReporter );
48
49 3
		return $dataRebuilder;
50
	}
51
52
	/**
53
	 * @since 2.2
54
	 *
55
	 * @param Store $store
56
	 * @param Callable|null $reporterCallback
57
	 *
58
	 * @return ConceptCacheRebuilder
59
	 */
60 2
	public function newConceptCacheRebuilder( Store $store, $reporterCallback = null ) {
61
62 2
		$messageReporter = MessageReporterFactory::getInstance()->newObservableMessageReporter();
63 2
		$messageReporter->registerReporterCallback( $reporterCallback );
64
65 2
		$conceptCacheRebuilder = new ConceptCacheRebuilder(
66
			$store,
67 2
			ApplicationFactory::getInstance()->getSettings()
68
		);
69
70 2
		$conceptCacheRebuilder->setMessageReporter( $messageReporter );
71
72 2
		return $conceptCacheRebuilder;
73
	}
74
75
	/**
76
	 * @since 2.2
77
	 *
78
	 * @param Store $store
79
	 * @param Callable|null $reporterCallback
80
	 *
81
	 * @return PropertyStatisticsRebuilder
82
	 */
83 3
	public function newPropertyStatisticsRebuilder( Store $store, $reporterCallback = null ) {
84
85 3
		$messageReporter = MessageReporterFactory::getInstance()->newObservableMessageReporter();
86 3
		$messageReporter->registerReporterCallback( $reporterCallback );
87
88 3
		$propertyStatisticsTable = new PropertyStatisticsTable(
89 3
			$store->getConnection( 'mw.db' ),
90 3
			SQLStore::PROPERTY_STATISTICS_TABLE
91
		);
92
93 3
		$propertyStatisticsRebuilder = new PropertyStatisticsRebuilder(
94
			$store,
95
			$propertyStatisticsTable
96
		);
97
98 3
		$propertyStatisticsRebuilder->setMessageReporter( $messageReporter );
99
100 3
		return $propertyStatisticsRebuilder;
101
	}
102
103
	/**
104
	 * @since 2.4
105
	 *
106
	 * @return RebuildPropertyStatistics
107
	 */
108 1
	public function newRebuildPropertyStatistics() {
109 1
		return new RebuildPropertyStatistics();
110
	}
111
112
}
113