CompareConfiguration.java

package edu.udel.cis.vsl.tass.config;

import java.io.File;
import java.io.PrintWriter;

public class CompareConfiguration extends RunConfiguration {

	private int specNumProcs = 1;

	private int implNumProcs = 1;

	private File specSourceFile = null;

	private File implSourceFile = null;

	private String specModelName = "spec";

	private String implModelName = "impl";

	public CompareConfiguration() {
		super();
		setRunningMode(RunningMode.COMPARE);
	}

	public CompareConfiguration(File repository) {
		super(repository);
		setRunningMode(RunningMode.COMPARE);
	}

	public CompareConfiguration(RunConfiguration that) {
		super(that);
		setRunningMode(RunningMode.COMPARE);
	}

	public CompareConfiguration(CompareConfiguration that) {
		super(that);
		this.specNumProcs = that.specNumProcs;
		this.implNumProcs = that.implNumProcs;
		this.specSourceFile = that.specSourceFile;
		this.implSourceFile = that.implSourceFile;
		this.specModelName = that.specModelName;
		this.implModelName = that.implModelName;
		setRunningMode(RunningMode.COMPARE);
	}

	public VerifyConfiguration specConfiguration() {
		VerifyConfiguration specConfiguration = new VerifyConfiguration(this);

		specConfiguration.setNumProcs(specNumProcs);
		specConfiguration.setSourceFile(specSourceFile);
		specConfiguration.setModelName(specModelName);
		return specConfiguration;
	}

	public VerifyConfiguration implConfiguration() {
		VerifyConfiguration implConfiguration = new VerifyConfiguration(this);

		implConfiguration.setNumProcs(implNumProcs);
		implConfiguration.setSourceFile(implSourceFile);
		implConfiguration.setModelName(implModelName);
		return implConfiguration;
	}

	public int specNumProcs() {
		return specNumProcs;
	}

	public int implNumProcs() {
		return implNumProcs;
	}

	public void setSpecNumProcs(int specNumProcs) {
		this.specNumProcs = specNumProcs;
	}

	public void setImplNumProcs(int implNumProcs) {
		this.implNumProcs = implNumProcs;
	}

	public File specSourceFile() {
		return specSourceFile;
	}

	public void setSpecSourceFile(File file) {
		this.specSourceFile = file;
	}

	public File implSourceFile() {
		return implSourceFile;
	}

	public void setImplSourceFile(File file) {
		this.implSourceFile = file;
	}

	public String specModelName() {
		return specModelName;
	}

	public void setSpecModelName(String name) {
		this.specModelName = name;
	}

	public String implModelName() {
		return implModelName;
	}

	public void setImplModelName(String name) {
		this.implModelName = name;
	}

	public void print(PrintWriter out) {
		out.println("       specification : " + specModelName + " (numProcs = "
				+ specNumProcs + ")");
		out.println("      specSourceFile : " + specSourceFile);
		out.println("      implementation : " + implModelName + " (numProcs = "
				+ implNumProcs + ")");
		out.println("      implSourceFile : " + implSourceFile);
		super.print(out);
	}

	@Override
	public void write(PrintWriter out) {
		out.println("compare");
		super.write(out);
		out.println(specSourceFile.getName());
		out.println(implSourceFile.getName());
		out.flush();
	}

	@Override
	public CompareConfiguration clone() {
		return new CompareConfiguration(this);
	}

}