py4j
Class Protocol

java.lang.Object
  extended by py4j.Protocol

public class Protocol
extends Object

This class defines the protocol used to communicate between two virtual machines (e.g., Python and Java).

Currently, the protocol requires type information (e.g., is this string an integer, an object reference or a boolean?) to be embedded with each command part. The rational is that the source virtual machine is usually better at determining the type of objects it sends.

An input command is usually composed of:

The various parts of a command are separated by \n characters. These characters are automatically escaped and unescaped in Strings on both sides (Java and Python).

An output command is usually composed of:

This class should be used only if the user creates new commands.

Author:
Barthelemy Dagenais

Field Summary
static char BOOLEAN_TYPE
           
static char CLASS_TYPE
           
static char DOUBLE_TYPE
           
static char END
           
static char END_OUTPUT
           
static String ENTRY_POINT_OBJECT_ID
           
static char ERROR
           
static String ERROR_COMMAND
           
static char INTEGER_TYPE
           
static char LIST_TYPE
           
static char MAP_TYPE
           
static char METHOD_TYPE
           
static char NO_MEMBER
           
static String NO_SUCH_FIELD
           
static char NULL_TYPE
           
static char PACKAGE_TYPE
           
static char REFERENCE_TYPE
           
static String STATIC_PREFIX
           
static char STRING_TYPE
           
static char SUCCESS
           
static char VOID
           
static String VOID_COMMAND
           
 
Constructor Summary
Protocol()
           
 
Method Summary
static boolean getBoolean(String commandPart)
           Assumes that commandPart is not empty.
static double getDouble(String commandPart)
           Assumes that commandPart is not empty.
static int getInteger(String commandPart)
           Assumes that commandPart is not empty.
static String getMemberOutputCommand(char memberType)
           
static String getNoSuchFieldOutputCommand()
           
static Object getNull(String commandPart)
           Method provided for consistency.
static Object getObject(String commandPart)
           
static Object getObject(String commandPart, Gateway gateway)
           
static String getOutputCommand(ReturnObject rObject)
           
static String getOutputErrorCommand()
           
static String getOutputVoidCommand()
           
static String getReference(String commandPart)
           Assumes that commandPart is not empty.
static String getString(String commandPart)
           Assumes that commandPart is not empty.
static boolean isBoolean(String commandPart)
           Assumes that commandPart is not empty.
static boolean isDouble(String commandPart)
           Assumes that commandPart is not empty.
static boolean isEmpty(String commandPart)
           
static boolean isEnd(String commandPart)
           Assumes that commandPart is not empty.
static boolean isInteger(String commandPart)
           Assumes that commandPart is not empty.
static boolean isNull(String commandPart)
           Assumes that commandPart is not empty.
static boolean isReference(String commandPart)
           Assumes that commandPart is not empty.
static boolean isString(String commandPart)
           Assumes that commandPart is not empty.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

INTEGER_TYPE

public static final char INTEGER_TYPE
See Also:
Constant Field Values

BOOLEAN_TYPE

public static final char BOOLEAN_TYPE
See Also:
Constant Field Values

DOUBLE_TYPE

public static final char DOUBLE_TYPE
See Also:
Constant Field Values

STRING_TYPE

public static final char STRING_TYPE
See Also:
Constant Field Values

REFERENCE_TYPE

public static final char REFERENCE_TYPE
See Also:
Constant Field Values

LIST_TYPE

public static final char LIST_TYPE
See Also:
Constant Field Values

MAP_TYPE

public static final char MAP_TYPE
See Also:
Constant Field Values

NULL_TYPE

public static final char NULL_TYPE
See Also:
Constant Field Values

PACKAGE_TYPE

public static final char PACKAGE_TYPE
See Also:
Constant Field Values

CLASS_TYPE

public static final char CLASS_TYPE
See Also:
Constant Field Values

METHOD_TYPE

public static final char METHOD_TYPE
See Also:
Constant Field Values

NO_MEMBER

public static final char NO_MEMBER
See Also:
Constant Field Values

VOID

public static final char VOID
See Also:
Constant Field Values

END

public static final char END
See Also:
Constant Field Values

END_OUTPUT

public static final char END_OUTPUT
See Also:
Constant Field Values

ERROR

public static final char ERROR
See Also:
Constant Field Values

SUCCESS

public static final char SUCCESS
See Also:
Constant Field Values

ERROR_COMMAND

public static final String ERROR_COMMAND
See Also:
Constant Field Values

VOID_COMMAND

public static final String VOID_COMMAND
See Also:
Constant Field Values

NO_SUCH_FIELD

public static final String NO_SUCH_FIELD
See Also:
Constant Field Values

ENTRY_POINT_OBJECT_ID

public static final String ENTRY_POINT_OBJECT_ID
See Also:
Constant Field Values

STATIC_PREFIX

public static final String STATIC_PREFIX
See Also:
Constant Field Values
Constructor Detail

Protocol

public Protocol()
Method Detail

isEmpty

public static final boolean isEmpty(String commandPart)

isEnd

public static final boolean isEnd(String commandPart)

Assumes that commandPart is not empty.

Parameters:
commandPart -
Returns:
True if the command part is the end token

isInteger

public static final boolean isInteger(String commandPart)

Assumes that commandPart is not empty.

Parameters:
commandPart -
Returns:
True if the command part is an integer

getInteger

public static final int getInteger(String commandPart)

Assumes that commandPart is not empty.

Parameters:
commandPart -
Returns:
The integer value corresponding to this command part.

isBoolean

public static final boolean isBoolean(String commandPart)

Assumes that commandPart is not empty.

Parameters:
commandPart -
Returns:
True if the command part is a boolean

getBoolean

public static final boolean getBoolean(String commandPart)

Assumes that commandPart is not empty.

Parameters:
commandPart -
Returns:
The boolean value corresponding to this command part.

isDouble

public static final boolean isDouble(String commandPart)

Assumes that commandPart is not empty.

Parameters:
commandPart -
Returns:
True if the command part is a double

getDouble

public static final double getDouble(String commandPart)

Assumes that commandPart is not empty.

Parameters:
commandPart -
Returns:
The double value corresponding to this command part.

isReference

public static final boolean isReference(String commandPart)

Assumes that commandPart is not empty.

Parameters:
commandPart -
Returns:
True if the command part is a reference

getReference

public static final String getReference(String commandPart)

Assumes that commandPart is not empty.

Parameters:
commandPart -
Returns:
The reference contained in this command part.

isString

public static final boolean isString(String commandPart)

Assumes that commandPart is not empty.

Parameters:
commandPart -
Returns:
True if the command part is a reference

getString

public static final String getString(String commandPart)

Assumes that commandPart is not empty.

Parameters:
commandPart -
Returns:
The reference contained in this command part.

isNull

public static final boolean isNull(String commandPart)

Assumes that commandPart is not empty.

Parameters:
commandPart -
Returns:
True if the command part is null

getNull

public static final Object getNull(String commandPart)

Method provided for consistency. Just returns null.

Parameters:
commandPart -
Returns:
null.

getObject

public static final Object getObject(String commandPart,
                                     Gateway gateway)

getObject

public static final Object getObject(String commandPart)

getOutputErrorCommand

public static final String getOutputErrorCommand()

getOutputVoidCommand

public static final String getOutputVoidCommand()

getMemberOutputCommand

public static final String getMemberOutputCommand(char memberType)

getOutputCommand

public static final String getOutputCommand(ReturnObject rObject)

getNoSuchFieldOutputCommand

public static String getNoSuchFieldOutputCommand()