Completed
Pull Request — master (#19)
by Tim
03:20
created

BannerSelection::getVisitorData()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 2
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 0
dl 0
loc 2
ccs 2
cts 2
cp 1
crap 1
rs 10
c 0
b 0
f 0
1
<?php
2
3
declare( strict_types = 1 );
4
5
namespace WMDE\BannerServer\UseCase\BannerSelection;
6
7
/**
8
 * @license GNU GPL v2+
9
 */
10
class BannerSelection {
11
12
	private $bannerIdentifier;
13
	private $visitorData;
14
	private $campaignEnd;
15
16 1
	public static function createBannerSelection( string $bannerIdentifier, Visitor $visitorData, \DateTime $campaignEnd ): self {
17 1
		return new self( $bannerIdentifier, $visitorData, $campaignEnd );
18
	}
19
20
	public static function createEmptySelection( Visitor $visitor ): self {
21
		return new self( null, $visitor, new \DateTime() );
22
	}
23
24 1
	private function __construct( ?string $bannerIdentifier, Visitor $visitorData, \DateTime $campaignEnd ) {
25 1
		$this->bannerIdentifier = $bannerIdentifier;
26 1
		$this->visitorData = $visitorData;
27 1
		$this->campaignEnd = $campaignEnd;
28 1
	}
29
30 1
	public function displayBanner(): bool {
31 1
		return $this->bannerIdentifier !== null;
32
	}
33
34 1
	public function getBannerIdentifier(): string {
35 1
		assert( is_string( $this->bannerIdentifier ) );
36 1
		return $this->bannerIdentifier;
37
	}
38
39 1
	public function getVisitorData(): Visitor {
40 1
		return $this->visitorData;
41
	}
42
43 1
	public function getCampaignEnd(): \DateTime {
44 1
		return $this->campaignEnd;
45
	}
46
}