/**
* Copyright (c) 2008, MTV Networks
*/
/**
*
*/
package com.mtvi.plateng.hudson.regex;
import java.util.ArrayList;
import java.util.List;
/**
* A MultiConfiguration object wraps some number of Configuration objects and
* will iterate through them (in order) to match a username and transform it to
* an email address.
*
* @author justinedelson
*
*/
public class MultiConfiguration implements IConfiguration {
/**
* The list of configuration objects contained.
*/
private List<Configuration> configurations;
/**
* {@inheritDoc}
*/
public String findMailAddressFor(String userName) {
for (Configuration config : configurations) {
String address = config.findMailAddressFor(userName);
if (address != null) {
return address;
}
}
return null;
}
protected synchronized List<Configuration> getConfigurations() {
if (configurations == null) {
configurations = new ArrayList<Configuration>();
configurations.add(new Configuration());
}
return configurations;
}
protected synchronized void addConfiguration(Configuration config) {
if (configurations == null) {
configurations = new ArrayList<Configuration>();
}
configurations.add(config);
}
/**
* A MultiConfiguration object is valid if at least one of the underlying
* Configuration objects is valid.
*
* {@inheritDoc}
*/
public boolean isValid() {
boolean retval = false;
for (Configuration config : getConfigurations()) {
retval = retval || config.isValid();
}
return retval;
}
}