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 Detail

      • CALL_COMMAND_NAME

        public static final java.lang.String CALL_COMMAND_NAME
        See Also:
        Constant Field Values
    • Constructor Detail

      • CallCommand

        public CallCommand()
    • Method Detail

      • execute

        public void execute​(java.lang.String commandName,
                            java.io.BufferedReader reader,
                            java.io.BufferedWriter writer)
                     throws Py4JException,
                            java.io.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.
        java.io.IOException - If an error occurs while using the reader or the writer.