/**
  * {@inheritdoc}
  */
 public function getConfigTreeBuilder()
 {
     $treeBuilder = new TreeBuilder();
     $rootNode = $treeBuilder->root('yahoo_japan_config_cache');
     $rootNode->children()->booleanNode('cache_warmup')->defaultValue(true)->end()->booleanNode('cache_restore')->defaultValue(false)->end()->arrayNode('locale')->children()->booleanNode('enabled')->defaultValue(false)->end()->arrayNode('locales')->prototype('scalar')->end()->end()->integerNode('listener_priority')->defaultValue(0)->validate()->ifTrue(function ($priority) {
         return $priority >= Configuration::getPriorityMax();
     })->thenInvalid('LocaleListener priority[%s] must be less than LocaleListener priority[' . Configuration::getPriorityMax() . ']')->end()->end()->scalarNode('loader')->defaultValue(null)->end()->end()->validate()->ifTrue(function ($locale) {
         return $locale['enabled'] && $locale['locales'] === array();
     })->thenInvalid('yahoo_japan_config_cache.locale.locales must be configured.')->end()->end()->end();
     return $treeBuilder;
 }