/**
  * @param string $namespace
  * @param string $name
  * @param ComponentParameterNode[] $parameters
  * @param array $attributes
  */
 public function __construct($namespace, $name, $parameters = [], array $attributes = [])
 {
     parent::__construct([], $attributes);
     $this->namespace = $namespace;
     $this->name = $name;
     $this->parameters = $parameters;
 }
 /**
  * @param string $name
  * @param Node[] $value
  * @param array $attributes
  */
 public function __construct($name, $value, array $attributes = array())
 {
     parent::__construct([], $attributes);
     if (!is_string($name) || strlen($name) === 0) {
         throw new \InvalidArgumentException('Component parameter name should be non-empty string literal');
     }
     $this->name = $name;
     $this->value = $value;
 }