## 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.`goalOfType(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.`hasBelief(java.lang.Object beliefName)` This method creates a goal template that positively matches a goal if it is of the type `BeliefPresentGoal` and has the given belief name.
    `static GoalTemplate` | GoalTemplateFactory.`hasBeliefOfType(java.lang.Class<?> beliefNameClass)` This method creates a goal template that positively matches a goal if it is of the type `BeliefPresentGoal` and has a belief name of the given type.
    `static GoalTemplate` | GoalTemplateFactory.`hasBeliefOfTypeWithNotNullValue(java.lang.Class<?> beliefNameClass)` This method creates a goal template that positively matches a goal if it is of the type `BeliefNotNullValueGoal`, has the a belief name of the given type.
    `static GoalTemplate` | GoalTemplateFactory.`hasBeliefOfTypeWithNullValue(java.lang.Class<?> beliefNameClass)` This method creates a goal template that positively matches a goal if it is of the type `BeliefValueGoal`, has the a belief name of the given type, and is associated with a null value.
    `static GoalTemplate` | GoalTemplateFactory.`hasBeliefOfTypeWithValue(java.lang.Class<?> beliefNameClass, java.lang.Object beliefValue)` This method creates a goal template that positively matches a goal if it is of the type `BeliefValueGoal`, is of the class of given belief name class, and has the given value.
    `static GoalTemplate` | GoalTemplateFactory.`hasBeliefValue(java.lang.Object 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.`hasBeliefValueOfType(java.lang.Object 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.`hasBeliefWithNotNullValue(java.lang.Object beliefName)` This method creates a goal template that positively matches a goal if it is of the type `BeliefNotNullValueGoal`, has the given belief name.
    `static GoalTemplate` | GoalTemplateFactory.`hasBeliefWithNullValue(java.lang.Object 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.
    `static GoalTemplate` | GoalTemplateFactory.`hasNoBelief(java.lang.Object beliefName)` This method creates a goal template that positively matches a goal if it is of the type `BeliefNotPresentGoal` and has the given belief name.
    `static GoalTemplate` | GoalTemplateFactory.`hasNoBeliefOfType(java.lang.Class<?> beliefNameClass)` This method creates a goal template that positively matches a goal if it is of the type `BeliefNotPresentGoal` and has the given belief name.
    `static GoalTemplate` | GoalTemplateFactory.`hasValueInBeliefSet(java.lang.Object beliefName, java.lang.Object beliefValue)` This method creates a goal template that positively matches a goal if it is of the type `BeliefSetHasValueGoal`, has the given belief name, and has the given value.
    `static GoalTemplate` | GoalTemplateFactory.`hasValueOfTypeInBeliefSet(java.lang.Object beliefName, java.lang.Class<?> beliefValueClass)` This method creates a goal template that positively matches a goal if it is of the type `BeliefSetHasValueGoal`, has the given belief name, and its value is of the given type.

  - ### 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.