## Uses of Interface
bdi4jade.goal.Goal

- Packages that use Goal
  Package | Description
  --- | ---
  bdi4jade.core |
  bdi4jade.event |
  bdi4jade.exception |
  bdi4jade.goal |
  bdi4jade.message |
  bdi4jade.plan |
  bdi4jade.reasoning |
  bdi4jade.util.goal |
  bdi4jade.util.plan |
  bdi4jade.util.reasoning |

- - ### Uses of Goal in bdi4jade.core

    Methods in bdi4jade.core that return Goal
    Modifier and Type | Method and Description
    --- | ---
    `Goal` | Intention.`getGoal()`

    Methods in bdi4jade.core that return types with arguments of type Goal
    Modifier and Type | Method and Description
    --- | ---
    `java.util.Set<Goal>` | BDIAgent.`getAllGoals()` Gets all goals of this agent.

    Methods in bdi4jade.core with parameters of type Goal
    Modifier and Type | Method and Description
    --- | ---
    `void` | BDIAgent.`addGoal(Capability owner, Goal goal)` Adds a new goal to this agent to be achieved.
    `void` | BDIAgent.`addGoal(Capability owner, Goal goal, GoalListener goalListener)` Adds a new goal to this agent to be achieved and adds a listener to observe its end.
    `void` | BDIAgent.`addGoal(Goal goal)` Adds a new goal to this agent to be achieved.
    `void` | BDIAgent.`addGoal(Goal goal, GoalListener goalListener)` Adds a new goal to this agent to be achieved and adds a listener to observe its end.
    `java.util.Set<Plan>` | PlanLibrary.`canAchievePlans(Goal goal)` Returns the set of plans that can achieve the given goal.
    `void` | BDIAgent.`dropGoal(Goal goal)` Drops a given goal of this agent.
    `void` | BDIAgent.`setNoLongerDesired(Goal goal)` Sets a goal to be no longer desired.

    Constructors in bdi4jade.core with parameters of type Goal
    Constructor and Description
    `Intention(Goal goal, BDIAgent bdiAgent)` Creates a new intention.
    `Intention(Goal goal, BDIAgent bdiAgent, Capability owner)` Creates a new intention.

  - ### Uses of Goal in bdi4jade.event

    Methods in bdi4jade.event that return Goal
    Modifier and Type | Method and Description
    --- | ---
    `Goal` | GoalEvent.`getGoal()`

    Methods in bdi4jade.event with parameters of type Goal
    Modifier and Type | Method and Description
    --- | ---
    `void` | GoalEvent.`setGoal(Goal goal)`

    Constructors in bdi4jade.event with parameters of type Goal
    Constructor and Description
    `GoalEvent(Goal goal)` Creates a new goal event with a goal.
    `GoalFinishedEvent(Goal goal, GoalStatus status)` Creates a new goal event with a goal and its status.

  - ### Uses of Goal in bdi4jade.exception

    Methods in bdi4jade.exception that return Goal
    Modifier and Type | Method and Description
    --- | ---
    `Goal` | GoalFailedException.`getGoal()`

    Constructors in bdi4jade.exception with parameters of type Goal
    Constructor and Description
    `GoalFailedException(Goal goal)` Creates a new instance of GoalFailedException.

  - ### Uses of Goal in bdi4jade.goal

    Subinterfaces of Goal in bdi4jade.goal
    Modifier and Type | Interface and Description
    --- | ---
    `interface` | `InternalGoal` This interface defines the abstraction of a goal, as the `Goal` interface.

  - ### Uses of Goal in bdi4jade.message

    Classes in bdi4jade.message that implement Goal
    Modifier and Type | Class and Description
    --- | ---
    `class` | `MessageGoal` This class represents the goal of processing a message.

  - ### Uses of Goal in bdi4jade.plan

    Methods in bdi4jade.plan that return Goal
    Modifier and Type | Method and Description
    --- | ---
    `Goal` | PlanInstance.`getGoal()` Returns the goal to be achieved by this plan instance.

    Methods in bdi4jade.plan that return types with arguments of type Goal
    Modifier and Type | Method and Description
    --- | ---
    `java.util.Map<Goal,java.lang.Double>` | OrPlanGoalDependency.`getGoals()` Returns the map of goals with their probabilities that the root plan depends on.
    `java.util.List<Goal>` | AndPlanGoalDependency.`getGoals()` Returns the set of goals that the root plan depends on.

    Methods in bdi4jade.plan with parameters of type Goal
    Modifier and Type | Method and Description
    --- | ---
    `void` | AndPlanGoalDependency.`addGoal(Goal goal)` Adds a goal to this dependency, indicating that the root plan depends on it.
    `void` | OrPlanGoalDependency.`addGoal(Goal goal, java.lang.Double probability)` Adds a goal to this dependency, indicating that the root plan depends on it, with a certain probability.
    `boolean` | Plan.`canAchieve(Goal goal)` Verifies if a given goal can be achieved by this plan.
    `void` | PlanInstance.`dispatchGoal(Goal goal)` Dispatches a goal to be achieved.
    `void` | PlanInstance.`dispatchProtectedGoal(Goal goal)` Dispatches a goal to be achieved, using the capability (or its children capabilities) associated with the plan.
    `void` | PlanInstance.`dispatchProtectedSubgoal(Goal subgoal)` Dispatches a subgoal to be achieved, using the capability (or its children capabilities) associated with the plan.
    `void` | PlanInstance.`dispatchProtectedSubgoalAndListen(Goal subgoal)` Dispatches a subgoal to be achieved, using the capability (or its children capabilities) associated with the plan, and registers itself as a listener to receive a notification of the end of execution of the goal.
    `void` | PlanInstance.`dispatchSubgoal(Goal subgoal)` Dispatches a subgoal to be achieved.
    `void` | PlanInstance.`dispatchSubgoalAndListen(Goal subgoal)` Dispatches a subgoal to be achieved and registers itself as a listener to receive a notification of the end of execution of the goal.
    `void` | OrPlanGoalDependency.`removeGoal(Goal goal)` Remove a goal from this dependency.
    `void` | AndPlanGoalDependency.`removeGoal(Goal goal)` Remove a goal from this dependency.
    `void` | OutputPlanBody.`setGoalOutput(Goal goal)` Sets the output parameters in the goal.

    Method parameters in bdi4jade.plan with type arguments of type Goal
    Modifier and Type | Method and Description
    --- | ---
    `void` | Plan.`addGoal(java.lang.Class<? extends Goal> goalClass)` Adds a goal class that this plan may achieve.

    Constructor parameters in bdi4jade.plan with type arguments of type Goal
    Constructor and Description
    `AndPlanGoalDependency(Plan root, java.util.List<Goal> goals)`
    `OrPlanGoalDependency(Plan root, java.util.Map<Goal,java.lang.Double> goals)`
    `Plan(java.lang.String id, java.lang.Class<? extends Goal> goalClass)` Constructs a new Plan.
    `Plan(java.lang.String id, java.lang.Class<? extends Goal> goalClass, jade.lang.acl.MessageTemplate messageTemplate)` Constructs a new Plan.

  - ### Uses of Goal in bdi4jade.reasoning

    Methods in bdi4jade.reasoning that return types with arguments of type Goal
    Modifier and Type | Method and Description
    --- | ---
    `java.util.Set<Goal>` | DeliberationFunction.`filter(java.util.Map<Goal,GoalStatus> goals)` Selects the goals that must be tried to achieve and the ones that will be in the waiting status.
    `java.util.Set<Goal>` | OptionGenerationFunction.`generateGoals(java.util.Map<Goal,GoalStatus> goals)` The goals parameter is a map of all goals of the agent (that might be intentions) with their corresponding status.

    Methods in bdi4jade.reasoning with parameters of type Goal
    Modifier and Type | Method and Description
    --- | ---
    `Plan` | PlanSelectionStrategy.`selectPlan(Goal goal, java.util.Set<Plan> plans)` Selects a plan to be executed to achieve the given goal.

    Method parameters in bdi4jade.reasoning with type arguments of type Goal
    Modifier and Type | Method and Description
    --- | ---
    `java.util.Set<Goal>` | DeliberationFunction.`filter(java.util.Map<Goal,GoalStatus> goals)` Selects the goals that must be tried to achieve and the ones that will be in the waiting status.
    `java.util.Set<Goal>` | OptionGenerationFunction.`generateGoals(java.util.Map<Goal,GoalStatus> goals)` The goals parameter is a map of all goals of the agent (that might be intentions) with their corresponding status.

  - ### Uses of Goal in bdi4jade.util.goal

    Classes in bdi4jade.util.goal that implement Goal
    Modifier and Type | Class and Description
    --- | ---
    `class` | `BeliefGoal` This class represents the goal of an agent believe in a certain belief, i.e.
    `class` | `BeliefSetValueGoal<T>` This class represents the goal of an agent believe in a belief that contains a certain value, i.e.
    `class` | `CompositeGoal` This class represents a goal that is a composition of other goals (subgoals).
    `class` | `ParallelGoal` This class represents a goal that aims at achieving all goals that compose this goal in a parallel way.
    `class` | `SequentialGoal` This class represents a goal that aims at achieving all goals that compose this goal in a sequential way.

    Methods in bdi4jade.util.goal that return types with arguments of type Goal
    Modifier and Type | Method and Description
    --- | ---
    `java.util.List<Goal>` | CompositeGoal.`getCompletedGoals()`
    `java.util.Collection<Goal>` | CompositeGoal.`getGoals()`

    Method parameters in bdi4jade.util.goal with type arguments of type Goal
    Modifier and Type | Method and Description
    --- | ---
    `void` | CompositeGoal.`setCompletedGoals(java.util.List<Goal> completedGoals)`

    Constructors in bdi4jade.util.goal with parameters of type Goal
    Constructor and Description
    `CompositeGoal(Goal[] goals)` Instantiate a CompositeGoal with the provided goals array.
    `ParallelGoal(Goal[] goals)` Creates a new ParallelGoal.
    `SequentialGoal(Goal[] goals)` Creates a new SequentialGoal.

    Constructor parameters in bdi4jade.util.goal with type arguments of type Goal
    Constructor and Description
    `CompositeGoal(java.util.Collection<Goal> goals)` Instantiate a CompositeGoal with the provided goals.
    `ParallelGoal(java.util.Set<Goal> goals)` Creates a new ParallelGoal.
    `SequentialGoal(java.util.List<Goal> goals)` Creates a new SequentialGoal.

  - ### Uses of Goal in bdi4jade.util.plan

    Methods in bdi4jade.util.plan with parameters of type Goal
    Modifier and Type | Method and Description
    --- | ---
    `void` | SequentialGoalPlanBody.`setGoalOutput(Goal goal)`
    `void` | ParallelGoalPlanBody.`setGoalOutput(Goal goal)`

    Constructor parameters in bdi4jade.util.plan with type arguments of type Goal
    Constructor and Description
    `SimplePlan(java.lang.Class<? extends Goal> goalClass, java.lang.Class<? extends jade.core.behaviours.Behaviour> planBodyClass)` Creates a new Simple Plan.
    `SimplePlan(java.lang.Class<? extends Goal> goalClass, jade.lang.acl.MessageTemplate messageTemplate, java.lang.Class<? extends jade.core.behaviours.Behaviour> planBodyClass)` Creates a new Simple Plan.
    `SimplePlan(java.lang.String id, java.lang.Class<? extends Goal> goalClass, java.lang.Class<? extends jade.core.behaviours.Behaviour> planBodyClass)` Creates a new Simple Plan.
    `SimplePlan(java.lang.String id, java.lang.Class<? extends Goal> goalClass, jade.lang.acl.MessageTemplate messageTemplate, java.lang.Class<? extends jade.core.behaviours.Behaviour> planBodyClass)` Creates a new Simple Plan.

  - ### Uses of Goal in bdi4jade.util.reasoning

    Methods in bdi4jade.util.reasoning that return types with arguments of type Goal
    Modifier and Type | Method and Description
    --- | ---
    `java.util.Set<Goal>` | DefaultDeliberationFunction.`filter(java.util.Map<Goal,GoalStatus> goals)`
    `java.util.Set<Goal>` | DefaultOptionGenerationFunction.`generateGoals(java.util.Map<Goal,GoalStatus> goals)`

    Methods in bdi4jade.util.reasoning with parameters of type Goal
    Modifier and Type | Method and Description
    --- | ---
    `Plan` | UtilityBasedPlanSelectionStrategy.`selectPlan(Goal goal, java.util.Set<Plan> plans)`
    `Plan` | DefaultPlanSelectionStrategy.`selectPlan(Goal goal, java.util.Set<Plan> plans)`

    Method parameters in bdi4jade.util.reasoning with type arguments of type Goal
    Modifier and Type | Method and Description
    --- | ---
    `java.util.Set<Goal>` | DefaultDeliberationFunction.`filter(java.util.Map<Goal,GoalStatus> goals)`
    `java.util.Set<Goal>` | DefaultOptionGenerationFunction.`generateGoals(java.util.Map<Goal,GoalStatus> goals)`