# Hierarchy For All Packages

Package Hierarchies:

- bdi4jade.annotation,
- bdi4jade.belief,
- bdi4jade.core,
- bdi4jade.event,
- bdi4jade.exception,
- bdi4jade.extension.planselection.utilitybased,
- bdi4jade.goal,
- bdi4jade.message,
- bdi4jade.plan,
- bdi4jade.plan.planbody,
- bdi4jade.reasoning,
- bdi4jade.util

## Class Hierarchy

- java.lang.Object
  - bdi4jade.reasoning.AbstractReasoningStrategy (implements bdi4jade.reasoning.ReasoningStrategy)
    - bdi4jade.reasoning.DefaultBeliefRevisionStrategy (implements bdi4jade.reasoning.BeliefRevisionStrategy)
    - bdi4jade.reasoning.DefaultDeliberationFunction (implements bdi4jade.reasoning.DeliberationFunction)
    - bdi4jade.reasoning.DefaultOptionGenerationFunction (implements bdi4jade.reasoning.OptionGenerationFunction)
    - bdi4jade.reasoning.DefaultPlanSelectionStrategy (implements bdi4jade.reasoning.PlanSelectionStrategy)
    - bdi4jade.extension.planselection.utilitybased.UtilityBasedPlanSelectionStrategy (implements bdi4jade.reasoning.PlanSelectionStrategy)
  - jade.core.Agent (implements java.lang.Runnable, jade.util.leap.Serializable, jade.core.TimerListener)
    - bdi4jade.core.BDIAgent
  - bdi4jade.message.BDIAgentMsgReceiver.BDIAgentMatchExpression (implements jade.lang.acl.MessageTemplate.MatchExpression)
  - jade.core.behaviours.Behaviour (implements jade.util.leap.Serializable)
    - bdi4jade.plan.planbody.AbstractPlanBody (implements bdi4jade.plan.planbody.PlanBody)
      - bdi4jade.plan.planbody.BeliefGoalPlanBody
      - bdi4jade.plan.planbody.ParallelGoalPlanBody (implements bdi4jade.plan.planbody.OutputPlanBody)
      - bdi4jade.plan.planbody.SequentialGoalPlanBody (implements bdi4jade.plan.planbody.OutputPlanBody)
    - jade.core.behaviours.CompositeBehaviour
      - jade.core.behaviours.ParallelBehaviour
        - bdi4jade.plan.planbody.ParallelActionPlanBody (implements bdi4jade.plan.planbody.PlanBody)
      - jade.core.behaviours.SerialBehaviour
        - jade.core.behaviours.FSMBehaviour
          - bdi4jade.plan.planbody.FSMPlanBody (implements bdi4jade.plan.planbody.PlanBody)
        - jade.core.behaviours.SequentialBehaviour
          - bdi4jade.plan.planbody.SequentialActionPlanBody (implements bdi4jade.plan.planbody.PlanBody)
    - jade.core.behaviours.SimpleBehaviour
      - jade.proto.states.MsgReceiver
        - bdi4jade.message.BDIAgentMsgReceiver
  - bdi4jade.belief.BeliefBase (implements java.io.Serializable)
  - bdi4jade.event.BeliefEvent (implements jade.content.AgentAction)
  - bdi4jade.goal.BeliefGoal (implements bdi4jade.goal.Goal)
    - bdi4jade.goal.BeliefValueGoal<T>
      - bdi4jade.goal.BeliefSetValueGoal<T>
  - bdi4jade.core.Capability (implements java.io.Serializable)
    - bdi4jade.extension.planselection.utilitybased.UtilityBasedBDIAgent
  - bdi4jade.goal.CompositeGoal (implements bdi4jade.goal.Goal)
    - bdi4jade.goal.ParallelGoal
    - bdi4jade.goal.SequentialGoal
  - bdi4jade.event.GoalEvent (implements jade.content.AgentAction)
  - bdi4jade.goal.GoalTemplateFactory
  - bdi4jade.core.GoalUpdateSet
  - bdi4jade.core.GoalUpdateSet.GoalDescription
  - bdi4jade.core.Intention
  - bdi4jade.message.MessageGoal (implements bdi4jade.goal.Goal)
  - bdi4jade.core.MetadataElementImpl (implements bdi4jade.core.MetadataElement)
    - bdi4jade.belief.AbstractBelief<T> (implements bdi4jade.belief.Belief<T>)
      - bdi4jade.belief.AbstractBeliefSet<T> (implements bdi4jade.belief.BeliefSet<T>)
        - bdi4jade.belief.TransientBeliefSet<T> (implements bdi4jade.belief.BeliefSet<T>)
      - bdi4jade.belief.PersistentBelief<T>
      - bdi4jade.belief.TransientBelief<T>
        - bdi4jade.extension.planselection.utilitybased.SoftgoalPreferences
    - bdi4jade.plan.AbstractPlan (implements bdi4jade.plan.Plan)
      - bdi4jade.plan.DefaultPlan
    - bdi4jade.goal.NamedSoftgoal (implements bdi4jade.core.MetadataElement, bdi4jade.goal.Softgoal)
  - bdi4jade.extension.planselection.utilitybased.PlanContribution
  - bdi4jade.extension.planselection.utilitybased.PlanGoalDependency
    - bdi4jade.extension.planselection.utilitybased.AndPlanGoalDependency
    - bdi4jade.extension.planselection.utilitybased.OrPlanGoalDependency
  - bdi4jade.plan.PlanLibrary (implements java.io.Serializable)
  - bdi4jade.util.ReflectionUtils
  - java.lang.Throwable (implements java.io.Serializable)
    - java.lang.Exception
      - bdi4jade.exception.ParameterException
      - bdi4jade.exception.PlanInstantiationException
      - java.lang.RuntimeException
        - bdi4jade.exception.BeliefAlreadyExistsException

## Interface Hierarchy

- bdi4jade.plan.planbody.DisposablePlanBody
- java.util.EventListener
  - bdi4jade.event.BeliefListener
  - bdi4jade.event.GoalListener
    - bdi4jade.plan.planbody.PlanBody
  - bdi4jade.plan.planbody.PlanBody
- bdi4jade.goal.GoalTemplate
- bdi4jade.core.MetadataElement
  - bdi4jade.belief.Belief<T> (also extends jade.content.Concept, java.io.Serializable)
    - bdi4jade.belief.BeliefSet<T>
  - bdi4jade.belief.BeliefSet<T>
  - bdi4jade.plan.Plan
- bdi4jade.plan.planbody.OutputPlanBody
- bdi4jade.reasoning.ReasoningStrategy
  - bdi4jade.reasoning.BeliefRevisionStrategy
  - bdi4jade.reasoning.DeliberationFunction
  - bdi4jade.reasoning.OptionGenerationFunction
  - bdi4jade.reasoning.PlanSelectionStrategy
- java.io.Serializable
  - bdi4jade.belief.Belief<T> (also extends jade.content.Concept, bdi4jade.core.MetadataElement)
    - bdi4jade.belief.BeliefSet<T>
  - bdi4jade.belief.BeliefSet<T>
  - jade.content.Concept
    - bdi4jade.belief.Belief<T> (also extends bdi4jade.core.MetadataElement, java.io.Serializable)
      - bdi4jade.belief.BeliefSet<T>
    - bdi4jade.belief.BeliefSet<T>
    - bdi4jade.goal.Goal (also extends jade.content.ContentElement)
    - bdi4jade.goal.Softgoal (also extends jade.content.ContentElement)
  - jade.content.ContentElement
    - bdi4jade.goal.Goal (also extends jade.content.Concept)
    - bdi4jade.goal.Softgoal (also extends jade.content.Concept)
  - bdi4jade.goal.Goal (also extends jade.content.Concept, jade.content.ContentElement)
  - jade.util.leap.Serializable
    - bdi4jade.belief.Belief<T> (also extends jade.content.Concept, bdi4jade.core.MetadataElement, java.io.Serializable)
      - bdi4jade.belief.BeliefSet<T>
    - bdi4jade.belief.BeliefSet<T>
    - jade.content.Concept
      - bdi4jade.belief.Belief<T> (also extends bdi4jade.core.MetadataElement, java.io.Serializable)
        - bdi4jade.belief.BeliefSet<T>
      - bdi4jade.belief.BeliefSet<T>
      - bdi4jade.goal.Goal (also extends jade.content.ContentElement)
      - bdi4jade.goal.Softgoal (also extends jade.content.ContentElement)
    - jade.content.ContentElement
      - bdi4jade.goal.Goal (also extends jade.content.Concept)
      - bdi4jade.goal.Softgoal (also extends jade.content.Concept)
    - bdi4jade.goal.Goal (also extends jade.content.Concept, jade.content.ContentElement)
    - bdi4jade.goal.Softgoal (also extends jade.content.Concept, jade.content.ContentElement)
    - jade.content.Term
      - bdi4jade.belief.Belief<T> (also extends jade.content.Concept, bdi4jade.core.MetadataElement, java.io.Serializable)
        - bdi4jade.belief.BeliefSet<T>
      - bdi4jade.belief.BeliefSet<T>
      - jade.content.Concept
        - bdi4jade.belief.Belief<T> (also extends bdi4jade.core.MetadataElement, java.io.Serializable)
          - bdi4jade.belief.BeliefSet<T>
        - bdi4jade.belief.BeliefSet<T>
        - bdi4jade.goal.Goal (also extends jade.content.ContentElement)
        - bdi4jade.goal.Softgoal (also extends jade.content.ContentElement)
      - bdi4jade.goal.Goal (also extends jade.content.Concept, jade.content.ContentElement)
      - bdi4jade.goal.Softgoal (also extends jade.content.Concept, jade.content.ContentElement)
  - bdi4jade.goal.Softgoal (also extends jade.content.Concept, jade.content.ContentElement)
  - jade.content.Term
    - bdi4jade.belief.Belief<T> (also extends jade.content.Concept, bdi4jade.core.MetadataElement, java.io.Serializable)
      - bdi4jade.belief.BeliefSet<T>
    - bdi4jade.belief.BeliefSet<T>
    - jade.content.Concept
      - bdi4jade.belief.Belief<T> (also extends bdi4jade.core.MetadataElement, java.io.Serializable)
        - bdi4jade.belief.BeliefSet<T>
      - bdi4jade.belief.BeliefSet<T>
      - bdi4jade.goal.Goal (also extends jade.content.ContentElement)
      - bdi4jade.goal.Softgoal (also extends jade.content.ContentElement)
    - bdi4jade.goal.Goal (also extends jade.content.Concept, jade.content.ContentElement)
    - bdi4jade.goal.Softgoal (also extends jade.content.Concept, jade.content.ContentElement)

## Annotation Type Hierarchy

- bdi4jade.annotation.Plan (implements java.lang.annotation.Annotation)
- bdi4jade.annotation.Parameter (implements java.lang.annotation.Annotation)
- bdi4jade.annotation.GoalOwner (implements java.lang.annotation.Annotation)
- bdi4jade.annotation.CapabilityAssociation (implements java.lang.annotation.Annotation)
- bdi4jade.annotation.Belief (implements java.lang.annotation.Annotation)

## Enum Hierarchy

- java.lang.Object
  - java.lang.Enum<E> (implements java.lang.Comparable<T>, java.io.Serializable)
    - bdi4jade.event.BeliefEvent.Action
    - bdi4jade.plan.Plan.EndState
    - bdi4jade.goal.GoalStatus
    - bdi4jade.annotation.Parameter.Direction