public function generate()
{
$template = $this->templateFactory->createForType(TCO::TREE);
$classes = $this->parserResult->getClasses();
foreach ($classes as $className => $reflection) {
if ($this->canBeProcessed($reflection)) {
$this->addToTreeByReflection($reflection);
}
}
$this->sortTreeStorageElements();
$template->setParameters(['classTree' => new Tree($this->treeStorage[Elements::CLASSES], $classes), 'interfaceTree' => new Tree($this->treeStorage[Elements::INTERFACES], $classes), 'traitTree' => new Tree($this->treeStorage[Elements::TRAITS], $classes), 'exceptionTree' => new Tree($this->treeStorage[Elements::EXCEPTIONS], $classes)]);
$template->save();
}