## Uses of Class
bdi4jade.plan.Plan

- Packages that use Plan
  Package | Description
  --- | ---
  bdi4jade.core |
  bdi4jade.plan |
  bdi4jade.reasoning |
  bdi4jade.util.plan |
  bdi4jade.util.reasoning |

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

    Methods in bdi4jade.core that return types with arguments of type Plan
    Modifier and Type | Method and Description
    --- | ---
    `java.util.Set<Plan>` | PlanLibrary.`canAchievePlans(Goal goal)` Returns the set of plans that can achieve the given goal.
    `java.util.Set<Plan>` | PlanLibrary.`getPlans()`

    Methods in bdi4jade.core with parameters of type Plan
    Modifier and Type | Method and Description
    --- | ---
    `void` | PlanLibrary.`addPlan(Plan plan)` Adds a plan to the plan library.
    `boolean` | PlanLibrary.`hasPlan(Plan plan)` Checks if a plan is part of the plan library.
    `boolean` | PlanLibrary.`removePlan(Plan plan)` Removes a plan from the plan library.

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

  - ### Uses of Plan in bdi4jade.plan

    Methods in bdi4jade.plan that return Plan
    Modifier and Type | Method and Description
    --- | ---
    `Plan` | PlanInstance.`getPlan()` Returns the `Plan` that is associated with this plan instance.
    `Plan` | PlanGoalDependency.`getRoot()` Returns the plan that is the root of the plan-goal dependency, i.e.

    Constructors in bdi4jade.plan with parameters of type Plan
    Constructor and Description
    `AndPlanGoalDependency(Plan root)`
    `AndPlanGoalDependency(Plan root, java.util.List<Goal> goals)`
    `OrPlanGoalDependency(Plan root)`
    `OrPlanGoalDependency(Plan root, java.util.Map<Goal,java.lang.Double> goals)`
    `PlanGoalDependency(Plan root)`
    `PlanInstance(Plan plan, Intention intention)` Creates a new plan instance.

  - ### Uses of Plan in bdi4jade.reasoning

    Methods in bdi4jade.reasoning that return Plan
    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 Plan
    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.

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

    Subclasses of Plan in bdi4jade.util.plan
    Modifier and Type | Class and Description
    --- | ---
    `class` | `SimplePlan` This class represents a plan whose plan body is a class that can be instantiated by invoking the @likn `Class.newInstance()` method.

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

    Methods in bdi4jade.util.reasoning that return Plan
    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 Plan
    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)`