## Uses of Class
madkit.kernel.AbstractAgent

- Packages that use AbstractAgent
  Package | Description
  --- | ---
  madkit.action | Contains enumerations useful for (1) interacting with agents and (2) building customized GUI.
  madkit.gui | Contains classes for Agent GUI authoring in MaDKit.
  madkit.gui.menu | Contains classes for building MaDKit GUI menus.
  madkit.gui.toolbar | Contains classes for building MaDKit GUI toolbars.
  madkit.kernel | Provides classes that are fundamental to the design of MaDKit applications.
  madkit.message.hook | Contains message classes useful for monitoring MaDKit kernel events.
  madkit.simulation.activator | Contains activators for simulation authoring.
  madkit.simulation.model | Contains classes designed for encapsulating simulation models.
  madkit.simulation.probe | Contains probes for simulation authoring.
  madkit.simulation.scheduler | Contains specialized Scheduler agents
  madkit.simulation.viewer | Contains default viewer classes for simulation visualization.

- - ### Uses of AbstractAgent in madkit.action

    Methods in madkit.action with parameters of type AbstractAgent
    Modifier and Type | Method and Description
    --- | ---
    `Action` | AgentAction.`getActionFor(AbstractAgent agent, Object... parameters)` Builds an action that will make the agent do the corresponding behavior
    `Action` | KernelAction.`getActionFor(AbstractAgent agent, Object... parameters)` Builds an action that will make the kernel do the corresponding operation if possible.
    `Action` | LoggingAction.`getActionFor(AbstractAgent agent, Object... parameters)` Builds an action that will make the agent do the corresponding behavior
    `Action` | GUIManagerAction.`getActionFor(AbstractAgent agent, Object... commandOptions)` Returns an Action that will send to the GUI manager the corresponding request.

  - ### Uses of AbstractAgent in madkit.gui

    Subclasses of AbstractAgent in madkit.gui
    Modifier and Type | Class and Description
    --- | ---
    `class` | `ConsoleAgent` This agent displays standard out and err prints in its GUI.

    Methods in madkit.gui that return AbstractAgent
    Modifier and Type | Method and Description
    --- | ---
    `AbstractAgent` | AgentFrame.`getAgent()`

    Methods in madkit.gui with parameters of type AbstractAgent
    Modifier and Type | Method and Description
    --- | ---
    `static void` | SwingUtil.`addMaDKitActionsTo(Container menuOrToolBar, AbstractAgent agent)` Adds to a menu or toolbar the following actions: `KernelAction.EXIT` `KernelAction.COPY` `KernelAction.RESTART` `KernelAction.LAUNCH_NETWORK` `KernelAction.STOP_NETWORK` `GUIManagerAction.CONNECT_TO_IP` `GlobalAction.JCONSOLE` `KernelAction.CONSOLE` `GlobalAction.DEBUG` `GlobalAction.LOAD_LOCAL_DEMOS` `GlobalAction.LOAD_JAR_FILE` `GUIManagerAction.ICONIFY_ALL` `GUIManagerAction.DEICONIFY_ALL` `GUIManagerAction.KILL_AGENTS`
    `static AgentFrame` | AgentFrame.`createAgentFrame(AbstractAgent agent)` Override to customize the agent frame that should be created by the GUI engine.
    `JMenuBar` | MDKDesktopFrame.`getMenuBar(AbstractAgent guiManager)` Builds tool bar for the desktop frame.
    `JToolBar` | MDKDesktopFrame.`getToolBar(AbstractAgent guiManager)` Builds tool bar for the desktop frame.
    `static void` | AgentStatusPanel.`remove(AbstractAgent abstractAgent)`

    Constructors in madkit.gui with parameters of type AbstractAgent
    Constructor and Description
    `AgentFrame(AbstractAgent agent)` TThis constructor is protected because this class should not be directly instantiated as it is used by the MaDKit GUI manager.
    `AgentStatusPanel(AbstractAgent a)`
    `OutputPanel(AbstractAgent agent)` Builds the panel for the agent

  - ### Uses of AbstractAgent in madkit.gui.menu

    Methods in madkit.gui.menu with parameters of type AbstractAgent
    Modifier and Type | Method and Description
    --- | ---
    `static void` | AgentLogLevelMenu.`remove(AbstractAgent abstractAgent)`
    `static void` | AgentLogLevelMenu.`update(AbstractAgent agent)` Update the menu of this agent

    Constructors in madkit.gui.menu with parameters of type AbstractAgent
    Constructor and Description
    `AgentLogLevelMenu(AbstractAgent agent)` Builds a menu containing all the log levels which could be set on an agent.
    `AgentMenu(AbstractAgent agent)` Creates a menu featuring: `AgentAction.RELOAD`, `AgentAction.LAUNCH_AGENT`, `AgentAction.KILL_AGENT`
    `LaunchAgentsMenu(AbstractAgent agent)`
    `LaunchAgentsMenu(AbstractAgent agent, String menuName)` Builds a new menu containing all the agents available on the class path, except madkit.kernel agents.
    `LaunchAgentsMenu(AbstractAgent agent, String menuName, AgentClassFilter filter)` Builds a new launching menu containing all the agents available on the class path.
    `LaunchMAS(AbstractAgent agent)` Builds a new menu.
    `LaunchXMLConfigurations(AbstractAgent agent, String title)` Builds a new menu.
    `MadkitMenu(AbstractAgent agent)` Builds a menu featuring the following actions: `KernelAction.EXIT` `KernelAction.COPY` `KernelAction.RESTART` `KernelAction.LAUNCH_NETWORK` `KernelAction.STOP_NETWORK` `GUIManagerAction.CONNECT_TO_IP` `GlobalAction.JCONSOLE` `KernelAction.CONSOLE` `GlobalAction.DEBUG` `GlobalAction.LOAD_LOCAL_DEMOS` `GlobalAction.LOAD_JAR_FILE` `GUIManagerAction.ICONIFY_ALL` `GUIManagerAction.DEICONIFY_ALL` `GUIManagerAction.KILL_AGENTS`

  - ### Uses of AbstractAgent in madkit.gui.toolbar

    Constructors in madkit.gui.toolbar with parameters of type AbstractAgent
    Constructor and Description
    `MadkitToolBar(AbstractAgent agent)` Creates a `JToolBar` featuring: `KernelAction.EXIT` `KernelAction.COPY` `KernelAction.RESTART` `KernelAction.LAUNCH_NETWORK` `KernelAction.STOP_NETWORK` `GUIManagerAction.CONNECT_TO_IP` `GlobalAction.JCONSOLE` `KernelAction.CONSOLE` `GlobalAction.DEBUG` `GlobalAction.LOAD_LOCAL_DEMOS` `GlobalAction.LOAD_JAR_FILE` `GUIManagerAction.ICONIFY_ALL` `GUIManagerAction.DEICONIFY_ALL` `GUIManagerAction.KILL_AGENTS`

  - ### Uses of AbstractAgent in madkit.kernel

    Classes in madkit.kernel with type parameters of type AbstractAgent
    Modifier and Type | Class and Description
    --- | ---
    `class` | `Activator<A extends AbstractAgent>` This class defines a tool for scheduling mechanism.
    `class` | `Probe<A extends AbstractAgent>` This class defines a watcher's generic probe.

    Subclasses of AbstractAgent in madkit.kernel
    Modifier and Type | Class and Description
    --- | ---
    `class` | `Agent` The super class of all MaDKit threaded agents, v 5.
    `class` | `Scheduler` Scheduler is the core agent for defining multi-agent based simulations.
    `class` | `Watcher` This class defines a generic watcher agent.

    Methods in madkit.kernel that return AbstractAgent
    Modifier and Type | Method and Description
    --- | ---
    `AbstractAgent` | AbstractAgent.`launchAgent(String agentClass)` Launches a new agent using its full class name.
    `AbstractAgent` | AbstractAgent.`launchAgent(String agentClass, boolean createFrame)` Launches a new agent using its full class name.
    `AbstractAgent` | AbstractAgent.`launchAgent(String agentClass, int timeOutSeconds)` Launches a new agent using its full class name.
    `AbstractAgent` | AbstractAgent.`launchAgent(String agentClass, int timeOutSeconds, boolean createFrame)` Launches a new agent using its full class name and returns when the launched agent has completed its `activate()` method or when the time out is elapsed.

    Methods in madkit.kernel that return types with arguments of type AbstractAgent
    Modifier and Type | Method and Description
    --- | ---
    `Set<Probe<? extends AbstractAgent>>` | Watcher.`getProbes()` Returns the probes which have been successfully added
    `List<AbstractAgent>` | AbstractAgent.`launchAgentBucket(String agentClass, int bucketSize, int cpuCoreNb, String... roles)` Optimizes mass agent launching.
    `List<AbstractAgent>` | AbstractAgent.`launchAgentBucket(String agentClass, int bucketSize, String... roles)` This has the same effect as `launchAgentBucket(agentClass, bucketSize, 1, roles)`.

    Methods in madkit.kernel with parameters of type AbstractAgent
    Modifier and Type | Method and Description
    --- | ---
    `int` | AbstractAgent.`compareTo(AbstractAgent other)` Compares this agent with the specified agent for order with respect to instantiation time.
    `void` | Activator.`executeBehaviorOf(AbstractAgent agent, String behaviorName, Object... args)` Executes a specific method on a targeted agent.
    `AbstractAgent.ReturnCode` | AbstractAgent.`killAgent(AbstractAgent target)` Kills the targeted agent.
    `AbstractAgent.ReturnCode` | AbstractAgent.`killAgent(AbstractAgent target, int timeOutSeconds)` Kills the targeted agent.
    `AbstractAgent.ReturnCode` | Agent.`killAgent(AbstractAgent target, int timeOutSeconds)`
    `AbstractAgent.ReturnCode` | AbstractAgent.`launchAgent(AbstractAgent agent)` Launches a new agent in the MaDKit platform.
    `AbstractAgent.ReturnCode` | AbstractAgent.`launchAgent(AbstractAgent agent, boolean createFrame)` Launches a new agent in the MaDKit platform.
    `AbstractAgent.ReturnCode` | AbstractAgent.`launchAgent(AbstractAgent agent, int timeOutSeconds)` Launches a new agent in the MaDKit platform.
    `AbstractAgent.ReturnCode` | AbstractAgent.`launchAgent(AbstractAgent agent, int timeOutSeconds, boolean createFrame)` Launches a new agent and returns when the agent has completed its `activate()` method or when `timeOutSeconds` seconds elapsed.

    Method parameters in madkit.kernel with type arguments of type AbstractAgent
    Modifier and Type | Method and Description
    --- | ---
    `void` | Scheduler.`addActivator(Activator<? extends AbstractAgent> activator)` Adds an activator to the simulation engine.
    `void` | Watcher.`addProbe(Probe<? extends AbstractAgent> probe)` Adds the probe to the artificial organization so that it starts to probe the agents which are at the corresponding CGR location.
    `void` | Scheduler.`executeAndLog(Activator<? extends AbstractAgent> activator, Object... args)` Triggers the execute method of this `activator` and logs it using the `Level.FINER` logging level
    `static Field` | Probe.`findFieldOn(Class<? extends AbstractAgent> agentClass, String fieldName)` Returns the agent's field named `fieldName`.
    `void` | AbstractAgent.`launchAgentBucket(List<? extends AbstractAgent> bucket, int nbOfParallelTasks, String... roles)` Similar to `launchAgentBucket(String, int, String...)` except that the list of agents to launch is given.
    `void` | AbstractAgent.`launchAgentBucket(List<? extends AbstractAgent> bucket, String... roles)` This call is equivalent to This has the same effect as `launchAgentBucket(bucket, 1, roles)`, That is only one core will be used for the launch.
    `void` | Scheduler.`removeActivator(Activator<? extends AbstractAgent> activator)` Removes an activator from the simulation engine.
    `void` | Watcher.`removeProbe(Probe<? extends AbstractAgent> probe)` Removes the probe from the artificial organization, thus stopping the probing activity.
    `void` | Scheduler.`setActivatorPriority(Activator<? extends AbstractAgent> activator, int priority)` Sets the priority of an `Activator`.

  - ### Uses of AbstractAgent in madkit.message.hook

    Methods in madkit.message.hook that return AbstractAgent
    Modifier and Type | Method and Description
    --- | ---
    `AbstractAgent` | AgentLifeEvent.`getSource()` The agent which is related to this event

    Constructors in madkit.message.hook with parameters of type AbstractAgent
    Constructor and Description
    `AgentLifeEvent(HookMessage.AgentActionEvent agentAction, AbstractAgent agent)`

  - ### Uses of AbstractAgent in madkit.simulation.activator

    Classes in madkit.simulation.activator with type parameters of type AbstractAgent
    Modifier and Type | Class and Description
    --- | ---
    `class` | `DateBasedDiscreteEventActivator<A extends AbstractAgent>` A behavior activator that is designed to work with a `DateBasedDiscreteEventScheduler`, that is following a discrete-event simulation scheme.
    `class` | `DiscreteEventAgentsActivator<A extends AbstractAgent>` An activator that works using a discrete-event simulation scheme.
    `class` | `GenericBehaviorActivator<A extends AbstractAgent>` An activator that invokes a single method with no parameters on a group of agents.

  - ### Uses of AbstractAgent in madkit.simulation.model

    Subclasses of AbstractAgent in madkit.simulation.model
    Modifier and Type | Class and Description
    --- | ---
    `class` | `AbstractModel` Prototype class that will be used to encapsulate simulation models in a near future.

    Methods in madkit.simulation.model with parameters of type AbstractAgent
    Modifier and Type | Method and Description
    --- | ---
    `JPanel` | AbstractModel.`getParametersView(String label, AbstractAgent onInstance)` Returns a panel containing sliders operating on all the `BoundedRangeModel` fields which are found in this model.

  - ### Uses of AbstractAgent in madkit.simulation.probe

    Classes in madkit.simulation.probe with type parameters of type AbstractAgent
    Modifier and Type | Class and Description
    --- | ---
    `class` | `PropertyProbe<A extends AbstractAgent,T>` This probe inspects fields of type T on agents of type A and its subclasses.
    `class` | `SingleAgentProbe<A extends AbstractAgent,T>` This probe inspects fields of type T on only one agent of type A and its subclasses.

  - ### Uses of AbstractAgent in madkit.simulation.scheduler

    Subclasses of AbstractAgent in madkit.simulation.scheduler
    Modifier and Type | Class and Description
    --- | ---
    `class` | `DateBasedDiscreteEventScheduler`

    Methods in madkit.simulation.scheduler that return types with arguments of type AbstractAgent
    Modifier and Type | Method and Description
    --- | ---
    `PriorityQueue<DateBasedDiscreteEventActivator<? extends AbstractAgent>>` | DateBasedDiscreteEventScheduler.`getActivationList()`

    Method parameters in madkit.simulation.scheduler with type arguments of type AbstractAgent
    Modifier and Type | Method and Description
    --- | ---
    `void` | DateBasedDiscreteEventScheduler.`addActivator(Activator<? extends AbstractAgent> activator)`

  - ### Uses of AbstractAgent in madkit.simulation.viewer

    Subclasses of AbstractAgent in madkit.simulation.viewer
    Modifier and Type | Class and Description
    --- | ---
    `class` | `SwingViewer` A very basic simulation viewer agent.

Fabien Michel, Olivier Gutknecht, Jacques Ferber - February 17 2020