package com.sap.runlet.expressionpad.launch;
import org.eclipse.debug.core.DebugEvent;
import org.eclipse.debug.core.DebugException;
import org.eclipse.debug.core.model.DebugElement;
import org.eclipse.debug.core.model.IDebugTarget;
import org.eclipse.debug.core.model.IProcess;
import org.eclipse.debug.core.model.IStreamsProxy;
import com.sap.runlet.expressionpad.Activator;
public class RunletProcess extends DebugElement implements IProcess {
public RunletProcess(IDebugTarget target) {
super(target);
fireCreationEvent();
}
public int hashCode() {
return getDebugTarget().hashCode();
}
public boolean equals(Object o) {
boolean result = false;
if (o instanceof RunletProcess) {
result = ((RunletProcess) o).getDebugTarget().equals(getDebugTarget());
}
return result;
}
protected void started() {
fireResumeEvent(DebugEvent.CLIENT_REQUEST);
}
@Override
public String getAttribute(String key) {
return null;
}
@Override
public int getExitValue() {
return 0;
}
@Override
public String getLabel() {
return "Runlet process";
}
@Override
public IStreamsProxy getStreamsProxy() {
return null;
}
@Override
public void setAttribute(String key, String value) {
}
@Override
public boolean canTerminate() {
return getDebugTarget().canTerminate();
}
@Override
public boolean isTerminated() {
return getDebugTarget().isTerminated();
}
@Override
public void terminate() throws DebugException {
getDebugTarget().terminate();
fireTerminateEvent();
}
@Override
public String getModelIdentifier() {
return Activator.PLUGIN_ID;
}
}