protected function loadNodeTypes()
    {
        $this->fullNodeTypeConfigurations = $this->fullConfigurationCache->get('fullNodeTypeConfigurations');
        $fillFullConfigurationCache = !is_array($this->fullNodeTypeConfigurations);

        $completeNodeTypeConfiguration = $this->configurationManager->getConfiguration('NodeTypes');

        foreach (array_keys($completeNodeTypeConfiguration) as $nodeTypeName) {
            if (!is_array($completeNodeTypeConfiguration[$nodeTypeName])) {
                continue;
            }
            $nodeType = $this->loadNodeType($nodeTypeName, $completeNodeTypeConfiguration, (isset($this->fullNodeTypeConfigurations[$nodeTypeName]) ? $this->fullNodeTypeConfigurations[$nodeTypeName] : null));
            if ($fillFullConfigurationCache) {
                $this->fullNodeTypeConfigurations[$nodeTypeName] = $nodeType->getFullConfiguration();
            }
        }

        if ($fillFullConfigurationCache) {
            $this->fullConfigurationCache->set('fullNodeTypeConfigurations', $this->fullNodeTypeConfigurations);
        }
        $this->fullNodeTypeConfigurations = null;
    }