Class LoaderBehaviour

  • All Implemented Interfaces:
    Serializable, Serializable

    public class LoaderBehaviour
    extends Behaviour
    This behaviour serves behaviour-loading requests according to the Behaviour-loading ontology. When an agent runs an instance of this behaviour it becomes able to load and execute completely new behaviours, i.e. behaviours whose code is not included in the classpath of the JVM where the agent lives. Loading behaviour requests must have the ACLMessage.REQUEST performative and must use the BehaviourLoading ontology and the LEAP language.
    NOT available in MIDP
    Author:
    Giovanni Caire - TILAB
    See Also:
    LoadBehaviour, BehaviourLoadingOntology, LEAPCodec, Serialized Form
    • Constructor Detail

      • LoaderBehaviour

        public LoaderBehaviour()
        Construct a LoaderBehaviour.
      • LoaderBehaviour

        public LoaderBehaviour​(Agent a)
        Construct a LoaderBehaviour to be executed by a given agent.
      • LoaderBehaviour

        public LoaderBehaviour​(Agent a,
                               ClassLoader cl)
        Construct a LoaderBehaviour to be executed by a given agent and that will use a given class loader to load behaviours whose code is not embedded in the LoadBehaviour request.
    • Method Detail

      • action

        public final void action()
        The action() method is redefined to serve behaviour loading requests
        Specified by:
        action in class Behaviour
        See Also:
        CompositeBehaviour
      • done

        public boolean done()
        The done() method is redefined to make this behaviour terminate when its stop() method is called.
        Specified by:
        done in class Behaviour
        Returns:
        true if the behaviour has completely executed.
      • stop

        public void stop()
        Make this behaviour terminate.
      • addBehaviour

        protected void addBehaviour​(Behaviour b,
                                    ACLMessage request)
        Add a loaded behaviour to the agent. Subclasses may redefine this method to handle the behaviour addition operation in an application specific way.
        Parameters:
        b - The Behaviour to be added.
        request - The ACLMessage carrying the LoadBehaviour request.
      • accept

        protected boolean accept​(ACLMessage msg)
        Suclasses may redefine this method to prevent the behaviour loading operation under specific conditions. This default implementation always returns true
      • setInputParameters

        protected void setInputParameters​(Behaviour b,
                                          List params)
      • getOutputParameters

        protected void getOutputParameters​(Behaviour b,
                                           List params)