public function loadConfiguration()
{
$configDefaults = ['metadataParserFactory' => MetadataParserFactory::class];
$config = $this->getConfig($configDefaults);
if (!isset($config['model'])) {
throw new InvalidStateException('Model is not defined.');
}
$repositories = $this->getRepositoryList($config['model']);
$repositoriesConfig = Model::getConfiguration($repositories);
$this->setupCache();
$this->setupDependencyProvider();
$this->setupMetadataParserFactory($config['metadataParserFactory']);
$this->setupRepositoryLoader($repositories);
$this->setupMetadataStorage($repositoriesConfig);
$this->setupRepositoriesAndMappers($repositories);
$this->setupModel($config['model'], $repositoriesConfig);
}