Completed
Push — master ( 373aee...88365a )
by Dominik
02:29
created

AbstractNode   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 39
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 0

Test Coverage

Coverage 100%

Importance

Changes 14
Bugs 3 Features 2
Metric Value
wmc 3
c 14
b 3
f 2
lcom 0
cbo 0
dl 0
loc 39
ccs 7
cts 7
cp 1
rs 10

4 Methods

Rating   Name   Duplication   Size   Complexity  
A setParent() 0 8 2
A getParent() 0 4 1
getDefault() 0 1 ?
serialize() 0 1 ?
1
<?php
2
3
namespace Saxulum\ElasticSearchQueryBuilder\Node;
4
5
abstract class AbstractNode
6
{
7
    /**
8
     * @var AbstractParentNode
9
     */
10
    protected $parent;
11
12
    /**
13
     * @param AbstractParentNode $parent
14
     *
15
     * @throws \InvalidArgumentException
16
     */
17 13
    public function setParent(AbstractParentNode $parent)
18
    {
19 13
        if (null !== $this->parent) {
20 2
            throw new \InvalidArgumentException('Node already got a parent!');
21
        }
22
23 13
        $this->parent = $parent;
24 13
    }
25
26
    /**
27
     * @return AbstractParentNode
28
     */
29 4
    public function getParent()
30
    {
31 4
        return $this->parent;
32
    }
33
34
    /**
35
     * @return \stdClass|array|null
36
     */
37
    abstract public function getDefault();
38
39
    /**
40
     * @return \stdClass|array|string|float|int|bool|null
41
     */
42
    abstract public function serialize();
43
}
44