package test.check.command;
/**
* Chain command - applies a chain of configure commands on a component.
*
* @author Kirill Grouchnikov
* @param <T>
* Component class.
*/
public class ChainCommand<T> implements ConfigurationCommand<T> {
/**
* Command chain.
*/
private ConfigurationCommand<T>[] commands;
/**
* Creates the chain command.
*
* @param commands
* Command chain.
*/
public ChainCommand(ConfigurationCommand<T>... commands) {
super();
this.commands = commands;
}
/*
* (non-Javadoc)
*
* @see test.check.ConfigurationCommand#invoke(java.lang.Object)
*/
public void configure(T component) {
for (ConfigurationCommand<T> cmd : this.commands)
cmd.configure(component);
}
}