blob: e7e56653670c31b9c37620ea08c2b7297ff7a4f5 [file] [log] [blame]
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();
}
}
}