protected function hasAbstract($name, $key, array $entry)
    {
        if (is_string($entry['entry'])) {
            $factory = $entry['entry'];
            $this->entries[$key]['entry'] = $entry['entry'] = new $factory();
        }

        /* @var $factory \Phower\Container\AbstractFactoryInterface */
        $factory = $entry['entry'];
        $container = $this->delegator ?: $this;

        if ($factory->canCreate($container, $name)) {
            $normalized = $this->normalizeName($name);
            $this->names[$normalized] = $name;
            $this->entries[$name] = $entry;
            return true;
        }

        return false;
    }