Package org.erlide.cover.runtime.launch

Source Code of org.erlide.cover.runtime.launch.CoverLaunchSettings

package org.erlide.cover.runtime.launch;

import java.util.Collection;

import org.erlide.cover.api.Configuration;
import org.erlide.cover.api.CoverException;
import org.erlide.cover.api.IConfiguration;
import org.erlide.cover.core.Activator;
import org.erlide.cover.core.Logger;
import org.erlide.engine.model.ErlModelException;
import org.erlide.engine.model.erlang.IErlModule;
import org.erlide.util.ErlLogger;

/**
* Settings for performing coverage.
*
* @author Aleksandra Lipiec <aleksandra.lipiec@erlang.solutions.com>
*
*/
public class CoverLaunchSettings {

    private final LaunchType type;
    private final FrameworkType frameworkType;
    private final Configuration config;

    private final Logger log; // logger

    /**
     * Create coverage settings, depend mainly on launch type
     *
     * @param t
     * @param data
     */
    public CoverLaunchSettings(final LaunchType t, final CoverLaunchData data)
            throws CoverException {
        type = t;
        frameworkType = data.getFramework();
        config = new Configuration();

        log = Activator.getDefault();
        if (data.getFramework() == null) {
            throw new CoverException("No test framework set");
        }

        switch (t) {
        case MODULE:

            // new
            config.setProject(data.getProject());
            if (data.getProject() == null || data.getProject().length() == 0) {
                throw new CoverException("No project name set");
            }
            if (data.getModule() == null || data.getModule().length() == 0) {
                throw new CoverException("No module name set");
            }
            try {
                config.addModule(data.getModule().replace(".erl", ""));
            } catch (final ErlModelException e) {
                ErlLogger.error(e);
                throw new CoverException(e.getMessage());
            }
            break;
        case ALL:
            // new
            if (data.getProjectAll() == null || data.getProjectAll().length() == 0) {
                throw new CoverException("No project name set");
            }
            config.setProject(data.getProjectAll());
            try {
                final Collection<IErlModule> allModules = config.getProject()
                        .getModules();
                for (final IErlModule m : allModules) {
                    log.info(m.getFilePath());
                    if (!m.getFilePath().contains("/test/")) {
                        config.addModule(m);
                    }
                }
            } catch (final ErlModelException e) {
                ErlLogger.error(e);
                throw new CoverException(e.getMessage());
            }
            break;

        case CUSTOM:
            break;
        }

    }

    public LaunchType getType() {
        return type;
    }

    public String getTypeAsString() {
        return type.name().toLowerCase();
    }

    public String getFramework() {
        return frameworkType.name().toLowerCase();
    }

    public IConfiguration getConfig() {
        return config;
    }

}
TOP

Related Classes of org.erlide.cover.runtime.launch.CoverLaunchSettings

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.