public class Gateway
extends java.lang.Object
A Gateway manages various states: entryPoint, references to objects returned to a Python program, etc.
This class is not intended to be directly accessed by users.
Constructor and Description |
---|
Gateway(java.lang.Object entryPoint) |
Gateway(java.lang.Object entryPoint,
Py4JPythonClient cbClient) |
Modifier and Type | Method and Description |
---|---|
void |
closeConnection()
Called when a connection is closed.
|
java.lang.Object |
createProxy(java.lang.ClassLoader classLoader,
java.lang.Class[] interfacesToImplement,
java.lang.String objectId)
Creates a proxy implementing the provided interfaces with the provided class loader.
|
protected PythonProxyHandler |
createPythonProxyHandler(java.lang.String id) |
void |
deleteObject(java.lang.String objectId) |
protected java.util.concurrent.atomic.AtomicInteger |
getArgCounter() |
java.util.Map<java.lang.String,java.lang.Object> |
getBindings() |
Py4JPythonClient |
getCallbackClient() |
JVMView |
getDefaultJVMView() |
java.lang.Object |
getEntryPoint() |
protected java.lang.String |
getNextObjectId() |
protected java.util.concurrent.atomic.AtomicInteger |
getObjCounter() |
java.lang.Object |
getObject(java.lang.String objectId) |
protected java.lang.Object |
getObjectFromId(java.lang.String targetObjectId) |
ReflectionEngine |
getReflectionEngine() |
ReturnObject |
getReturnObject(java.lang.Object object) |
ReturnObject |
invoke(java.lang.String fqn,
java.util.List<java.lang.Object> args)
Invokes a constructor and returned the constructed object.
|
ReturnObject |
invoke(java.lang.String methodName,
java.lang.String targetObjectId,
java.util.List<java.lang.Object> args)
Invokes a method.
|
protected boolean |
isArray(java.lang.Object object) |
protected boolean |
isDecimalObject(java.lang.Object object) |
protected boolean |
isList(java.lang.Object object) |
protected boolean |
isMap(java.lang.Object object) |
protected boolean |
isPrimitiveObject(java.lang.Object object) |
protected boolean |
isSet(java.lang.Object object) |
boolean |
isStarted() |
java.lang.String |
putNewObject(java.lang.Object object)
Adds a new object to the gateway bindings and return the generated ID.
|
java.lang.Object |
putObject(java.lang.String id,
java.lang.Object object) |
void |
resetCallbackClient(java.net.InetAddress pythonAddress,
int pythonPort)
Replace the callback client with the new one which connects to the given address
and port.
|
void |
setStarted(boolean isStarted) |
void |
shutdown()
Releases all objects that were referenced by this Gateway and shuts
down the CallbackClient.
|
void |
shutdown(boolean shutdownCallbackClient)
Releases all objects that were referenced by this Gateway and
optionally shut down the callback client.
|
void |
startup() |
public Gateway(java.lang.Object entryPoint)
public Gateway(java.lang.Object entryPoint, Py4JPythonClient cbClient)
public void resetCallbackClient(java.net.InetAddress pythonAddress, int pythonPort)
Replace the callback client with the new one which connects to the given address and port. This method is useful if for some reason your CallbackServer changes its address or you come to know of the address after Gateway has already instantiated.
This method is not thread-safe! Make sure that only one thread calls this method.
pythonAddress
- The address used by a PythonProxyHandler to connect to a
Python gateway.pythonPort
- The port used by a PythonProxyHandler to connect to a Python
gateway. Essentially the port used for Python callbacks.public void closeConnection()
Called when a connection is closed.
public void deleteObject(java.lang.String objectId)
protected java.util.concurrent.atomic.AtomicInteger getArgCounter()
public java.util.Map<java.lang.String,java.lang.Object> getBindings()
public Py4JPythonClient getCallbackClient()
public JVMView getDefaultJVMView()
public java.lang.Object getEntryPoint()
protected java.lang.String getNextObjectId()
protected java.util.concurrent.atomic.AtomicInteger getObjCounter()
public java.lang.Object getObject(java.lang.String objectId)
objectId
- protected java.lang.Object getObjectFromId(java.lang.String targetObjectId)
public ReflectionEngine getReflectionEngine()
public ReturnObject getReturnObject(java.lang.Object object)
public ReturnObject invoke(java.lang.String fqn, java.util.List<java.lang.Object> args)
Invokes a constructor and returned the constructed object.
fqn
- The fully qualified name of the class.args
- public ReturnObject invoke(java.lang.String methodName, java.lang.String targetObjectId, java.util.List<java.lang.Object> args)
Invokes a method.
methodName
- targetObjectId
- args
- protected boolean isArray(java.lang.Object object)
protected boolean isDecimalObject(java.lang.Object object)
protected boolean isList(java.lang.Object object)
protected boolean isMap(java.lang.Object object)
protected boolean isPrimitiveObject(java.lang.Object object)
protected boolean isSet(java.lang.Object object)
public boolean isStarted()
public java.lang.String putNewObject(java.lang.Object object)
Adds a new object to the gateway bindings and return the generated ID. Should NEVER be called by other classes except subclasses and testing classes.
object
- public java.lang.Object putObject(java.lang.String id, java.lang.Object object)
public void setStarted(boolean isStarted)
public java.lang.Object createProxy(java.lang.ClassLoader classLoader, java.lang.Class[] interfacesToImplement, java.lang.String objectId)
Creates a proxy implementing the provided interfaces with the provided class loader.
This method is part of the Gateway instance to allow overriding or customizing per Gateway instance.
classLoader
- interfacesToImplement
- objectId
- protected PythonProxyHandler createPythonProxyHandler(java.lang.String id)
public void shutdown()
Releases all objects that were referenced by this Gateway and shuts down the CallbackClient.
public void shutdown(boolean shutdownCallbackClient)
Releases all objects that were referenced by this Gateway and optionally shut down the callback client.
shutdownCallbackClient
- Shuts down the CallbackClient instance
if true.public void startup()