package alien4cloud.plugin;
import alien4cloud.plugin.exception.PluginConfigurationException;
/**
* Interface for plugin configuration objects
*
* @author 'Igor Ngouagna'
*/
public interface IPluginConfigurator<T> {
/**
* Get the default configuration object of the plugin
*
* @return A configuration object of type T
*/
T getDefaultConfiguration();
/**
* Set / apply a configuration for a plugin
*
* @param configuration The configuration object as edited by the user.
* @throws PluginConfigurationException In case the plugin configuration is incorrect.
*/
void setConfiguration(T configuration) throws PluginConfigurationException;
}