@Override public <T extends Event> void addEventListener( final EventType<T> eventType, final EventListener<? super T> listener) { builder.addEventListener(eventType, listener); }
/** * Adds a listener at the given definition builder which resets this builder * when a reset of the definition builder happens. This way it is ensured * that this builder produces a new combined configuration when its * definition configuration changes. * * @param defBuilder the definition builder */ private void addDefinitionBuilderChangeListener( final ConfigurationBuilder<? extends HierarchicalConfiguration<?>> defBuilder) { defBuilder.addEventListener(ConfigurationBuilderEvent.RESET, new EventListener<ConfigurationBuilderEvent>() { @Override public void onEvent(final ConfigurationBuilderEvent event) { synchronized (CombinedConfigurationBuilder.this) { reset(); definitionBuilder = defBuilder; } } }); }
/** * Creates a configuration builder based on a source declaration in the * definition configuration. * * @param decl the current {@code ConfigurationDeclaration} * @return the newly created builder * @throws ConfigurationException if an error occurs */ private ConfigurationBuilder<? extends Configuration> createConfigurationBuilder( final ConfigurationDeclaration decl) throws ConfigurationException { final ConfigurationBuilderProvider provider = providerForTag(decl.getConfiguration().getRootElementName()); if (provider == null) { throw new ConfigurationException( "Unsupported configuration source: " + decl.getConfiguration().getRootElementName()); } final ConfigurationBuilder<? extends Configuration> builder = provider.getConfigurationBuilder(decl); if (decl.getName() != null) { namedBuilders.put(decl.getName(), builder); } allBuilders.add(builder); builder.addEventListener(ConfigurationBuilderEvent.RESET, changeListener); return builder; }