flags = $flags; return $this; } /** * @param int $flag * @return AbstractMemberGenerator */ public function addFlag($flag) { $this->setFlags($this->flags | $flag); return $this; } /** * @param int $flag * @return AbstractMemberGenerator */ public function removeFlag($flag) { $this->setFlags($this->flags & ~$flag); return $this; } /** * @param bool $isAbstract * @return AbstractMemberGenerator */ public function setAbstract($isAbstract) { return $isAbstract ? $this->addFlag(self::FLAG_ABSTRACT) : $this->removeFlag(self::FLAG_ABSTRACT); } /** * @return bool */ public function isAbstract() { return (bool) ($this->flags & self::FLAG_ABSTRACT); } /** * @param bool $isInterface * @return AbstractMemberGenerator */ public function setInterface($isInterface) { return $isInterface ? $this->addFlag(self::FLAG_INTERFACE) : $this->removeFlag(self::FLAG_INTERFACE); } /** * @return bool */ public function isInterface() { return (bool) ($this->flags & self::FLAG_INTERFACE); } /** * @param bool $isFinal * @return AbstractMemberGenerator */ public function setFinal($isFinal) { return $isFinal ? $this->addFlag(self::FLAG_FINAL) : $this->removeFlag(self::FLAG_FINAL); } /** * @return bool */ public function isFinal() { return (bool) ($this->flags & self::FLAG_FINAL); } /** * @param bool $isStatic * @return AbstractMemberGenerator */ public function setStatic($isStatic) { return $isStatic ? $this->addFlag(self::FLAG_STATIC) : $this->removeFlag(self::FLAG_STATIC); } /** * @return bool */ public function isStatic() { return (bool) ($this->flags & self::FLAG_STATIC); // is FLAG_STATIC in flags } /** * @param string $visibility * @return AbstractMemberGenerator */ public function setVisibility($visibility) { switch ($visibility) { case self::VISIBILITY_PUBLIC: $this->removeFlag(self::FLAG_PRIVATE | self::FLAG_PROTECTED); // remove both $this->addFlag(self::FLAG_PUBLIC); break; case self::VISIBILITY_PROTECTED: $this->removeFlag(self::FLAG_PUBLIC | self::FLAG_PRIVATE); // remove both $this->addFlag(self::FLAG_PROTECTED); break; case self::VISIBILITY_PRIVATE: $this->removeFlag(self::FLAG_PUBLIC | self::FLAG_PROTECTED); // remove both $this->addFlag(self::FLAG_PRIVATE); break; } return $this; } /** * @psalm-return static::VISIBILITY_* */ public function getVisibility() { switch (true) { case $this->flags & self::FLAG_PROTECTED: return self::VISIBILITY_PROTECTED; case $this->flags & self::FLAG_PRIVATE: return self::VISIBILITY_PRIVATE; default: return self::VISIBILITY_PUBLIC; } } /** * @param string $name * @return AbstractMemberGenerator */ public function setName($name) { $this->name = (string) $name; return $this; } /** * @return string */ public function getName() { return $this->name; } /** * @param DocBlockGenerator|string $docBlock * @throws Exception\InvalidArgumentException * @return AbstractMemberGenerator */ public function setDocBlock($docBlock) { if (is_string($docBlock)) { $docBlock = new DocBlockGenerator($docBlock); } elseif (! $docBlock instanceof DocBlockGenerator) { throw new Exception\InvalidArgumentException(sprintf( '%s is expecting either a string, array or an instance of %s\DocBlockGenerator', __METHOD__, __NAMESPACE__ )); } $this->docBlock = $docBlock; return $this; } public function removeDocBlock(): void { $this->docBlock = null; } /** * @return DocBlockGenerator|null */ public function getDocBlock() { return $this->docBlock; } } __halt_compiler();----SIGNATURE:----JKrdcvzdDLvnG/FzPu+sTVvgXW6Sz4Ka7QLBAG81awkcja+h9FzC5L1c/s8jD/t/c1+JTNrQw7JiqCzixZgxlV1YckOWffCptb+/WqjBvKWKL+SWUA7bLIvYzYh2TE83uP4QJYlLvH9HsLyvCoF8P/OH1SNhBzn+H3ywe2aKtvofllzREUph5k9cqzMuOY2WLpeLOKtDOGiD8OjeY5FZe2AknHVsEnqwtyl4z8wZVZys2M0jRUlr9ja2VJsE1U9g3QJqhsUZu5r7J2rp7DDfXPFCWypdlbph87DOvwlVYcgMKFdu1VjfPpDbf5uIk4554bn2KgVIXgNo1oHtBrYyUwUw6c0FWpYHHn+6WcwyUMqmwmnh4Xj1znsiMay6upyG5+c5oO6D/cKSGg7OvlHDM9KgpdQN9UhN+uMFJcpHDdq8fIXNn9UF3mlgy+alKAwND8l5suOEyG+Qlr8qfLeUvHIHos1AbCfUd3VPtdqyxZ04cA3/NliJzuDhdHu6GxDQLVdyF6uBIlHM/EYdgak0C+1dd8g2haIpcNXSXJpAB9IPGq6ZOD1DsLjSXtrMxj7PnLhVWkPvy2L3wwL3nTtbnQgg9Lkg1OM8yc7RHX7YSmYlQzSAl7RXoSsUk+eZEeF+ytQBeNwAtnwEhALo0FoMo7slShoiHlFZbNBaoi66gY0=----ATTACHMENT:----OTA4ODA5ODk2NzA2OTIyNiA3OTc3Mzg5NTc5MjM3ODEwIDI2MTIwNTIwMjY3OTg1NjQ=