All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.codehaus.plexus.configuration.source.ChainedConfigurationSource Maven / Gradle / Ivy

The newest version!
package org.codehaus.plexus.configuration.source;

import java.util.List;

import org.codehaus.plexus.component.repository.ComponentDescriptor;
import org.codehaus.plexus.configuration.PlexusConfiguration;

/**
 * A configuration source that delegates to any number of underlying configuration sources. If you are an application
 * author and want to create a custom source of configuration for the components in your application then you would most
 * likely want to create a chained configuration source where you can decide the order of processing, but still have the
 * container perform its default behavior.
 * 
 * @author Jason van Zyl
 */
public class ChainedConfigurationSource
    implements ConfigurationSource
{
    private List configurationSources;

    public ChainedConfigurationSource( List configurationSources )
    {
        this.configurationSources = configurationSources;
    }

    public PlexusConfiguration getConfiguration( ComponentDescriptor componentDescriptor )
    {
        for (Object configurationSource1 : configurationSources) {
            ConfigurationSource configurationSource = (ConfigurationSource) configurationSource1;

            PlexusConfiguration configuration = configurationSource.getConfiguration(componentDescriptor);

            if (configuration != null) {
                return configuration;
            }
        }

        return null;
    }

    public List getConfigurationSources()
    {
        return configurationSources;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy