| package com.jetbrains.python.debugger.pydev; |
| |
| |
| import com.jetbrains.python.debugger.IPyDebugProcess; |
| import com.jetbrains.python.debugger.PyDebugValue; |
| import com.jetbrains.python.debugger.PyDebuggerException; |
| |
| public class ChangeVariableCommand extends AbstractFrameCommand { |
| |
| private final String myVariableName; |
| private final String myValue; |
| private PyDebugValue myNewValue = null; |
| private final IPyDebugProcess myDebugProcess; |
| |
| public ChangeVariableCommand(final RemoteDebugger debugger, final String threadId, final String frameId, final String variableName, |
| final String value) { |
| super(debugger, CHANGE_VARIABLE, threadId, frameId); |
| myVariableName = variableName; |
| myValue = value; |
| myDebugProcess = debugger.getDebugProcess(); |
| } |
| |
| |
| @Override |
| protected void buildPayload(Payload payload) { |
| super.buildPayload(payload); |
| payload.add("FRAME").add(myVariableName).add(ProtocolParser.encodeExpression(myValue)); |
| } |
| |
| @Override |
| public boolean isResponseExpected() { |
| return true; |
| } |
| |
| protected void processResponse(final ProtocolFrame response) throws PyDebuggerException { |
| super.processResponse(response); |
| myNewValue = ProtocolParser.parseValue(response.getPayload(), myDebugProcess).setName(myVariableName); |
| } |
| |
| public PyDebugValue getNewValue() { |
| return myNewValue; |
| } |
| } |