public abstract class AbstractCommand extends Object implements Command
Abstract base class for commands. Provides useful methods allowing the parsing of command arguments.
Modifier and Type | Field and Description |
---|---|
protected String |
commandName |
protected Gateway |
gateway |
Constructor and Description |
---|
AbstractCommand() |
Modifier and Type | Method and Description |
---|---|
abstract void |
execute(String commandName,
BufferedReader reader,
BufferedWriter writer) |
protected List<Object> |
getArguments(BufferedReader reader) |
String |
getCommandName() |
protected List<String> |
getStringArguments(BufferedReader reader) |
void |
init(Gateway gateway)
Called when a command instance is created and assigned to a connection.
|
protected ReturnObject |
invokeMethod(String methodName,
String targetObjectId,
List<Object> arguments)
Convenient shortcut to invoke a method dynamically.
|
public abstract void execute(String commandName, BufferedReader reader, BufferedWriter writer) throws Py4JException, IOException
execute
in interface Command
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.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.protected List<Object> getArguments(BufferedReader reader) throws IOException
reader
- IOException
public String getCommandName()
getCommandName
in interface Command
protected List<String> getStringArguments(BufferedReader reader) throws IOException
reader
- IOException
public void init(Gateway gateway)
Command
Called when a command instance is created and assigned to a connection.
protected ReturnObject invokeMethod(String methodName, String targetObjectId, List<Object> arguments)
Convenient shortcut to invoke a method dynamically.
methodName
- targetObjectId
- arguments
-