# give/4.16.8.1/src/Framework/FieldsAPI/Concerns/NameCollision.php

GiveWP – Donation Plugin and Fundraising Platform, version 4.16.8.1. 41 lines.

- Page: https://pluginprobe.com/plugins/give/4.16.8.1/code/src/Framework/FieldsAPI/Concerns/NameCollision.php
- Raw: https://pluginprobe.com/plugins/give/4.16.8.1/raw/src/Framework/FieldsAPI/Concerns/NameCollision.php
- Modified: 2023-08-11T21:18:48+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/give/4.16.8.1/code/src/Framework/FieldsAPI/Concerns/NameCollision.php#L10-L20`.

```php
<?php

namespace Give\Framework\FieldsAPI\Concerns;

use Give\Framework\FieldsAPI\Contracts\Collection;
use Give\Framework\FieldsAPI\Contracts\Node;
use Give\Framework\FieldsAPI\Exceptions\NameCollisionException;

/**
 * @since 2.10.2
 */
trait NameCollision
{

    /**
     * @since 2.10.2
     *
     * @throws NameCollisionException
     */
    public function checkNameCollisionDeep(Node $node)
    {
        $this->checkNameCollision($node);
        if ($node instanceof Collection) {
            $node->walk([$this, 'checkNameCollision']);
        }
    }

    /**
     * @since 2.32.0 add existing and incoming nodes to exception
     * @since 2.10.2
     *
     * @throws NameCollisionException
     */
    public function checkNameCollision(Node $node)
    {
        if ($existingNode = $this->getNodeByName($node->getName())) {
            throw new NameCollisionException($node->getName(), $existingNode, $node);
        }
    }
}

```
