StockDividendDiscountModelCalculatorFactory   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 41
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 2

Importance

Changes 1
Bugs 0 Features 1
Metric Value
wmc 2
c 1
b 0
f 1
lcom 0
cbo 2
dl 0
loc 41
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A newZeroGrowthDividendDiscountModel() 0 10 1
A newMultipleGrowthDividendDiscountModel() 0 14 1
1
<?php
2
3
namespace FinanCalc\Calculators\Factories {
4
5
    use FinanCalc\Calculators\StockDividendDiscountModelCalculator;
6
    use FinanCalc\Constants\StockDDMTypes;
7
    use FinanCalc\Interfaces\Calculator\CalculatorFactoryAbstract;
8
9
    /**
10
     * Class StockDividendDiscountModelFactory
11
     * @package FinanCalc\Calculators\Factories
12
     */
13
    class StockDividendDiscountModelCalculatorFactory extends CalculatorFactoryAbstract
14
    {
15
        const MANUFACTURED_CLASS_NAME = 'FinanCalc\\Calculators\\StockDividendDiscountModelCalculator';
16
17
        /**
18
         * @param $stockVIR
19
         * @param $stockAnnualDividendValue
20
         * @return StockDividendDiscountModelCalculator
21
         */
22
        public function newZeroGrowthDividendDiscountModel($stockVIR, $stockAnnualDividendValue)
23
        {
24
            return $this->manufactureInstance(
25
                [
26
                    new StockDDMTypes(StockDDMTypes::ZERO_GROWTH),
27
                    $stockVIR,
28
                    $stockAnnualDividendValue
29
                ]
30
            );
31
        }
32
33
        /**
34
         * @param $stockVIR
35
         * @param $stockAnnualDividendValue
36
         * @param $stockAnnualDividendsGrowth
37
         * @return StockDividendDiscountModelCalculator
38
         */
39
        public function newMultipleGrowthDividendDiscountModel(
40
            $stockVIR,
41
            $stockAnnualDividendValue,
42
            $stockAnnualDividendsGrowth
43
        ) {
44
            return $this->manufactureInstance(
45
                [
46
                    new StockDDMTypes(StockDDMTypes::MULTIPLE_GROWTH),
47
                    $stockVIR,
48
                    $stockAnnualDividendValue,
49
                    $stockAnnualDividendsGrowth
50
                ]
51
            );
52
        }
53
    }
54
}
55