<?php

namespace ContainerIrz6C8o;
include_once \dirname(__DIR__, 5).''.\DIRECTORY_SEPARATOR.'vendor'.\DIRECTORY_SEPARATOR.'doctrine'.\DIRECTORY_SEPARATOR.'dbal'.\DIRECTORY_SEPARATOR.'lib'.\DIRECTORY_SEPARATOR.'Doctrine'.\DIRECTORY_SEPARATOR.'DBAL'.\DIRECTORY_SEPARATOR.'Schema'.\DIRECTORY_SEPARATOR.'AbstractAsset.php';
include_once \dirname(__DIR__, 5).''.\DIRECTORY_SEPARATOR.'vendor'.\DIRECTORY_SEPARATOR.'doctrine'.\DIRECTORY_SEPARATOR.'dbal'.\DIRECTORY_SEPARATOR.'lib'.\DIRECTORY_SEPARATOR.'Doctrine'.\DIRECTORY_SEPARATOR.'DBAL'.\DIRECTORY_SEPARATOR.'Schema'.\DIRECTORY_SEPARATOR.'Schema.php';
include_once \dirname(__DIR__, 5).''.\DIRECTORY_SEPARATOR.'vendor'.\DIRECTORY_SEPARATOR.'jackalope'.\DIRECTORY_SEPARATOR.'jackalope-doctrine-dbal'.\DIRECTORY_SEPARATOR.'src'.\DIRECTORY_SEPARATOR.'Jackalope'.\DIRECTORY_SEPARATOR.'Transport'.\DIRECTORY_SEPARATOR.'DoctrineDBAL'.\DIRECTORY_SEPARATOR.'RepositorySchema.php';

class RepositorySchema_fb41d27 extends \Jackalope\Transport\DoctrineDBAL\RepositorySchema 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 addToSchema(\Doctrine\DBAL\Schema\Schema $schema)
    {
        $this->initializer70e27 && ($this->initializer70e27->__invoke($valueHolder3c4b1, $this, 'addToSchema', array('schema' => $schema), $this->initializer70e27) || 1) && $this->valueHolder3c4b1 = $valueHolder3c4b1;

        return $this->valueHolder3c4b1->addToSchema($schema);
    }

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

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

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

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

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

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

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

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

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

        return $this->valueHolder3c4b1->getTable($name);
    }

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

        return $this->valueHolder3c4b1->hasNamespace($name);
    }

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

        return $this->valueHolder3c4b1->hasTable($name);
    }

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

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

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

        return $this->valueHolder3c4b1->hasSequence($name);
    }

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

        return $this->valueHolder3c4b1->getSequence($name);
    }

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

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

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

        return $this->valueHolder3c4b1->createNamespace($name);
    }

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

        return $this->valueHolder3c4b1->createTable($name);
    }

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

        return $this->valueHolder3c4b1->renameTable($oldName, $newName);
    }

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

        return $this->valueHolder3c4b1->dropTable($name);
    }

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

        return $this->valueHolder3c4b1->createSequence($name, $allocationSize, $initialValue);
    }

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

        return $this->valueHolder3c4b1->dropSequence($name);
    }

    public function toSql(\Doctrine\DBAL\Platforms\AbstractPlatform $platform)
    {
        $this->initializer70e27 && ($this->initializer70e27->__invoke($valueHolder3c4b1, $this, 'toSql', array('platform' => $platform), $this->initializer70e27) || 1) && $this->valueHolder3c4b1 = $valueHolder3c4b1;

        return $this->valueHolder3c4b1->toSql($platform);
    }

    public function toDropSql(\Doctrine\DBAL\Platforms\AbstractPlatform $platform)
    {
        $this->initializer70e27 && ($this->initializer70e27->__invoke($valueHolder3c4b1, $this, 'toDropSql', array('platform' => $platform), $this->initializer70e27) || 1) && $this->valueHolder3c4b1 = $valueHolder3c4b1;

        return $this->valueHolder3c4b1->toDropSql($platform);
    }

    public function getMigrateToSql(\Doctrine\DBAL\Schema\Schema $toSchema, \Doctrine\DBAL\Platforms\AbstractPlatform $platform)
    {
        $this->initializer70e27 && ($this->initializer70e27->__invoke($valueHolder3c4b1, $this, 'getMigrateToSql', array('toSchema' => $toSchema, 'platform' => $platform), $this->initializer70e27) || 1) && $this->valueHolder3c4b1 = $valueHolder3c4b1;

        return $this->valueHolder3c4b1->getMigrateToSql($toSchema, $platform);
    }

    public function getMigrateFromSql(\Doctrine\DBAL\Schema\Schema $fromSchema, \Doctrine\DBAL\Platforms\AbstractPlatform $platform)
    {
        $this->initializer70e27 && ($this->initializer70e27->__invoke($valueHolder3c4b1, $this, 'getMigrateFromSql', array('fromSchema' => $fromSchema, 'platform' => $platform), $this->initializer70e27) || 1) && $this->valueHolder3c4b1 = $valueHolder3c4b1;

        return $this->valueHolder3c4b1->getMigrateFromSql($fromSchema, $platform);
    }

    public function visit(\Doctrine\DBAL\Schema\Visitor\Visitor $visitor)
    {
        $this->initializer70e27 && ($this->initializer70e27->__invoke($valueHolder3c4b1, $this, 'visit', array('visitor' => $visitor), $this->initializer70e27) || 1) && $this->valueHolder3c4b1 = $valueHolder3c4b1;

        return $this->valueHolder3c4b1->visit($visitor);
    }

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

        return $this->valueHolder3c4b1->isInDefaultNamespace($defaultNamespaceName);
    }

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

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

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

        return $this->valueHolder3c4b1->getShortestName($defaultNamespaceName);
    }

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

        return $this->valueHolder3c4b1->getFullQualifiedName($defaultNamespaceName);
    }

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

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

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

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

    public function getQuotedName(\Doctrine\DBAL\Platforms\AbstractPlatform $platform)
    {
        $this->initializer70e27 && ($this->initializer70e27->__invoke($valueHolder3c4b1, $this, 'getQuotedName', array('platform' => $platform), $this->initializer70e27) || 1) && $this->valueHolder3c4b1 = $valueHolder3c4b1;

        return $this->valueHolder3c4b1->getQuotedName($platform);
    }

    /**
     * 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->_tables, $instance->_sequences, $instance->_schemaConfig, $instance->_name, $instance->_namespace, $instance->_quoted);

        \Closure::bind(function (\Jackalope\Transport\DoctrineDBAL\RepositorySchema $instance) {
            unset($instance->connection, $instance->maxIndexLength);
        }, $instance, 'Jackalope\\Transport\\DoctrineDBAL\\RepositorySchema')->__invoke($instance);

        \Closure::bind(function (\Doctrine\DBAL\Schema\Schema $instance) {
            unset($instance->namespaces);
        }, $instance, 'Doctrine\\DBAL\\Schema\\Schema')->__invoke($instance);

        $instance->initializer70e27 = $initializer;

        return $instance;
    }

    public function __construct(array $options = [], ?\Doctrine\DBAL\Connection $connection = null)
    {
        static $reflection;

        if (! $this->valueHolder3c4b1) {
            $reflection = $reflection ?? new \ReflectionClass('Jackalope\\Transport\\DoctrineDBAL\\RepositorySchema');
            $this->valueHolder3c4b1 = $reflection->newInstanceWithoutConstructor();
        unset($this->_tables, $this->_sequences, $this->_schemaConfig, $this->_name, $this->_namespace, $this->_quoted);

        \Closure::bind(function (\Jackalope\Transport\DoctrineDBAL\RepositorySchema $instance) {
            unset($instance->connection, $instance->maxIndexLength);
        }, $this, 'Jackalope\\Transport\\DoctrineDBAL\\RepositorySchema')->__invoke($this);

        \Closure::bind(function (\Doctrine\DBAL\Schema\Schema $instance) {
            unset($instance->namespaces);
        }, $this, 'Doctrine\\DBAL\\Schema\\Schema')->__invoke($this);

        }

        $this->valueHolder3c4b1->__construct($options, $connection);
    }

    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->_tables, $this->_sequences, $this->_schemaConfig, $this->_name, $this->_namespace, $this->_quoted);

        \Closure::bind(function (\Jackalope\Transport\DoctrineDBAL\RepositorySchema $instance) {
            unset($instance->connection, $instance->maxIndexLength);
        }, $this, 'Jackalope\\Transport\\DoctrineDBAL\\RepositorySchema')->__invoke($this);

        \Closure::bind(function (\Doctrine\DBAL\Schema\Schema $instance) {
            unset($instance->namespaces);
        }, $this, 'Doctrine\\DBAL\\Schema\\Schema')->__invoke($this);
    }

    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('RepositorySchema_fb41d27', false)) {
    \class_alias(__NAMESPACE__.'\\RepositorySchema_fb41d27', 'RepositorySchema_fb41d27', false);
}
