## Uses of Interface
bdi4jade.event.GoalListener

- Packages that use GoalListener
  Package | Description
  --- | ---
  bdi4jade.core |
  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.

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

    Methods in bdi4jade.core that return types with arguments of type GoalListener
    Modifier and Type | Method and Description
    --- | ---
    `java.util.List<GoalListener>` | Intention.`getGoalListeners()`

    Methods in bdi4jade.core with parameters of type GoalListener
    Modifier and Type | Method and Description
    --- | ---
    `void` | BDIAgent.`addGoal(Capability dispatcher, 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, GoalListener goalListener)` Adds a new goal to this agent to be achieved and adds a listener to observe its end.
    `void` | Intention.`addGoalListener(GoalListener goalListener)` Adds a listener to be notified when the given has achieve its end state.
    `void` | Intention.`removeGoalListener(GoalListener goalListener)` Removes a goal listener to not be notified about the goal achievement anymore.

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

    Subinterfaces of GoalListener in bdi4jade.plan.planbody
    Modifier and Type | Interface and Description
    --- | ---
    `interface` | `PlanBody` This interface defines a plan body, which specifies a set of steps to achieve a goal.

    Classes in bdi4jade.plan.planbody that implement GoalListener
    Modifier and Type | Class and Description
    --- | ---
    `class` | `AbstractPlanBody` This class provides an almost complete implementation of the `PlanBody` interface.
    `class` | `BeliefGoalPlanBody` This plan body aims to achieve a `BeliefGoal`.
    `class` | `FSMPlanBody` This allows a plan body to inherit from both `AbstractPlanBody` and `FSMBehaviour`.
    `class` | `ParallelActionPlanBody` This allows a plan body to inherit from both `AbstractPlanBody` and `ParallelBehaviour`.
    `class` | `ParallelGoalPlanBody` This plan body provides the set of actions to achieve a `ParallelGoal`.
    `class` | `SequentialActionPlanBody` This allows a plan body to inherit from both `AbstractPlanBody` and `SequentialBehaviour`.
    `class` | `SequentialGoalPlanBody` This plan body provides the set of actions to achieve a `SequentialGoal`.