public function setValue($value)
{
if (!$this->isPrimitive($value)) {
throw new \InvalidArgumentException('Use setValue() only for primitives and PhpConstant, anyway use setExpression() instead.');
}
$this->value = $value;
$this->hasValue = true;
return $this;
}