public function setMetadataAttribute(string $name, $value)
    {
        if (array_key_exists($name, $this->metadata)) {
            throw new MetadataAttributeOverrideException($this, $name);
        }

        $this->metadata[$name] = $value;
    }