Package jade.wrapper

Class ContainerController

  • Direct Known Subclasses:
    AgentContainer

    public class ContainerController
    extends 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)
    • Constructor Detail

      • ContainerController

        public ContainerController​(ContainerProxy cp,
                                   AgentContainer impl,
                                   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​(String localAgentName)
                                 throws ControllerException
        Get a controller (i.e. a proxy) to a local agent given its local-name.
        Parameters:
        localAgentName - The local name of the desired agent.
        Throws:
        ControllerException - If any problems occur obtaining this proxy or if no such agent exists in the local container.
      • getAgent

        public AgentController getAgent​(String name,
                                        boolean isGuid)
                                 throws ControllerException
        Get a controller (i.e. a proxy) to a local agent given its local-name or GUID.
        Parameters:
        name - The local name or the GUID of the desired agent.
        isGuid - A flag indicating whether name represents the local-name (AID.ISLOCALNAME) or the GUID (AID.ISGUID) of the desired agent.
        Throws:
        ControllerException - If any problems occur obtaining this proxy or if no such agent exists in the local container.
      • createNewAgent

        public AgentController createNewAgent​(String nickname,
                                              String className,
                                              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.
        Throws:
        StaleProxyException
      • acceptNewAgent

        public AgentController acceptNewAgent​(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.
        Throws:
        StaleProxyException
      • installMTP

        public void installMTP​(String address,
                               String className)
                        throws 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:
        MTPException - If something goes wrong during transport protocol activation.
        StaleProxyException
      • getPlatformName

        public 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.
      • 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.
      • isJoined

        public boolean isJoined()