summaryrefslogtreecommitdiff
path: root/python/pydevSrc/com/jetbrains/python/debugger/pydev/ConsoleExecCommand.java
blob: c03890f088e8af36bf6b7229f9c4203053ac1039 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package com.jetbrains.python.debugger.pydev;

import com.jetbrains.python.debugger.PyDebugValue;
import com.jetbrains.python.debugger.PyDebuggerException;


public class ConsoleExecCommand extends AbstractFrameCommand<String> {
  private final String myExpression;

  public ConsoleExecCommand(final RemoteDebugger debugger, final String threadId, final String frameId, final String expression) {
    super(debugger, CONSOLE_EXEC, threadId, frameId);
    myExpression = expression;
  }

  @Override
  protected void buildPayload(Payload payload) {
    super.buildPayload(payload);
    payload.add("FRAME").add(myExpression);
  }

  @Override
  public boolean isResponseExpected() {
    return true;
  }

  @Override
  protected ResponseProcessor<String> createResponseProcessor() {
    return new ResponseProcessor<String>() {
      @Override
      protected String parseResponse(ProtocolFrame response) throws PyDebuggerException {
        final PyDebugValue value = ProtocolParser.parseValue(response.getPayload(), getDebugger().getDebugProcess());
        return value.getValue();
      }
    };
  }
}