/vendor/phpdocumentor/phpdocumentor/src/phpDocumentor/Descriptor/TraitDescriptor.php
PHP | 176 lines | 86 code | 27 blank | 63 comment | 0 complexity | ce116bbded4ecf54b45d0f7eb1e983dd MD5 | raw file
- <?php
- /**
- * phpDocumentor
- *
- * PHP Version 5.3
- *
- * @copyright 2010-2014 Mike van Riel / Naenius (http://www.naenius.com)
- * @license http://www.opensource.org/licenses/mit-license.php MIT
- * @link http://phpdoc.org
- */
- namespace phpDocumentor\Descriptor;
- /**
- * Descriptor representing a Trait.
- */
- class TraitDescriptor extends DescriptorAbstract implements Interfaces\TraitInterface
- {
- /** @var Collection $properties */
- protected $properties;
- /** @var Collection $methods */
- protected $methods;
- /** @var Collection $usedTraits */
- protected $usedTraits;
- /**
- * Initializes the all properties representing a collection with a new Collection object.
- */
- public function __construct()
- {
- parent::__construct();
- $this->setProperties(new Collection());
- $this->setMethods(new Collection());
- $this->setUsedTraits(new Collection());
- }
- /**
- * {@inheritDoc}
- */
- public function setMethods(Collection $methods)
- {
- $this->methods = $methods;
- }
- /**
- * {@inheritDoc}
- */
- public function getMethods()
- {
- return $this->methods;
- }
- /**
- * {@inheritDoc}
- */
- public function getInheritedMethods()
- {
- return new Collection();
- }
- /**
- * @return Collection
- */
- public function getMagicMethods()
- {
- /** @var Collection $methodTags */
- $methodTags = clone $this->getTags()->get('method', new Collection());
- $methods = new Collection();
- /** @var Tag\MethodDescriptor $methodTag */
- foreach ($methodTags as $methodTag) {
- $method = new MethodDescriptor();
- $method->setName($methodTag->getMethodName());
- $method->setDescription($methodTag->getDescription());
- $method->setParent($this);
- $methods->add($method);
- }
- return $methods;
- }
- /**
- * {@inheritDoc}
- */
- public function setProperties(Collection $properties)
- {
- $this->properties = $properties;
- }
- /**
- * {@inheritDoc}
- */
- public function getProperties()
- {
- return $this->properties;
- }
- /**
- * {@inheritDoc}
- */
- public function getInheritedProperties()
- {
- return new Collection();
- }
- /**
- * @return Collection
- */
- public function getMagicProperties()
- {
- /** @var Collection $propertyTags */
- $propertyTags = clone $this->getTags()->get('property', new Collection());
- $propertyTags->merge($this->getTags()->get('property-read', new Collection()));
- $propertyTags->merge($this->getTags()->get('property-write', new Collection()));
- $properties = new Collection();
- /** @var Tag\PropertyDescriptor $propertyTag */
- foreach ($propertyTags as $propertyTag) {
- $property = new PropertyDescriptor();
- $property->setName($propertyTag->getVariableName());
- $property->setDescription($propertyTag->getDescription());
- $property->setTypes($propertyTag->getTypes());
- $property->setParent($this);
- $properties->add($property);
- }
- return $properties;
- }
- /**
- * @param string $package
- */
- public function setPackage($package)
- {
- parent::setPackage($package);
- foreach ($this->getProperties() as $property) {
- $property->setPackage($package);
- }
- foreach ($this->getMethods() as $method) {
- $method->setPackage($package);
- }
- }
- /**
- * Sets a collection of all traits used by this class.
- *
- * @param Collection $usedTraits
- *
- * @return void
- */
- public function setUsedTraits($usedTraits)
- {
- $this->usedTraits = $usedTraits;
- }
- /**
- * Returns the traits used by this class.
- *
- * Returned values may either be a string (when the Trait is not in this project) or a TraitDescriptor.
- *
- * @return Collection
- */
- public function getUsedTraits()
- {
- return $this->usedTraits;
- }
- }