private function getApplicationNode(): NodeDefinition
    {
        $treeBuilder = new TreeBuilder('application');

        return $treeBuilder
            ->getRootNode()
            ->addDefaultsIfNotSet()
            ->children()
                ->arrayNode('version')
                    ->addDefaultsIfNotSet()
                    ->children()
                        ->scalarNode('file_path')
                            ->info('Path of a file who contains version of the application')
                            ->defaultValue(sprintf('%%kernel.project_dir%%/%s', ApplicationService::VERSION_FILE_NAME))
                            ->cannotBeEmpty()
                        ->end()
                    ->end()
                ->end()
                ->scalarNode('name')
                    ->info('Name of application. May be displayed near logo.')
                    ->defaultValue('')
                ->end()
                ->scalarNode('description')
                    ->info('Description of application. May be displayed near logo.')
                    ->defaultValue('')
                ->end()
                ->scalarNode('empty_value_replacement')
                    ->info('Replacement of empty value. May be used to filter values in templates/views.')
                    ->defaultValue('-')
                ->end()
            ->end()
        ;
    }