1<?php 2/** 3 * This file is part of phpDocumentor. 4 * 5 * For the full copyright and license information, please view the LICENSE 6 * file that was distributed with this source code. 7 * 8 * @copyright 2010-2017 Mike van Riel<mike@phpdoc.org> 9 * @license http://www.opensource.org/licenses/mit-license.php MIT 10 * @link http://phpdoc.org 11 */ 12 13namespace phpDocumentor\Reflection\Types; 14 15use phpDocumentor\Reflection\Type; 16 17/** 18 * Value Object representing a nullable type. The real type is wrapped. 19 */ 20final class Nullable implements Type 21{ 22 /** 23 * @var Type 24 */ 25 private $realType; 26 27 /** 28 * Initialises this nullable type using the real type embedded 29 * 30 * @param Type $realType 31 */ 32 public function __construct(Type $realType) 33 { 34 $this->realType = $realType; 35 } 36 37 /** 38 * Provide access to the actual type directly, if needed. 39 * 40 * @return Type 41 */ 42 public function getActualType() 43 { 44 return $this->realType; 45 } 46 47 /** 48 * Returns a rendered output of the Type as it would be used in a DocBlock. 49 * 50 * @return string 51 */ 52 public function __toString() 53 { 54 return '?' . $this->realType->__toString(); 55 } 56} 57