<?php

namespace ContainerBnDMNJc;

use Symfony\Component\DependencyInjection\Argument\RewindableGenerator;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\DependencyInjection\Exception\RuntimeException;

/*
 * @internal This class has been auto-generated by the Symfony Dependency Injection Component.
 */
class getSuluSecurity_PhpcrSecuritySubscriberService extends App_KernelProdContainer
{
    /*
     * Gets the private 'sulu_security.phpcr_security_subscriber' shared service.
     *
     * @return \Sulu\Bundle\SecurityBundle\EventListener\PhpcrSecuritySubscriber
     */
    public static function do($container, $lazyLoad = true)
    {
        $a = ($container->services['sulu_document_manager.document_manager'] ?? self::getSuluDocumentManager_DocumentManagerService($container));

        if (isset($container->privates['sulu_security.phpcr_security_subscriber'])) {
            return $container->privates['sulu_security.phpcr_security_subscriber'];
        }
        $b = ($container->services['doctrine.orm.default_entity_manager'] ?? self::getDoctrine_Orm_DefaultEntityManagerService($container));

        if (isset($container->privates['sulu_security.phpcr_security_subscriber'])) {
            return $container->privates['sulu_security.phpcr_security_subscriber'];
        }
        $c = ($container->services['sulu.repository.role'] ?? self::getSulu_Repository_RoleService($container));

        return $container->privates['sulu_security.phpcr_security_subscriber'] = new \Sulu\Bundle\SecurityBundle\EventListener\PhpcrSecuritySubscriber(new \Sulu\Component\Security\Authorization\AccessControl\PhpcrAccessControlProvider($a, $c, $container->parameters['permissions']), new \Sulu\Component\Security\Authorization\AccessControl\DoctrineAccessControlProvider($b, $c, ($container->services['sulu.repository.access_control'] ?? self::getSulu_Repository_AccessControlService($container)), ($container->services['sulu_security.mask_converter'] ?? self::getSuluSecurity_MaskConverterService($container))));
    }
}
