. */ namespace Doctrine\ORM\Query; /** * Defines a Query Parameter. * * @link www.doctrine-project.org * @since 2.3 * @author Guilherme Blanco */ class Parameter { /** * The parameter name. * * @var string */ private $name; /** * The parameter value. * * @var mixed */ private $value; /** * The parameter type. * * @var mixed */ private $type; /** * Constructor. * * @param string $name Parameter name * @param mixed $value Parameter value * @param mixed $type Parameter type */ public function __construct($name, $value, $type = null) { $this->name = trim($name, ':'); $this->setValue($value, $type); } /** * Retrieves the Parameter name. * * @return string */ public function getName() { return $this->name; } /** * Retrieves the Parameter value. * * @return mixed */ public function getValue() { return $this->value; } /** * Retrieves the Parameter type. * * @return mixed */ public function getType() { return $this->type; } /** * Defines the Parameter value. * * @param mixed $value Parameter value. * @param mixed $type Parameter type. */ public function setValue($value, $type = null) { $this->value = $value; $this->type = $type ?: ParameterTypeInferer::inferType($value); } }