PriceCalculatorFactory   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 33
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
eloc 5
dl 0
loc 33
ccs 5
cts 5
cp 1
rs 10
c 0
b 0
f 0
wmc 4

4 Methods

Rating   Name   Duplication   Size   Complexity  
A create() 0 3 1
A getClass() 0 3 1
A setClass() 0 4 1
A __construct() 0 3 1
1
<?php declare(strict_types=1);
2
3
namespace Sunfox\PriceCalculator;
4
5
final class PriceCalculatorFactory
6
{
7
	/**
8
	 * Accepts class name with full namespace.
9
	 */
10
	public function __construct(
11
		private string $class = PriceCalculator::class
12
	) {
13
	}
14
15 1
	/**
16
	 * Create and return PriceCalculator instance.
17 1
	 */
18 1
	public function create(): IPriceCalculator
19
	{
20
		return new $this->class;
21
	}
22
23
	/**
24
	 * Get class name.
25 1
	 */
26
	public function getClass(): string
27
	{
28
		return $this->class;
29
	}
30
31
	/**
32
	 * Set class name.
33 1
	 */
34
	public function setClass(string $class): self
35
	{
36
		$this->class = $class;
37
		return $this;
38
	}
39
}
40