jade.wrapper
Class ContainerController

java.lang.Object
  |
  +--jade.wrapper.ContainerController
Direct Known Subclasses:
AgentContainer

public class ContainerController
extends java.lang.Object

This class is a Proxy class, allowing access to a JADE agent container. Invoking methods on instances of this class, it is possible to request services from in-process agent containers. This class must not be instantiated by applications. Instead, use the createContainer() method in class Runtime.
NOT available in MIDP

Author:
Giovanni Rimassa - Universita' di Parma, Giovanni Caire - TILAB
See Also:
Runtime.createAgentContainer(Profile)

Field Summary
protected  PlatformController myPlatformController
           
 
Constructor Summary
ContainerController(ContainerProxy cp, AgentContainer impl, java.lang.String platformName)
          This constructor requires a concrete implementation of a JADE agent container, which cannot be instantiated by applications, so it cannot be meaningfully called from application code.
 
Method Summary
 AgentController acceptNewAgent(java.lang.String nickname, Agent anAgent)
          Add an Agent to this container.
 AgentController createNewAgent(java.lang.String nickname, java.lang.String className, java.lang.Object[] args)
          Creates a new JADE agent, running within this container,
 AgentController getAgent(java.lang.String localAgentName)
          Get agent proxy to local agent given its name.
 java.lang.String getContainerName()
          Retrieve the name of the wrapped container.
 PlatformController getPlatformController()
          Retrieve a controller for the platform the container wrapped by this ContainerController belongs to and acts as the Main Container.
 java.lang.String getPlatformName()
          Retrieve the name of the platform the container wrapped by this ContainerController belongs to.
protected  void initPlatformController()
           
 void installMTP(java.lang.String address, java.lang.String className)
          Installs a new message transport protocol, that will run within this container.
 void kill()
          Shuts down this container, terminating all the agents running within it.
 void uninstallMTP(java.lang.String address)
          Removes a message transport protocol, previously running within this container.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

myPlatformController

protected PlatformController myPlatformController
Constructor Detail

ContainerController

public ContainerController(ContainerProxy cp,
                           AgentContainer impl,
                           java.lang.String platformName)
This constructor requires a concrete implementation of a JADE agent container, which cannot be instantiated by applications, so it cannot be meaningfully called from application code. The proper way to create an agent container from an application is to call the Runtime.createContainer() method.

Parameters:
impl - A concrete implementation of a JADE agent container.
platformName - the name of the platform
See Also:
Runtime.createAgentContainer(Profile)
Method Detail

getAgent

public AgentController getAgent(java.lang.String localAgentName)
                         throws ControllerException
Get agent proxy to local agent given its name.

Parameters:
localAgentName - The short local name of the desired agent.
Throws:
ControllerException - If any probelms occur obtaining this proxy.

createNewAgent

public AgentController createNewAgent(java.lang.String nickname,
                                      java.lang.String className,
                                      java.lang.Object[] args)
                               throws StaleProxyException
Creates a new JADE agent, running within this container,

Parameters:
nickname - A platform-unique nickname for the newly created agent. The agent will be given a FIPA compliant agent identifier using the nickname and the ID of the platform it is running on.
className - The fully qualified name of the class that implements the agent.
args - An object array, containing initialization parameters to pass to the new agent.
Returns:
A proxy object, allowing to call state-transition forcing methods on the real agent instance.
StaleProxyException

acceptNewAgent

public AgentController acceptNewAgent(java.lang.String nickname,
                                      Agent anAgent)
                               throws StaleProxyException
Add an Agent to this container. Typically Agent would be some class extending Agent which was instantiated and configured.

Parameters:
nickname - A platform-unique nickname for the newly created agent. The agent will be given a FIPA compliant agent identifier using the nickname and the ID of the platform it is running on.
anAgent - The agent to be added to this agent container.
Returns:
An AgentController, allowing to call state-transition forcing methods on the real agent instance.
StaleProxyException

kill

public void kill()
          throws StaleProxyException
Shuts down this container, terminating all the agents running within it.

StaleProxyException

installMTP

public void installMTP(java.lang.String address,
                       java.lang.String className)
                throws jade.mtp.MTPException,
                       StaleProxyException
Installs a new message transport protocol, that will run within this container.

Parameters:
address - The transport address exported by the new MTP, in string format.
className - The fully qualified name of the Java class that implements the transport protocol.
Throws:
jade.mtp.MTPException - If something goes wrong during transport protocol activation.
StaleProxyException

uninstallMTP

public void uninstallMTP(java.lang.String address)
                  throws jade.mtp.MTPException,
                         NotFoundException,
                         StaleProxyException
Removes a message transport protocol, previously running within this container.

Parameters:
address - The transport address exported by the new MTP, in string format.
Throws:
jade.mtp.MTPException - If something goes wrong during transport protocol activation.
NotFoundException - If no protocol with the given address is currently installed on this container.
StaleProxyException

getPlatformName

public java.lang.String getPlatformName()
Retrieve the name of the platform the container wrapped by this ContainerController belongs to.

Returns:
the name (i.e. the HAP) of this platform.

getContainerName

public java.lang.String getContainerName()
                                  throws ControllerException
Retrieve the name of the wrapped container.

Returns:
the name of this platform container.
ControllerException

getPlatformController

public PlatformController getPlatformController()
                                         throws ControllerException
Retrieve a controller for the platform the container wrapped by this ContainerController belongs to and acts as the Main Container.

Returns:
a PlatfromController for the platform the container wrapped by this ContainerController belongs to.
Throws:
ControllerException - If the container wrapped by this ContainerController is not valid or is not the platform Main Container.

initPlatformController

protected void initPlatformController()
                               throws ControllerException
ControllerException


JADE