Version 1
[yaffs-website] / vendor / phpdocumentor / reflection-docblock / src / phpDocumentor / Reflection / DocBlock / Tag / ReturnTag.php
diff --git a/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/ReturnTag.php b/vendor/phpdocumentor/reflection-docblock/src/phpDocumentor/Reflection/DocBlock/Tag/ReturnTag.php
new file mode 100644 (file)
index 0000000..9293db9
--- /dev/null
@@ -0,0 +1,99 @@
+<?php
+/**
+ * phpDocumentor
+ *
+ * PHP Version 5.3
+ *
+ * @author    Mike van Riel <mike.vanriel@naenius.com>
+ * @copyright 2010-2011 Mike van Riel / Naenius (http://www.naenius.com)
+ * @license   http://www.opensource.org/licenses/mit-license.php MIT
+ * @link      http://phpdoc.org
+ */
+
+namespace phpDocumentor\Reflection\DocBlock\Tag;
+
+use phpDocumentor\Reflection\DocBlock\Tag;
+use phpDocumentor\Reflection\DocBlock\Type\Collection;
+
+/**
+ * Reflection class for a @return tag in a Docblock.
+ *
+ * @author  Mike van Riel <mike.vanriel@naenius.com>
+ * @license http://www.opensource.org/licenses/mit-license.php MIT
+ * @link    http://phpdoc.org
+ */
+class ReturnTag extends Tag
+{
+    /** @var string The raw type component. */
+    protected $type = '';
+    
+    /** @var Collection The parsed type component. */
+    protected $types = null;
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getContent()
+    {
+        if (null === $this->content) {
+            $this->content = "{$this->type} {$this->description}";
+        }
+
+        return $this->content;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function setContent($content)
+    {
+        parent::setContent($content);
+
+        $parts = preg_split('/\s+/Su', $this->description, 2);
+
+        // any output is considered a type
+        $this->type = $parts[0];
+        $this->types = null;
+
+        $this->setDescription(isset($parts[1]) ? $parts[1] : '');
+
+        $this->content = $content;
+        return $this;
+    }
+
+    /**
+     * Returns the unique types of the variable.
+     *
+     * @return string[]
+     */
+    public function getTypes()
+    {
+        return $this->getTypesCollection()->getArrayCopy();
+    }
+
+    /**
+     * Returns the type section of the variable.
+     *
+     * @return string
+     */
+    public function getType()
+    {
+        return (string) $this->getTypesCollection();
+    }
+
+    /**
+     * Returns the type collection.
+     * 
+     * @return void
+     */
+    protected function getTypesCollection()
+    {
+        if (null === $this->types) {
+            $this->types = new Collection(
+                array($this->type),
+                $this->docblock ? $this->docblock->getContext() : null
+            );
+        }
+        return $this->types;
+    }
+}