public class CallCommand extends AbstractCommand
A CallCommand is responsible for parsing a call command and calling the method on the target object.
Currently, the call command assumes that a command is well-formed and that there is no communication problem (e.g., the source virtual machine disconnected in the middle of a command). This is a reasonable assumption because the two virtual machines are assumed to be on the same host.
TODO: Make the call command more robust to communication errors and ill-formed protocol.
| Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
CALL_COMMAND_NAME |
commandName, connection, gateway| Constructor and Description |
|---|
CallCommand() |
| Modifier and Type | Method and Description |
|---|---|
void |
execute(java.lang.String commandName,
java.io.BufferedReader reader,
java.io.BufferedWriter writer) |
getArguments, getCommandName, getStringArguments, init, invokeMethodpublic static final java.lang.String CALL_COMMAND_NAME
public void execute(java.lang.String commandName,
java.io.BufferedReader reader,
java.io.BufferedWriter writer)
throws Py4JException,
java.io.IOException
execute in interface Commandexecute in class AbstractCommandcommandName - The command name that was extracted of the command.reader - The reader from which to read the command parts. Each command
part are expected to be on a separate line and readable
through BufferedReader.readLine().writer - The writer to which the return value should be written.Py4JException - If an error occurs while executing the command. All
exceptions except IOException caused by the reader and the
writer should be wrapper in a Py4JException instance.java.io.IOException - If an error occurs while using the reader or the writer.