package org.eclipse.e4.languages.javascript.jsdi.rhino.event;

import org.eclipse.e4.languages.javascript.jsdi.ThreadReference;
import org.eclipse.e4.languages.javascript.jsdi.event.ThreadExitEvent;
import org.eclipse.e4.languages.javascript.jsdi.request.ThreadExitRequest;
import org.eclipse.e4.languages.javascript.jsdi.rhino.VirtualMachineImpl;

public class ThreadExitEventImpl extends EventImpl implements ThreadExitEvent {

	private final ThreadReference thread;

	public ThreadExitEventImpl(VirtualMachineImpl vm, ThreadReference thread, ThreadExitRequest request) {
		super(vm, request);
		this.thread = thread;
	}

	public ThreadReference thread() {
		return thread;
	}

}
