Security update for Core, with self-updated composer
[yaffs-website] / vendor / phpspec / prophecy / src / Prophecy / Doubler / Generator / Node / ArgumentNode.php
1 <?php
2
3 /*
4  * This file is part of the Prophecy.
5  * (c) Konstantin Kudryashov <ever.zet@gmail.com>
6  *     Marcello Duarte <marcello.duarte@gmail.com>
7  *
8  * For the full copyright and license information, please view the LICENSE
9  * file that was distributed with this source code.
10  */
11
12 namespace Prophecy\Doubler\Generator\Node;
13
14 /**
15  * Argument node.
16  *
17  * @author Konstantin Kudryashov <ever.zet@gmail.com>
18  */
19 class ArgumentNode
20 {
21     private $name;
22     private $typeHint;
23     private $default;
24     private $optional    = false;
25     private $byReference = false;
26     private $isVariadic  = false;
27     private $isNullable  = false;
28
29     /**
30      * @param string $name
31      */
32     public function __construct($name)
33     {
34         $this->name = $name;
35     }
36
37     public function getName()
38     {
39         return $this->name;
40     }
41
42     public function getTypeHint()
43     {
44         return $this->typeHint;
45     }
46
47     public function setTypeHint($typeHint = null)
48     {
49         $this->typeHint = $typeHint;
50     }
51
52     public function hasDefault()
53     {
54         return $this->isOptional() && !$this->isVariadic();
55     }
56
57     public function getDefault()
58     {
59         return $this->default;
60     }
61
62     public function setDefault($default = null)
63     {
64         $this->optional = true;
65         $this->default  = $default;
66     }
67
68     public function isOptional()
69     {
70         return $this->optional;
71     }
72
73     public function setAsPassedByReference($byReference = true)
74     {
75         $this->byReference = $byReference;
76     }
77
78     public function isPassedByReference()
79     {
80         return $this->byReference;
81     }
82
83     public function setAsVariadic($isVariadic = true)
84     {
85         $this->isVariadic = $isVariadic;
86     }
87
88     public function isVariadic()
89     {
90         return $this->isVariadic;
91     }
92
93     public function isNullable()
94     {
95         return $this->isNullable;
96     }
97
98     public function setAsNullable($isNullable = true)
99     {
100         $this->isNullable = $isNullable;
101     }
102 }