public function getFactoryManager()
{
if (!$this->started) {
throw new LogicException('Puli was not started');
}
if (!$this->factoryManager && $this->context instanceof ProjectContext) {
$this->factoryManager = new FactoryManagerImpl($this->context, new DefaultGeneratorRegistry(), new ClassWriter());
// Don't set via the constructor to prevent cyclic dependencies
$this->factoryManager->setModules($this->getModuleManager()->getModules());
$this->factoryManager->setServers($this->getServerManager()->getServers());
}
return $this->factoryManager;
}