⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 configuration.java

📁 sourcode about java basic
💻 JAVA
字号:
package jsunit.java.source_core.net.jsunit.configuration;

import net.jsunit.model.Browser;
import net.jsunit.model.BrowserSource;
import net.jsunit.utility.SystemUtility;
import org.jdom.Element;

import java.io.File;
import java.net.URL;
import java.util.List;

public final class Configuration implements BrowserSource {

    private List<Browser> browsers;
    private boolean closeBrowsersAfterTestRuns;
    private String description;
    private boolean ignoreUnresponsiveRemoteMachines;
    private File logsDirectory;
    private int port;
    private List<URL> remoteMachineURLs;
    private File resourceBase;
    private int timeoutSeconds;
    private URL testURL;

    public static Configuration resolve(String[] arguments) {
        return new Configuration(resolveSource(arguments));
    }

    public static ConfigurationSource resolveSource(String[] arguments) {
        return CompositeConfigurationSource.productionConfiguration(arguments);
    }

    public static ConfigurationSource resolveSource() {
        return resolveSource(new String[]{});
    }

    public Configuration(ConfigurationSource source) {
        for (ConfigurationProperty property : ConfigurationProperty.values())
            property.configure(this, source);
    }

    public Element asXml(ServerType serverType) {
        Element configurationElement = new Element("configuration");
        configurationElement.setAttribute("type", serverType.name());
        addSystemElementsTo(configurationElement);
        for (ConfigurationProperty property : getRequiredAndOptionalConfigurationProperties(serverType))
            property.addXmlTo(configurationElement, this);
        return configurationElement;
    }

    private void addSystemElementsTo(Element element) {
        Element osElement = new Element("os");
        osElement.setText(SystemUtility.osString());
        element.addContent(osElement);
        Element ipAddressElement = new Element("ipAddress");
        ipAddressElement.setText(SystemUtility.ipAddress());
        element.addContent(ipAddressElement);
        Element hostnameElement = new Element("hostname");
        hostnameElement.setText(SystemUtility.hostname());
        element.addContent(hostnameElement);
    }

    public List<ConfigurationProperty> getRequiredAndOptionalConfigurationProperties(ServerType serverType) {
        return serverType.getRequiredAndOptionalConfigurationProperties();
    }

    public String[] asArgumentsArray() {
        List<ConfigurationProperty> properties = ConfigurationProperty.all();
        String[] arguments = new String[properties.size() * 2];
        int i = 0;
        for (ConfigurationProperty property : properties) {
            arguments[i++] = "-" + property.getName();
            arguments[i++] = property.getValueString(this);
        }
        return arguments;
    }

    public boolean isValidFor(ServerType type) {
        return type.getPropertiesInvalidFor(this).isEmpty();
    }

    public String toString() {
        return getDescription() == null ? super.toString() : getDescription();
    }

    public List<Browser> getBrowsers() {
        return browsers;
    }

    public void setBrowsers(List<Browser> browsers) {
        this.browsers = browsers;
    }

    public boolean shouldCloseBrowsersAfterTestRuns() {
        return closeBrowsersAfterTestRuns;
    }

    public void setCloseBrowsersAfterTestRuns(boolean closeBrowsersAfterTestRuns) {
        this.closeBrowsersAfterTestRuns = closeBrowsersAfterTestRuns;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public boolean shouldIgnoreUnresponsiveRemoteMachines() {
        return ignoreUnresponsiveRemoteMachines;
    }

    public void setIgnoreUnresponsiveRemoteMachines(boolean ignoreUnresponsiveRemoteMachines) {
        this.ignoreUnresponsiveRemoteMachines = ignoreUnresponsiveRemoteMachines;
    }

    public File getLogsDirectory() {
        return logsDirectory;
    }

    public void setLogsDirectory(File logsDirectory) {
        this.logsDirectory = logsDirectory;
    }

    public int getPort() {
        return port;
    }

    public void setPort(int port) {
        this.port = port;
    }

    public List<URL> getRemoteMachineURLs() {
        return remoteMachineURLs;
    }

    public void setRemoteMachineURLs(List<URL> remoteMachineURLs) {
        this.remoteMachineURLs = remoteMachineURLs;
    }

    public File getResourceBase() {
        return resourceBase;
    }

    public void setResourceBase(File resourceBase) {
        this.resourceBase = resourceBase;
    }

    public int getTimeoutSeconds() {
        return timeoutSeconds;
    }

    public void setTimeoutSeconds(int timeoutSeconds) {
        this.timeoutSeconds = timeoutSeconds;
    }

    public URL getTestURL() {
        return testURL;
    }

    public void setTestURL(URL url) {
        this.testURL = url;
    }

    public Browser getBrowserById(int id) {
        for (Browser browser : browsers)
            if (browser.hasId(id))
                return browser;
        return null;
    }

    public URL getRemoteMachineURLById(int id) {
        return getRemoteMachineURLs().get(id);
    }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -