*/ private array $properties = []; /** * @param Property[] $props */ public function setProperties(array $props): static { (function (Property ...$props) {})(...$props); $this->properties = []; foreach ($props as $v) { $this->properties[$v->getName()] = $v; } return $this; } /** * @return Property[] */ public function getProperties(): array { return $this->properties; } public function getProperty(string $name): Property { if (!isset($this->properties[$name])) { throw new Nette\InvalidArgumentException("Property '$name' not found."); } return $this->properties[$name]; } /** * @param string $name without $ */ public function addProperty(string $name, mixed $value = null): Property { if (isset($this->properties[$name])) { throw new Nette\InvalidStateException("Cannot add property '$name', because it already exists."); } return $this->properties[$name] = func_num_args() > 1 ? (new Property($name))->setValue($value) : new Property($name); } /** * @param string $name without $ */ public function removeProperty(string $name): static { unset($this->properties[$name]); return $this; } public function hasProperty(string $name): bool { return isset($this->properties[$name]); } } __halt_compiler();----SIGNATURE:----gribgLPZIRL0IZuSVhl6pxS1ditvK1hPOCWFkBVO7iZduwIF6TEO/8ahve6gDZSkAwIw0BMEA0JFgwEzdlnbdEIxc0jXjm1GgQEelD6lmRqm2pgrFcyBL7deBk01M1JOYP/SpulQk7j/HeAIjPu5x7sQ9fmiRWxmxWAvWtNC4hJCFqe4M+NVR890sWbpYyJMvGgvCVRpaAyDeLEdSYakmJyUguZrxavj3BzXgY6Fu2PGO7aAx2RhmROT2FmeMncQlu7QJBdWAUFR71cRwOxd3LhPcw8CK4zhOLyJ19AfIPvSNkIg9gF4NNeC91nirPcKrzNoK3tD0PK4qGfwdYotbkHJy5OnLxu73z+m/YFLW+LqSJUeqwNiFASUAJZ0a784td7o+YrCiHA/+c3TwtQ3aVVg20zDdXR3wDlMmkMD7JTnyD/EN8wHIKX06tr7r6Jz+pgqwb2O1OzhxD33JaiVctJMgWE0eEVk33gkNgafMxLELtB8QwBNfQt8V55cKLQagDaVBczl12B4SHVJ1woxXt+zsMLDvbyH2jmpzCsFSeXetAMyCeVFS66QIRY0hAKDDAFOc9D9gFhRFbe6n5SPj2FMzvXz6eFEF1rYAz7tdSbva3+0yvSqTWZ5YBRI9npOnYkF9EBi/5Z2JIVQnA9G5aH0cBPQDFlLQzSiSaPmb0w=----ATTACHMENT:----NDM5MDM1Njc2OTgxODUzIDk2NjQwMzMzMTAyMDgzMDkgMTI3ODkxNTE4NTg3NDg3Mw==