Completed
Push — master ( bc2207...6c16a9 )
by mw
02:41
created

ApprovedRevsHandler   A

Complexity

Total Complexity 7

Size/Duplication

Total Lines 62
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Test Coverage

Coverage 93.33%

Importance

Changes 0
Metric Value
wmc 7
lcom 1
cbo 1
dl 0
loc 62
ccs 14
cts 15
cp 0.9333
rs 10
c 0
b 0
f 0

4 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 3 1
A isApprovedUpdate() 0 8 2
A doChangeRevision() 0 8 2
A doChangeRevisionID() 0 6 2
1
<?php
2
3
namespace SMW\ApprovedRevs;
4
5
use Title;
6
use Revision;
7
8
/**
9
 * @license GNU GPL v2+
10
 * @since 1.0
11
 *
12
 * @author mwjames
13
 */
14
class ApprovedRevsHandler {
15
16
	/**
17
	 * @var ApprovedRevsFacade
18
	 */
19
	private $approvedRevsFacade;
20
21
	/**
22
	 * @since 1.0
23
	 *
24
	 * @param ApprovedRevsFacade $approvedRevsFacade
25
	 */
26 5
	public function __construct( ApprovedRevsFacade $approvedRevsFacade ) {
27 5
		$this->approvedRevsFacade = $approvedRevsFacade;
28 5
	}
29
30
	/**
31
	 * @since  1.0
32
	 *
33
	 * @param Title $title
34
	 * @param integer $latestRevID
35
	 *
36
	 * @return boolean
37
	 */
38 2
	public function isApprovedUpdate( Title $title, $latestRevID ) {
39
40 2
		if ( ( $approvedRevID = $this->approvedRevsFacade->getApprovedRevID( $title ) ) !== null ) {
41 2
			return $approvedRevID == $latestRevID;
42
		}
43
44
		return true;
45
	}
46
47
	/**
48
	 * @since  1.0
49
	 *
50
	 * @param Title $title
51
	 * @param Revision|null &$revision
52
	 */
53 1
	public function doChangeRevision( Title $title, &$revision ) {
54
55
		// Forcibly change the revision to match what ApprovedRevs sees as
56
		// approved
57 1
		if ( ( $approvedRevID = $this->approvedRevsFacade->getApprovedRevID( $title ) ) !== null ) {
58 1
			$revision = Revision::newFromId( $approvedRevID );
59
		}
60 1
	}
61
62
	/**
63
	 * @since  1.0
64
	 *
65
	 * @param Title $title
66
	 * @param integer &$revisionID
67
	 */
68 1
	public function doChangeRevisionID( Title $title, &$revisionID ) {
69
70 1
		if ( ( $approvedRevID = $this->approvedRevsFacade->getApprovedRevID( $title ) ) !== null ) {
71 1
			$revisionID = $approvedRevID;
72
		}
73 1
	}
74
75
}
76