<?php 
 
/* 
 * This file is part of the Symfony package. 
 * 
 * (c) Fabien Potencier <fabien@symfony.com> 
 * 
 * For the full copyright and license information, please view the LICENSE 
 * file that was distributed with this source code. 
 */ 
 
namespace Symfony\Bundle\FrameworkBundle\Command; 
 
use Symfony\Component\Console\Command\Command; 
use Symfony\Component\DependencyInjection\ContainerAwareInterface; 
use Symfony\Component\DependencyInjection\ContainerInterface; 
 
@trigger_error(sprintf('The "%s" class is deprecated since Symfony 4.2, use "%s" with dependency injection instead.', ContainerAwareCommand::class, Command::class), \E_USER_DEPRECATED); 
 
/** 
 * Command. 
 * 
 * @author Fabien Potencier <fabien@symfony.com> 
 * 
 * @deprecated since Symfony 4.2, use {@see Command} instead. 
 */ 
abstract class ContainerAwareCommand extends Command implements ContainerAwareInterface 
{ 
    /** 
     * @var ContainerInterface|null 
     */ 
    private $container; 
 
    /** 
     * @return ContainerInterface 
     * 
     * @throws \LogicException 
     */ 
    protected function getContainer() 
    { 
        if (null === $this->container) { 
            $application = $this->getApplication(); 
            if (null === $application) { 
                throw new \LogicException('The container cannot be retrieved as the application instance is not yet set.'); 
            } 
 
            $this->container = $application->getKernel()->getContainer(); 
        } 
 
        return $this->container; 
    } 
 
    /** 
     * {@inheritdoc} 
     */ 
    public function setContainer(ContainerInterface $container = null) 
    { 
        $this->container = $container; 
    } 
}