public function setType($type)
{
if (!array_key_exists($type, static::$types)) {
throw new \InvalidArgumentException(sprintf('"%s" is not a valid type. You must pick one among "%"', $type, implode('", "', array_keys(static::$types))));
}
$this->type = $type;
return $this;
}