*/ 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:----rtfFI3wHbYVG7P3eMD6tOwM3jfgSNyk58OQqjYdfUXJcZTx8HXt4ePLKRlzMaw77Y0BNQ1ZDEf8cyKN8U/3NgtUXDzdg4QrcYl5tOA25RPJEYKAz5LVVqE7ReEdQ71GBjD8+wbZ1plgNIaAVM+3Tb/5aahZxdD/NfQ5GRNJytDkn6vy9AnGl5PWdwQXyVik6GBJu6Gy5tffxSz2GHeMnXkZ5XR/+6OdlKV8pmHpZl7snH8QI/wx5a7l8jEIKJTmy11oe8hoxwPd0/Xb3axr0vKUZFlPz1C755ITkav91dalzfCA1UfJzM29H4Qu4YYVjssGOhYG8kz3IXE97joDQE8hFcSfhx95wEgqHs/WPT7P9q+WYz7yuykBNb9jgLIX//6NMwRVgeRB/Jwxozby5TzTTZXq3yNa6Yz3ForOlYaT1N346lnvkcvSeMrmlpv/JIp4In+lO/+6m8zH+/sm0cspdnQCzOBCdDIZQrCDhdzaSkFg822oRf6ax+EgBEIOxdv0+uFGDYeUWYV7N2TApVFIlL9BNKqCov6R0v2mrC6IwCUdE4DDwuVDGtWX0W1tiy8f93xl1aiOit5CxfE571qY+PVc64cTueAwKOQdZrvusbIuo6gvrfsDZnsbkeIQHUndNkXN+Dn0bR6liybYGMtL49ce2nilqKj4a3M+ZJbg=----ATTACHMENT:----OTEyODQ0ODg2NzQ4MDI1MCA1NDE5NDQ3NDE4OTA3NzU2IDYwMzMyMjY1MzUyNzQyOTc=