* @license MIT */ class PublicPropertiesMap extends PropertyGenerator { /** * @var bool[] */ private $publicProperties = array(); /** * @param \ReflectionClass $originalClass */ public function __construct(ReflectionClass $originalClass) { parent::__construct(UniqueIdentifierGenerator::getIdentifier('publicProperties')); foreach ($originalClass->getProperties(ReflectionProperty::IS_PUBLIC) as $publicProperty) { $this->publicProperties[$publicProperty->getName()] = true; } $this->setDefaultValue($this->publicProperties); $this->setVisibility(self::VISIBILITY_PRIVATE); $this->setStatic(true); $this->setDocblock('@var bool[] map of public properties of the parent class'); } /** * @return bool whether there are no public properties */ public function isEmpty() { return empty($this->publicProperties); } }