package org.dresdenocl.debug.model;
import org.dresdenocl.debug.events.IOclDebugEventListener;
import org.eclipse.debug.core.DebugException;
import org.eclipse.debug.core.ILaunch;
import org.eclipse.debug.core.model.IProcess;
import org.eclipse.debug.core.model.IStreamsProxy;
public class OclDebugProcess extends OclDebugElement implements IProcess,
IOclDebugEventListener {
private ILaunch m_launch;
private boolean m_terminated;
public OclDebugProcess(ILaunch launch) {
super((OclDebugTarget) launch.getDebugTarget());
m_launch = launch;
m_terminated = false;
}
@Override
public boolean canTerminate() {
return !m_terminated;
}
public ILaunch getLaunch() {
return m_launch;
}
@Override
public boolean isTerminated() {
return m_terminated;
}
@Override
public void terminate() throws DebugException {
m_terminated = true;
}
@Override
public String getLabel() {
return null;
}
@Override
public IStreamsProxy getStreamsProxy() {
return null;
}
@Override
public void setAttribute(String key, String value) {
// do nothing
}
@Override
public String getAttribute(String key) {
return null;
}
@Override
public int getExitValue() throws DebugException {
return 0;
}
@Override
public void handleMessage(OclDebugMessage message) {
if (message.hasType(EOclDebugMessageType.TERMINATED)) {
m_terminated = true;
}
// no else
}
}