## Uses of Interface
bdi4jade.goal.GoalTemplate

- Packages that use GoalTemplate
  Package | Description
  --- | ---
  bdi4jade.goal | This package contains interfaces and classes that allows representation of goals and softgoals of an agent.
  bdi4jade.plan | This package contains interfaces and classes that allows representation of plans of BDI agents.

- - ### Uses of GoalTemplate in bdi4jade.goal

    Methods in bdi4jade.goal that return GoalTemplate
    Modifier and Type | Method and Description
    --- | ---
    `static GoalTemplate` | GoalTemplateFactory.`beliefGoal(java.lang.String beliefName)` This method creates a goal template that positively matches a goal if it is of the type `BeliefGoal` and has the given belief name.
    `static GoalTemplate` | GoalTemplateFactory.`beliefSetTypeGoal(java.lang.String beliefName, java.lang.Class<?> beliefValueClass)` This method creates a goal template that positively matches a goal if it is of the type `BeliefSetValueGoal`, has the given belief name, and its value is of the given type.
    `static GoalTemplate` | GoalTemplateFactory.`beliefSetValueGoal(java.lang.String beliefName, java.lang.Object beliefValue)` This method creates a goal template that positively matches a goal if it is of the type `BeliefSetValueGoal`, has the given belief name, and has the given value.
    `static GoalTemplate` | GoalTemplateFactory.`beliefTypeGoal(java.lang.String beliefName, java.lang.Class<?> beliefValueClass)` This method creates a goal template that positively matches a goal if it is of the type `BeliefValueGoal`, has the given belief name, and its value is of the given type.
    `static GoalTemplate` | GoalTemplateFactory.`beliefValueGoal(java.lang.String beliefName, java.lang.Object beliefValue)` This method creates a goal template that positively matches a goal if it is of the type `BeliefValueGoal`, has the given belief name, and has the given value.
    `static GoalTemplate` | GoalTemplateFactory.`goalType(java.lang.Class<? extends Goal> goalClass)` This method creates a goal template that positively matches a goal if it is of the given type.
    `static GoalTemplate` | GoalTemplateFactory.`nullBeliefValueGoal(java.lang.String beliefName)` This method creates a goal template that positively matches a goal if it is of the type `BeliefValueGoal`, has the given belief name, and is associated with a null value.

  - ### Uses of GoalTemplate in bdi4jade.plan

    Methods in bdi4jade.plan that return types with arguments of type GoalTemplate
    Modifier and Type | Method and Description
    --- | ---
    `java.util.Set<GoalTemplate>` | AbstractPlan.`getGoalTemplates()` Returns the set of goal templates of the goals that can be achieved by this plan.

    Methods in bdi4jade.plan with parameters of type GoalTemplate
    Modifier and Type | Method and Description
    --- | ---
    `void` | AbstractPlan.`addGoalTemplate(GoalTemplate goalTemplate)` Adds template of goals that this plan can achieve.

    Constructors in bdi4jade.plan with parameters of type GoalTemplate
    Constructor and Description
    `AbstractPlan(java.lang.String id, GoalTemplate goalTemplate)` Creates a new plan with an identifier and a template of goals it can achieve.
    `AbstractPlan(java.lang.String id, GoalTemplate goalTemplate, jade.lang.acl.MessageTemplate messageTemplate)` Creates a new plan with an identifier, a template of goals it can achieve, and a template of messages it can process.
    `DefaultPlan(GoalTemplate goalTemplate, java.lang.Class<? extends PlanBody> planBodyClass)` Creates a new simple plan, which is able to achieve goals that match the provided template.
    `DefaultPlan(GoalTemplate goalTemplate, jade.lang.acl.MessageTemplate messageTemplate, java.lang.Class<? extends PlanBody> planBodyClass)` Creates a new simple plan, which is able to achieve goals that match the provided goal template and process messages that match the provided message template.
    `DefaultPlan(java.lang.String id, GoalTemplate goalTemplate, java.lang.Class<? extends PlanBody> planBodyClass)` Creates a new simple plan, which is able to achieve goals that match the provided template.
    `DefaultPlan(java.lang.String id, GoalTemplate goalTemplate, jade.lang.acl.MessageTemplate messageTemplate, java.lang.Class<? extends PlanBody> planBodyClass)` Creates a new simple plan, which is able to achieve goals that match the provided goal template and process messages that match the provided message template.