Package py4j.commands

Class CallCommand

All Implemented Interfaces:
Command

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.

Author:
Barthelemy Dagenais
  • Field Details

  • Constructor Details

    • CallCommand

      public CallCommand()
  • Method Details

    • execute

      public void execute(String commandName, BufferedReader reader, BufferedWriter writer) throws Py4JException, IOException
      Specified by:
      execute in interface Command
      Specified by:
      execute in class AbstractCommand
      Parameters:
      commandName - 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.
      Throws:
      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.
      IOException - If an error occurs while using the reader or the writer.