Completed
Push — master ( 650783...0c9838 )
by wen
15:06
created

Extension::add()

Size

Total Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 1
c 0
b 0
f 0
nc 1
1
<?php
2
3
namespace Sco\Admin\Display\Extensions;
4
5
use Illuminate\Database\Eloquent\Builder;
6
use Illuminate\Support\Collection;
7
use Sco\Admin\Contracts\Display\Extensions\ExtensionInterface;
8
9
abstract class Extension extends Collection implements ExtensionInterface
10
{
11
    /**
12
     * {@inheritdoc}
13
     */
14
    abstract public function add($value);
15
16
    /**
17
     * {@inheritdoc}
18
     */
19
    abstract public function apply(Builder $query);
20
21
    /**
22
     * {@inheritdoc}
23
     */
24
    public function clear()
25
    {
26
        $this->items = [];
27
28
        return $this;
29
    }
30
31
    /**
32
     * {@inheritdoc}
33
     */
34
    public function set($values)
35
    {
36
        $this->clear();
37
38
        if (! is_array($values)) {
39
            $values = func_get_args();
40
        }
41
42
        foreach ($values as $value) {
43
            $this->add($value);
44
        }
45
46
        return $this;
47
    }
48
}
49