public function applyRoleMask(CNabuRole $nb_role, array $additional = null)
    {
        $total = $this->getSize();
        $count = 0;
        $this->iterate(function($key, INabuRoleMask $item) use($count, $nb_role, $additional) {
            if ($item->applyRoleMask($nb_role, $additional)) {
                $count++;
            } else {
                $this->removeItem($item);
            }
            return true;
        });

        $this->role_applied = true;

        return $total === 0 || ($count > 0 && $count <= $total);
    }