public function merge(self $attribute)
    {
        if ($this->propertyName === null && $attribute->hasPropertyName()) {
            $this->propertyName = $attribute->getPropertyName();
        }

        if ($this->type === null && $attribute->hasType()) {
            $this->type = $attribute->getType();
        }

        if ($this->many === null && $attribute->hasManyDefined()) {
            $this->many = $attribute->isMany();
        }

        if (empty($this->typeParameters)) {
            $this->typeParameters = $attribute->getTypeParameters();
        }

        if ($this->processNull === null && $attribute->hasProcessNull()) {
            $this->processNull = $attribute->getProcessNull();
        }
    }