Test Failed
Push — master ( 492ea4...9c8472 )
by Bingo
04:47
created

DirectedWeightedPseudograph   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 36
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 9
dl 0
loc 36
rs 10
c 0
b 0
f 0
wmc 3

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 10 1
A createBuilder() 0 6 2
1
<?php
2
3
namespace Graphp\Graph\Types;
4
5
use Graphp\Graph\Builder\GraphBuilder;
6
use Graphp\Util\SupplierUtil;
7
use Graphp\Util\SupplierInterface;
8
9
/**
10
 * Class DirectedWeightedPseudograph
11
 *
12
 * @package Graphp\Graph\Types
13
 */
14
class DirectedWeightedPseudograph extends DirectedPseudograph
15
{
16
    /**
17
     * Create a new simple directed weighted graph
18
     *
19
     * @param string $edgeClass - the edge class
20
     * @param SupplierInterface $vertexSupplier - the vertex supplier
21
     * @param SupplierInterface $edgeSupplier - the edge supplier
22
     */
23
    public function __construct(
24
        ?string $edgeClass = null,
25
        ?SupplierInterface $vertexSupplier = null,
26
        ?SupplierInterface $edgeSupplier = null
27
    ) {
28
        parent::__construct(
29
            $edgeClass,
30
            $vertexSupplier,
31
            $edgeSupplier,
32
            true
33
        );
34
    }
35
36
    /**
37
     * Create a simple directed weighted graph builder
38
     *
39
     * @param string $edgeClass - the edge class
40
     * @param SupplierInterface $edgeSupplier - the edge supplier
41
     *
42
     * @return GraphBuilder
43
     */
44
    public function createBuilder(?string $edgeClass = null, ?SupplierInterface $edgeSupplier = null): GraphBuilder
45
    {
46
        if (!is_null($edgeClass)) {
47
            return new GraphBuilder(new DirectedWeightedPseudograph($edgeClass));
48
        }
49
        return new GraphBuilder(new DirectedWeightedPseudograph(null, $edgeSupplier));
50
    }
51
}
52