<?php

namespace ContainerFeOmBal;
include_once \dirname(__DIR__, 5).'/vendor/sulu/sulu/src/Sulu/Component/Persistence/Repository/RepositoryInterface.php';
include_once \dirname(__DIR__, 5).'/vendor/sulu/sulu/src/Sulu/Component/Persistence/Repository/ORM/EntityRepository.php';
include_once \dirname(__DIR__, 5).'/vendor/sulu/sulu/src/Sulu/Bundle/CategoryBundle/Entity/CategoryTranslationRepositoryInterface.php';
include_once \dirname(__DIR__, 5).'/vendor/sulu/sulu/src/Sulu/Bundle/CategoryBundle/Entity/CategoryTranslationRepository.php';

class CategoryTranslationRepository_5ea8703 extends \Sulu\Bundle\CategoryBundle\Entity\CategoryTranslationRepository implements \ProxyManager\Proxy\VirtualProxyInterface
{

    /**
     * @var \Closure|null initializer responsible for generating the wrapped object
     */
    private $valueHolder3c4b1 = null;

    /**
     * @var \Closure|null initializer responsible for generating the wrapped object
     */
    private $initializer70e27 = null;

    /**
     * @var bool[] map of public properties of the parent class
     */
    private static $publicProperties6ead2 = [
        
    ];

    public function createNew()
    {
        $this->initializer70e27 && ($this->initializer70e27->__invoke($valueHolder3c4b1, $this, 'createNew', array(), $this->initializer70e27) || 1) && $this->valueHolder3c4b1 = $valueHolder3c4b1;

        return $this->valueHolder3c4b1->createNew();
    }

    public function createQueryBuilder($alias, $indexBy = null)
    {
        $this->initializer70e27 && ($this->initializer70e27->__invoke($valueHolder3c4b1, $this, 'createQueryBuilder', array('alias' => $alias, 'indexBy' => $indexBy), $this->initializer70e27) || 1) && $this->valueHolder3c4b1 = $valueHolder3c4b1;

        return $this->valueHolder3c4b1->createQueryBuilder($alias, $indexBy);
    }

    public function createResultSetMappingBuilder($alias)
    {
        $this->initializer70e27 && ($this->initializer70e27->__invoke($valueHolder3c4b1, $this, 'createResultSetMappingBuilder', array('alias' => $alias), $this->initializer70e27) || 1) && $this->valueHolder3c4b1 = $valueHolder3c4b1;

        return $this->valueHolder3c4b1->createResultSetMappingBuilder($alias);
    }

    public function createNamedQuery($queryName)
    {
        $this->initializer70e27 && ($this->initializer70e27->__invoke($valueHolder3c4b1, $this, 'createNamedQuery', array('queryName' => $queryName), $this->initializer70e27) || 1) && $this->valueHolder3c4b1 = $valueHolder3c4b1;

        return $this->valueHolder3c4b1->createNamedQuery($queryName);
    }

    public function createNativeNamedQuery($queryName)
    {
        $this->initializer70e27 && ($this->initializer70e27->__invoke($valueHolder3c4b1, $this, 'createNativeNamedQuery', array('queryName' => $queryName), $this->initializer70e27) || 1) && $this->valueHolder3c4b1 = $valueHolder3c4b1;

        return $this->valueHolder3c4b1->createNativeNamedQuery($queryName);
    }

    public function clear()
    {
        $this->initializer70e27 && ($this->initializer70e27->__invoke($valueHolder3c4b1, $this, 'clear', array(), $this->initializer70e27) || 1) && $this->valueHolder3c4b1 = $valueHolder3c4b1;

        return $this->valueHolder3c4b1->clear();
    }

    public function find($id, $lockMode = null, $lockVersion = null)
    {
        $this->initializer70e27 && ($this->initializer70e27->__invoke($valueHolder3c4b1, $this, 'find', array('id' => $id, 'lockMode' => $lockMode, 'lockVersion' => $lockVersion), $this->initializer70e27) || 1) && $this->valueHolder3c4b1 = $valueHolder3c4b1;

        return $this->valueHolder3c4b1->find($id, $lockMode, $lockVersion);
    }

    public function findAll()
    {
        $this->initializer70e27 && ($this->initializer70e27->__invoke($valueHolder3c4b1, $this, 'findAll', array(), $this->initializer70e27) || 1) && $this->valueHolder3c4b1 = $valueHolder3c4b1;

        return $this->valueHolder3c4b1->findAll();
    }

    public function findBy(array $criteria, ?array $orderBy = null, $limit = null, $offset = null)
    {
        $this->initializer70e27 && ($this->initializer70e27->__invoke($valueHolder3c4b1, $this, 'findBy', array('criteria' => $criteria, 'orderBy' => $orderBy, 'limit' => $limit, 'offset' => $offset), $this->initializer70e27) || 1) && $this->valueHolder3c4b1 = $valueHolder3c4b1;

        return $this->valueHolder3c4b1->findBy($criteria, $orderBy, $limit, $offset);
    }

    public function findOneBy(array $criteria, ?array $orderBy = null)
    {
        $this->initializer70e27 && ($this->initializer70e27->__invoke($valueHolder3c4b1, $this, 'findOneBy', array('criteria' => $criteria, 'orderBy' => $orderBy), $this->initializer70e27) || 1) && $this->valueHolder3c4b1 = $valueHolder3c4b1;

        return $this->valueHolder3c4b1->findOneBy($criteria, $orderBy);
    }

    public function count(array $criteria)
    {
        $this->initializer70e27 && ($this->initializer70e27->__invoke($valueHolder3c4b1, $this, 'count', array('criteria' => $criteria), $this->initializer70e27) || 1) && $this->valueHolder3c4b1 = $valueHolder3c4b1;

        return $this->valueHolder3c4b1->count($criteria);
    }

    public function __call($method, $arguments)
    {
        $this->initializer70e27 && ($this->initializer70e27->__invoke($valueHolder3c4b1, $this, '__call', array('method' => $method, 'arguments' => $arguments), $this->initializer70e27) || 1) && $this->valueHolder3c4b1 = $valueHolder3c4b1;

        return $this->valueHolder3c4b1->__call($method, $arguments);
    }

    public function getClassName()
    {
        $this->initializer70e27 && ($this->initializer70e27->__invoke($valueHolder3c4b1, $this, 'getClassName', array(), $this->initializer70e27) || 1) && $this->valueHolder3c4b1 = $valueHolder3c4b1;

        return $this->valueHolder3c4b1->getClassName();
    }

    public function matching(\Doctrine\Common\Collections\Criteria $criteria)
    {
        $this->initializer70e27 && ($this->initializer70e27->__invoke($valueHolder3c4b1, $this, 'matching', array('criteria' => $criteria), $this->initializer70e27) || 1) && $this->valueHolder3c4b1 = $valueHolder3c4b1;

        return $this->valueHolder3c4b1->matching($criteria);
    }

    /**
     * Constructor for lazy initialization
     *
     * @param \Closure|null $initializer
     */
    public static function staticProxyConstructor($initializer)
    {
        static $reflection;

        $reflection = $reflection ?? new \ReflectionClass(__CLASS__);
        $instance = $reflection->newInstanceWithoutConstructor();

        unset($instance->_entityName, $instance->_em, $instance->_class);

        $instance->initializer70e27 = $initializer;

        return $instance;
    }

    public function __construct(\Doctrine\ORM\EntityManagerInterface $em, \Doctrine\ORM\Mapping\ClassMetadata $class)
    {
        static $reflection;

        if (! $this->valueHolder3c4b1) {
            $reflection = $reflection ?? new \ReflectionClass('Sulu\\Bundle\\CategoryBundle\\Entity\\CategoryTranslationRepository');
            $this->valueHolder3c4b1 = $reflection->newInstanceWithoutConstructor();
        unset($this->_entityName, $this->_em, $this->_class);

        }

        $this->valueHolder3c4b1->__construct($em, $class);
    }

    public function & __get($name)
    {
        $this->initializer70e27 && ($this->initializer70e27->__invoke($valueHolder3c4b1, $this, '__get', ['name' => $name], $this->initializer70e27) || 1) && $this->valueHolder3c4b1 = $valueHolder3c4b1;

        if (isset(self::$publicProperties6ead2[$name])) {
            return $this->valueHolder3c4b1->$name;
        }

        $realInstanceReflection = new \ReflectionClass(get_parent_class($this));

        if (! $realInstanceReflection->hasProperty($name)) {
            $targetObject = $this->valueHolder3c4b1;

            $backtrace = debug_backtrace(false);
            trigger_error(
                sprintf(
                    'Undefined property: %s::$%s in %s on line %s',
                    get_parent_class($this),
                    $name,
                    $backtrace[0]['file'],
                    $backtrace[0]['line']
                ),
                \E_USER_NOTICE
            );
            return $targetObject->$name;
            return;
        }

        $targetObject = $this->valueHolder3c4b1;
        $accessor = function & () use ($targetObject, $name) {
            return $targetObject->$name;
        };
        $backtrace = debug_backtrace(true);
        $scopeObject = isset($backtrace[1]['object']) ? $backtrace[1]['object'] : new \ProxyManager\Stub\EmptyClassStub();
        $accessor = $accessor->bindTo($scopeObject, get_class($scopeObject));
        $returnValue = & $accessor();

        return $returnValue;
    }

    public function __set($name, $value)
    {
        $this->initializer70e27 && ($this->initializer70e27->__invoke($valueHolder3c4b1, $this, '__set', array('name' => $name, 'value' => $value), $this->initializer70e27) || 1) && $this->valueHolder3c4b1 = $valueHolder3c4b1;

        $realInstanceReflection = new \ReflectionClass(get_parent_class($this));

        if (! $realInstanceReflection->hasProperty($name)) {
            $targetObject = $this->valueHolder3c4b1;

            return $targetObject->$name = $value;
            return;
        }

        $targetObject = $this->valueHolder3c4b1;
        $accessor = function & () use ($targetObject, $name, $value) {
            return $targetObject->$name = $value;
        };
        $backtrace = debug_backtrace(true);
        $scopeObject = isset($backtrace[1]['object']) ? $backtrace[1]['object'] : new \ProxyManager\Stub\EmptyClassStub();
        $accessor = $accessor->bindTo($scopeObject, get_class($scopeObject));
        $returnValue = & $accessor();

        return $returnValue;
    }

    public function __isset($name)
    {
        $this->initializer70e27 && ($this->initializer70e27->__invoke($valueHolder3c4b1, $this, '__isset', array('name' => $name), $this->initializer70e27) || 1) && $this->valueHolder3c4b1 = $valueHolder3c4b1;

        $realInstanceReflection = new \ReflectionClass(get_parent_class($this));

        if (! $realInstanceReflection->hasProperty($name)) {
            $targetObject = $this->valueHolder3c4b1;

            return isset($targetObject->$name);
            return;
        }

        $targetObject = $this->valueHolder3c4b1;
        $accessor = function () use ($targetObject, $name) {
            return isset($targetObject->$name);
        };
        $backtrace = debug_backtrace(true);
        $scopeObject = isset($backtrace[1]['object']) ? $backtrace[1]['object'] : new \ProxyManager\Stub\EmptyClassStub();
        $accessor = $accessor->bindTo($scopeObject, get_class($scopeObject));
        $returnValue = $accessor();

        return $returnValue;
    }

    public function __unset($name)
    {
        $this->initializer70e27 && ($this->initializer70e27->__invoke($valueHolder3c4b1, $this, '__unset', array('name' => $name), $this->initializer70e27) || 1) && $this->valueHolder3c4b1 = $valueHolder3c4b1;

        $realInstanceReflection = new \ReflectionClass(get_parent_class($this));

        if (! $realInstanceReflection->hasProperty($name)) {
            $targetObject = $this->valueHolder3c4b1;

            unset($targetObject->$name);
            return;
        }

        $targetObject = $this->valueHolder3c4b1;
        $accessor = function () use ($targetObject, $name) {
            unset($targetObject->$name);
        };
        $backtrace = debug_backtrace(true);
        $scopeObject = isset($backtrace[1]['object']) ? $backtrace[1]['object'] : new \ProxyManager\Stub\EmptyClassStub();
        $accessor = $accessor->bindTo($scopeObject, get_class($scopeObject));
        $returnValue = $accessor();

        return $returnValue;
    }

    public function __clone()
    {
        $this->initializer70e27 && ($this->initializer70e27->__invoke($valueHolder3c4b1, $this, '__clone', array(), $this->initializer70e27) || 1) && $this->valueHolder3c4b1 = $valueHolder3c4b1;

        $this->valueHolder3c4b1 = clone $this->valueHolder3c4b1;
    }

    public function __sleep()
    {
        $this->initializer70e27 && ($this->initializer70e27->__invoke($valueHolder3c4b1, $this, '__sleep', array(), $this->initializer70e27) || 1) && $this->valueHolder3c4b1 = $valueHolder3c4b1;

        return array('valueHolder3c4b1');
    }

    public function __wakeup()
    {
        unset($this->_entityName, $this->_em, $this->_class);
    }

    public function setProxyInitializer(\Closure $initializer = null)
    {
        $this->initializer70e27 = $initializer;
    }

    public function getProxyInitializer()
    {
        return $this->initializer70e27;
    }

    public function initializeProxy() : bool
    {
        return $this->initializer70e27 && ($this->initializer70e27->__invoke($valueHolder3c4b1, $this, 'initializeProxy', array(), $this->initializer70e27) || 1) && $this->valueHolder3c4b1 = $valueHolder3c4b1;
    }

    public function isProxyInitialized() : bool
    {
        return null !== $this->valueHolder3c4b1;
    }

    public function getWrappedValueHolderValue() : ?object
    {
        return $this->valueHolder3c4b1;
    }


}

if (!\class_exists('CategoryTranslationRepository_5ea8703', false)) {
    \class_alias(__NAMESPACE__.'\\CategoryTranslationRepository_5ea8703', 'CategoryTranslationRepository_5ea8703', false);
}
