package utp;

public class ActiveThread<T> extends Thread {
	private IPassiveGenerator<T> m_passive;
	private ICode<T> m_code;
	private Cell<T> m_cell;

	public ActiveThread(IPassiveGenerator<T> passive, ICode<T> code,
			Cell<T> cell) {
		super();
		this.m_passive = passive;
		this.m_code = code;
		this.m_cell = cell;
	}

	public void run() {
		try {
			m_passive.generate(m_code);
		}
		catch (StopException e) {}
		finally {
			m_cell.stop();
		}
	}
}
