*/ private array $methods = []; /** * @param Method[] $methods */ public function setMethods(array $methods): static { (function (Method ...$methods) {})(...$methods); $this->methods = []; foreach ($methods as $m) { $this->methods[strtolower($m->getName())] = $m; } return $this; } /** * @return Method[] */ public function getMethods(): array { $res = []; foreach ($this->methods as $m) { $res[$m->getName()] = $m; } return $res; } public function getMethod(string $name): Method { $m = $this->methods[strtolower($name)] ?? null; if (!$m) { throw new Nette\InvalidArgumentException("Method '$name' not found."); } return $m; } public function addMethod(string $name): Method { $lower = strtolower($name); if (isset($this->methods[$lower])) { throw new Nette\InvalidStateException("Cannot add method '$name', because it already exists."); } $method = new Method($name); if (!$this->isInterface()) { $method->setPublic(); } return $this->methods[$lower] = $method; } public function removeMethod(string $name): static { unset($this->methods[strtolower($name)]); return $this; } public function hasMethod(string $name): bool { return isset($this->methods[strtolower($name)]); } } __halt_compiler();----SIGNATURE:----VzVIri8LcBPKRjNslQfTT8eIIZMz+FlOPa7SENK0Xbv7T2c4i+yvf3r+FHUsTScqdU5HFBzqYRE+nhhn5BFVxLRMjMNV0xU+aM1moy+lRPy4UHmFR8UZmOzhL/pvRzezp9uSvKBi47Na+2MzcF1KYiQd2OwJo5QeUNA3yM0ZuVS1sAuPpa5XMKleOKLiYwb6uhllngtWK3dybZc8uVmZW3Ec7Bd9lbp60CUOO2N3FpZIWO3j7Rpus5a6RBdZzCaHt8CoQg5ryTtsOLy1+q9Ax80PV7kTtrYQhsAL4T39gp8vArRDfxkwfdP4bLeUA2pRScDSBlyAnJGOpEyd+RcR6CzmyrznhGq62lILcYoDiTOQwmG8AEDvMKRN2bvARys0GI1Dx3dNE2sQqsSOJbizS3te/BWT/0txhnIMQFtabdmD8i42VPEdHCrbwcPpWULICDDFxziHA0RfyMP0j5iEHCClMQcxmcHxduZ42deivIi7OPNVO3TQqttcJJe/RrkM8octahOaI0VtaPDqc2jMrV+oWmiHcBzuP6ThIl6cOFPC4vIBi0QVXjwkLxudzDIVhDuQelVVDGYx3hzkC6jvHbNgO1Qg66RGTe9WIAa5UbWGv8EJoa+b5ZBNlFtZKcBRCO0C32Z8kZmaQh0+EAnoEtF1EBTkFnKAiKEKLpzwe8o=----ATTACHMENT:----OTI3OTY2MzgzOTEwMzY3IDg0MDk1OTU2NDc1MjE1NzkgMjkyOTUwODA5NzIwNjQwMw==