package org.erlide.backend.debug.events; import org.erlide.backend.debug.model.ErlangDebugTarget; import org.erlide.backend.debug.model.ErlangProcess; import org.erlide.util.ErlangFunctionCall; import com.ericsson.otp.erlang.OtpErlangAtom; import com.ericsson.otp.erlang.OtpErlangObject; import com.ericsson.otp.erlang.OtpErlangPid; import com.ericsson.otp.erlang.OtpErlangTuple; public class NewProcessEvent extends IntEvent { public NewProcessEvent(final OtpErlangObject[] cmds) { super(cmds); } @Override public void execute(final ErlangDebugTarget debugTarget) { final OtpErlangTuple t = (OtpErlangTuple) cmds[1]; final OtpErlangPid pid = (OtpErlangPid) t.elementAt(0); final ErlangProcess erlangProcess = debugTarget.getOrCreateErlangProcess(pid); final OtpErlangAtom statusA = (OtpErlangAtom) t.elementAt(2); final String status = statusA.atomValue(); erlangProcess.setStatus(status); final OtpErlangTuple initialCall = (OtpErlangTuple) t.elementAt(1); erlangProcess.setInitialCall(new ErlangFunctionCall(initialCall)); erlangProcess.fireCreationEvent(); } }