## Uses of Class
bdi4jade.core.Capability

- Packages that use Capability
  Package | Description
  --- | ---
  bdi4jade.belief | This package contains interfaces and classes that allows representation of beliefs of an agent, which are stored in belief bases, part of agent capabilities.
  bdi4jade.core | This package contains the key classes of BDI4JADE.
  bdi4jade.extension.planselection.utilitybased |
  bdi4jade.plan | This package contains interfaces and classes that allows representation of plans of BDI agents.
  bdi4jade.plan.planbody | This package contains interfaces and classes that allows representation of plan body, which is an executable piece of code that is instantiated and executed to achieve goals.
  bdi4jade.reasoning | This package contains interfaces and classes to specify strategies associated with customization points of the BDI agent reasoning cycle.
  bdi4jade.util | This package contains utility classes.

- - ### Uses of Capability in bdi4jade.belief

    Methods in bdi4jade.belief that return Capability
    Modifier and Type | Method and Description
    --- | ---
    `Capability` | BeliefBase.`getCapability()` Returns the capability with which this belief base is associated.

    Methods in bdi4jade.belief with parameters of type Capability
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | BeliefBase.`setCapability(Capability capability)` Associates a capability with this belief base.

    Constructors in bdi4jade.belief with parameters of type Capability
    Constructor and Description
    `BeliefBase(Capability capability)` Creates a belief base associated with a capability.
    `BeliefBase(Capability capability, java.util.Set<Belief<?,?>> beliefs)` Creates a belief base associated with a capability and adds the beliefs in the provided belief set as the initial beliefs of this belief base.

  - ### Uses of Capability in bdi4jade.core

    Methods in bdi4jade.core that return Capability
    Modifier and Type | Method and Description
    --- | ---
    `Capability` | SingleCapabilityAgent.`getCapability()` Returns the capability of this agent.
    `Capability` | Intention.`getDispatcher()` Returns the capability that dispatched this goal.
    `Capability` | GoalUpdateSet.GoalDescription.`getDispatcher()` Returns the capability that dispatched the goal.
    `Capability` | Capability.`getWholeCapability()` Returns the whole-capability, if this is a part capability.

    Methods in bdi4jade.core that return types with arguments of type Capability
    Modifier and Type | Method and Description
    --- | ---
    `java.util.Collection<Capability>` | BDIAgent.`getAllCapabilities()` Returns all capabilities that are part of this agent.
    `java.util.Collection<Capability>` | AbstractBDIAgent.`getAllCapabilities()`
    `java.util.Set<Capability>` | Capability.`getAssociatedCapabilities()` Returns all capabilities with which this capability is associated.
    `java.util.Set<Capability>` | BDIAgent.`getCapabilities()` Returns the capabilities of this agent.
    `java.util.Set<Capability>` | AbstractBDIAgent.`getCapabilities()`
    `java.util.Set<Capability>` | Capability.`getGoalOwner(java.lang.Class<? extends Capability> owner, boolean internal)` Returns the capability instances that owns a dispatched goal, considering the superclasses of this capability, its associations and compositions.
    `protected java.util.Set<Capability>` | AbstractBDIAgent.`getGoalOwner(java.lang.Class<? extends Capability> owner, boolean internal)` Returns the capability instances that owns a dispatched goal, considering the aggregated capabilities of this agent.
    `java.util.Set<Capability>` | Intention.`getOwners()` Returns the set of capabilities that own this goal.
    `java.util.List<java.lang.Class<? extends Capability>>` | Capability.`getParentCapabilities()` Returns the classes of all parent capabilities of this capability.
    `java.util.Set<Capability>` | Capability.`getPartCapabilities()` Returns the parts of this capability.

    Methods in bdi4jade.core with parameters of type Capability
    Modifier and Type | Method and Description
    --- | ---
    `void` | Capability.`addAssociatedCapability(Capability capability)` Associates a capability to this capability.
    `void` | MultipleCapabilityAgent.`addCapability(Capability capability)`
    `boolean` | BDIAgent.`addGoal(Capability dispatcher, Goal goal)` Adds a new goal to this agent to be achieved.
    `boolean` | AbstractBDIAgent.`addGoal(Capability dispatcher, Goal goal)`
    `boolean` | BDIAgent.`addGoal(Capability dispatcher, Goal goal, GoalListener goalListener)` Adds a new goal to this agent to be achieved and adds a listener to observe events related to this goal.
    `boolean` | AbstractBDIAgent.`addGoal(Capability dispatcher, Goal goal, GoalListener goalListener)`
    `void` | Capability.`addPartCapability(Capability partCapability)` Adds a capability as part of this capability, which is a whole-capability.
    `void` | GoalUpdateSet.`generateGoal(Goal goal, Capability dispatcher)` Indicates that a goal should be added to the agent, with the capability that dispatched the goal.
    `void` | Capability.`removeAssociatedCapability(Capability capability)` Dissociates a capability of this capability.
    `boolean` | MultipleCapabilityAgent.`removeCapability(Capability capability)`
    `boolean` | Capability.`removePartCapability(Capability partCapability)` Removes a capability as part of this capability, which is a whole-capability.
    `void` | SingleCapabilityAgent.`setCapability(Capability capability)` Sets the capability of this agent.

    Method parameters in bdi4jade.core with type arguments of type Capability
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | Capability.`addAnnotatedFields(java.lang.Class<? extends Capability> capabilityClass)` Adds by reflection capability components, such as beliefs and plans, according to annotated fields.
    `void` | Capability.`addCandidatePlans(Goal goal, java.util.Map<Capability,java.util.Set<Plan>> candidatePlansMap)` Adds the set of plans of this capability that can achieve the given goal to a map of candidate plans.
    `java.util.Set<Capability>` | Capability.`getGoalOwner(java.lang.Class<? extends Capability> owner, boolean internal)` Returns the capability instances that owns a dispatched goal, considering the superclasses of this capability, its associations and compositions.
    `protected java.util.Set<Capability>` | AbstractBDIAgent.`getGoalOwner(java.lang.Class<? extends Capability> owner, boolean internal)` Returns the capability instances that owns a dispatched goal, considering the aggregated capabilities of this agent.

    Constructors in bdi4jade.core with parameters of type Capability
    Constructor and Description
    `Intention(Goal goal, AbstractBDIAgent bdiAgent, Capability dispatcher)` Creates a new intention.
    `MultipleCapabilityAgent(Capability capability)` Creates a new BDIAgent with a single capability.
    `MultipleCapabilityAgent(Capability[] capabilities)` Creates a new BDIAgent with a set of capabilities.
    `SingleCapabilityAgent(Capability capability)` Creates a new BDIAgent with the given capability.

    Constructor parameters in bdi4jade.core with type arguments of type Capability
    Constructor and Description
    `MultipleCapabilityAgent(java.util.Collection<Capability> capabilities)` Creates a new BDIAgent with a set of capabilities.

  - ### Uses of Capability in bdi4jade.extension.planselection.utilitybased

    Subclasses of Capability in bdi4jade.extension.planselection.utilitybased
    Modifier and Type | Class and Description
    --- | ---
    `class` | `UtilityBasedCabability`

  - ### Uses of Capability in bdi4jade.plan

    Methods in bdi4jade.plan that return Capability
    Modifier and Type | Method and Description
    --- | ---
    `Capability` | PlanLibrary.`getCapability()` Returns the capability with which this plan library is associated.

    Constructors in bdi4jade.plan with parameters of type Capability
    Constructor and Description
    `PlanLibrary(Capability capability)` Creates a plan library associated with a capability.
    `PlanLibrary(Capability capability, java.util.Set<Plan> plans)` Creates a plan library base associated with a capability and adds the plans in the provided set.

  - ### Uses of Capability in bdi4jade.plan.planbody

    Methods in bdi4jade.plan.planbody that return Capability
    Modifier and Type | Method and Description
    --- | ---
    `Capability` | SequentialActionPlanBody.`getCapability()`
    `Capability` | PlanBody.`getCapability()` Returns the capability associated with the plan of this plan body.
    `Capability` | ParallelActionPlanBody.`getCapability()`
    `Capability` | FSMPlanBody.`getCapability()`
    `Capability` | AbstractPlanBody.`getCapability()`

  - ### Uses of Capability in bdi4jade.reasoning

    Fields in bdi4jade.reasoning declared as Capability
    Modifier and Type | Field and Description
    --- | ---
    `protected Capability` | AbstractReasoningStrategy.`capability`

    Methods in bdi4jade.reasoning with parameters of type Capability
    Modifier and Type | Method and Description
    --- | ---
    `void` | ReasoningStrategy.`setCapability(Capability capability)` Sets the capability with which this strategy is associated with.
    `void` | AbstractReasoningStrategy.`setCapability(Capability capability)`

    Method parameters in bdi4jade.reasoning with type arguments of type Capability
    Modifier and Type | Method and Description
    --- | ---
    `java.util.Set<Goal>` | DefaultAgentDeliberationFunction.`filter(java.util.Set<GoalUpdateSet.GoalDescription> agentGoals, java.util.Map<Capability,java.util.Set<GoalUpdateSet.GoalDescription>> capabilityGoals)` This default implementation selects all agent goals (those not dispatched within the scope of a capability) to be achieved, and requests each of its capabilities to filter their goals.
    `java.util.Set<Goal>` | AgentDeliberationFunction.`filter(java.util.Set<GoalUpdateSet.GoalDescription> agentGoals, java.util.Map<Capability,java.util.Set<GoalUpdateSet.GoalDescription>> capabilityGoals)` This method is responsible for selecting a set of goals that must be tried to be achieved (intentions) from the set of goals.
    `void` | DefaultAgentOptionGenerationFunction.`generateGoals(GoalUpdateSet agentGoalUpdateSet, java.util.Map<Capability,GoalUpdateSet> capabilityGoalUpdateSets)` This default implementation requests each of its capabilities to generate or drop goals.
    `void` | AgentOptionGenerationFunction.`generateGoals(GoalUpdateSet agentGoalUpdateSet, java.util.Map<Capability,GoalUpdateSet> capabilityGoalUpdateSets)` This method is responsible for generating new goals or dropping existing ones.
    `Plan` | DefaultAgentPlanSelectionStrategy.`selectPlan(Goal goal, java.util.Map<Capability,java.util.Set<Plan>> capabilityPlans)` This default implementation requests each of its capabilities to select one of its plans, and this method selects one of them, randomly.
    `Plan` | AgentPlanSelectionStrategy.`selectPlan(Goal goal, java.util.Map<Capability,java.util.Set<Plan>> capabilityPlans)` This method is responsible for selecting plans to achieve a goals of this agent.

  - ### Uses of Capability in bdi4jade.util

    Methods in bdi4jade.util with parameters of type Capability
    Modifier and Type | Method and Description
    --- | ---
    `static void` | ReflectionUtils.`addGoalOwner(java.util.Map<java.lang.Class<? extends Capability>,java.util.Set<Capability>> goalOwnersMap, Capability capability)` Adds to the goal owners map the capability classes that owns a goal to the capability instance passed as parameter.

    Method parameters in bdi4jade.util with type arguments of type Capability
    Modifier and Type | Method and Description
    --- | ---
    `static void` | ReflectionUtils.`addGoalOwner(java.util.Map<java.lang.Class<? extends Capability>,java.util.Set<Capability>> goalOwnersMap, Capability capability)` Adds to the goal owners map the capability classes that owns a goal to the capability instance passed as parameter.
    `static void` | ReflectionUtils.`addGoalOwner(java.util.Map<java.lang.Class<? extends Capability>,java.util.Set<Capability>> goalOwnersMap, Capability capability)` Adds to the goal owners map the capability classes that owns a goal to the capability instance passed as parameter.