protected function updateItem($name, $item)
    {
        if ($name !== $item->name) {
            if (isset($this->items[$item->name])) {
                throw new InvalidArgumentException("Unable to change the item name. The name '{$item->name}' is already used by another item.");
            }

            // Remove old item in case of renaming
            unset($this->items[$name]);

            if (isset($this->children[$name])) {
                $this->children[$item->name] = $this->children[$name];
                unset($this->children[$name]);
            }
            foreach ($this->children as &$children) {
                if (isset($children[$name])) {
                    $children[$item->name] = $children[$name];
                    unset($children[$name]);
                }
            }
            foreach ($this->assignments as &$assignments) {
                if (isset($assignments[$name])) {
                    $assignments[$item->name] = $assignments[$name];
                    $assignments[$item->name]->roleName = $item->name;
                    unset($assignments[$name]);
                }
            }
            $this->saveAssignments();
        }

        $this->items[$item->name] = $item;

        $this->saveItems();
        return true;
    }
protected function updateItem($name, $item)
    {
        if ($name !== $item->name) {
            if (isset($this->items[$item->name])) {
                throw new InvalidArgumentException("Unable to change the item name. The name '{$item->name}' is already used by another item.");
            }

            
            unset($this->items[$name]);

            if (isset($this->children[$name])) {
                $this->children[$item->name] = $this->children[$name];
                unset($this->children[$name]);
            }
            foreach ($this->children as &$children) {
                if (isset($children[$name])) {
                    $children[$item->name] = $children[$name];
                    unset($children[$name]);
                }
            }
            foreach ($this->assignments as &$assignments) {
                if (isset($assignments[$name])) {
                    $assignments[$item->name] = $assignments[$name];
                    $assignments[$item->name]->roleName = $item->name;
                    unset($assignments[$name]);
                }
            }
            $this->saveAssignments();
        }

        $this->items[$item->name] = $item;

        $this->saveItems();
        return true;
    }
protected function updateItem ( $ name , $ item ) { if ( $ name !== $ item -> name ) { if ( isset ( $ this -> items [ $ item -> name ] ) ) { throw new InvalidArgumentException ( "Unable to change the item name. The name '{$item->name}' is already used by another item." ) ; } // Remove old item in case of renaming unset ( $ this -> items [ $ name ] ) ; if ( isset ( $ this -> children [ $ name ] ) ) { $ this -> children [ $ item -> name ] = $ this -> children [ $ name ] ; unset ( $ this -> children [ $ name ] ) ; } foreach ( $ this -> children as & $ children ) { if ( isset ( $ children [ $ name ] ) ) { $ children [ $ item -> name ] = $ children [ $ name ] ; unset ( $ children [ $ name ] ) ; } } foreach ( $ this -> assignments as & $ assignments ) { if ( isset ( $ assignments [ $ name ] ) ) { $ assignments [ $ item -> name ] = $ assignments [ $ name ] ; $ assignments [ $ item -> name ] -> roleName = $ item -> name ; unset ( $ assignments [ $ name ] ) ; } } $ this -> saveAssignments ( ) ; } $ this -> items [ $ item -> name ] = $ item ; $ this -> saveItems ( ) ; return true ; }
{@inheritdoc}
{