package net.jsunit.configuration;
import net.jsunit.utility.SystemUtility;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class CompositeConfigurationSource implements ConfigurationSource {
protected List<ConfigurationSource> sources;
public CompositeConfigurationSource() {
this.sources = new ArrayList<ConfigurationSource>();
}
public CompositeConfigurationSource(ConfigurationSource... sources) {
this();
add(sources);
}
public static ConfigurationSource resolve() {
return forArguments(new String[]{});
}
public static ConfigurationSource forArguments(String[] arguments) {
CompositeConfigurationSource result = new CompositeConfigurationSource(
new ArgumentsConfigurationSource(Arrays.asList(arguments)),
new EnvironmentVariablesConfigurationSource());
//noinspection EmptyCatchBlock
try {
result.add(new PropertiesFileConfigurationSource());
} catch (FileNotFoundException e) {
}
return result;
}
public void add(ConfigurationSource... sources) {
this.sources.addAll(Arrays.asList(sources));
}
public String browserFileNames() {
for (ConfigurationSource source : sources) {
String result = source.browserFileNames();
if (result != null) {
return result;
}
}
return null;
}
public String closeBrowsersAfterTestRuns() {
for (ConfigurationSource source : sources) {
String result = source.closeBrowsersAfterTestRuns();
if (result != null) {
return result;
}
}
return null;
}
public String description() {
for (ConfigurationSource source : sources) {
String result = source.description();
if (result != null) {
return result;
}
}
return null;
}
public String logsDirectory() {
for (ConfigurationSource source : sources) {
String result = source.logsDirectory();
if (result != null) {
return result;
}
}
return null;
}
public String port() {
for (ConfigurationSource source : sources) {
String result = source.port();
if (result != null) {
return result;
}
}
return null;
}
public String remoteMachineURLs() {
for (ConfigurationSource source : sources) {
String result = source.remoteMachineURLs();
if (result != null) {
return result;
}
}
return null;
}
public String resourceBase() {
for (ConfigurationSource source : sources) {
String result = source.resourceBase();
if (result != null) {
return result;
}
}
return null;
}
public String timeoutSeconds() {
for (ConfigurationSource source : sources) {
String result = source.timeoutSeconds();
if (result != null) {
return result;
}
}
return null;
}
public String url() {
for (ConfigurationSource source : sources) {
String result = source.url();
if (result != null) {
return result;
}
}
return null;
}
public String ignoreUnresponsiveRemoteMachines() {
for (ConfigurationSource source : sources) {
String result = source.ignoreUnresponsiveRemoteMachines();
if (result != null) {
return result;
}
}
return null;
}
public String osString() {
return SystemUtility.osString();
}
public String ipAddress() {
return SystemUtility.ipAddress();
}
public String hostname() {
return SystemUtility.hostname();
}
}