| package com.jetbrains.python.debugger.pydev; |
| |
| import com.google.common.collect.Lists; |
| import com.jetbrains.python.console.pydev.PydevCompletionVariant; |
| import com.jetbrains.python.debugger.PyDebuggerException; |
| import com.jetbrains.python.debugger.PydevXmlUtils; |
| import org.jetbrains.annotations.NotNull; |
| |
| import java.util.List; |
| |
| /** |
| * @author traff |
| */ |
| public class GetCompletionsCommand extends AbstractFrameCommand { |
| |
| private String myActionToken; |
| private List<PydevCompletionVariant> myCompletions = null; |
| |
| public GetCompletionsCommand(final RemoteDebugger debugger, |
| String threadId, |
| String frameId, |
| final String myActionToken) { |
| super(debugger, GET_COMPLETIONS, threadId, frameId); |
| this.myActionToken = myActionToken; |
| } |
| |
| |
| @Override |
| public boolean isResponseExpected() { |
| return true; |
| } |
| |
| @Override |
| protected void processResponse(ProtocolFrame response) throws PyDebuggerException { |
| super.processResponse(response); |
| try { |
| myCompletions = PydevXmlUtils.xmlToCompletions(response.getPayload(), myActionToken); |
| } |
| catch (Exception e) { |
| throw new PyDebuggerException("cant obtain completions", e); |
| } |
| } |
| |
| |
| @Override |
| protected void buildPayload(Payload payload) { |
| super.buildPayload(payload); |
| payload.add("FRAME").add(myActionToken); |
| } |
| |
| @NotNull |
| public List<PydevCompletionVariant> getCompletions() { |
| if (myCompletions != null) { |
| return myCompletions; |
| } |
| else { |
| return Lists.newArrayList(); |
| } |
| } |
| } |