# Hierarchy For All Packages

Package Hierarchies:

- bdi4jade.annotation,
- bdi4jade.belief,
- bdi4jade.core,
- bdi4jade.event,
- bdi4jade.exception,
- bdi4jade.goal,
- bdi4jade.message,
- bdi4jade.plan,
- bdi4jade.preference,
- bdi4jade.reasoning,
- bdi4jade.softgoal,
- bdi4jade.util,
- bdi4jade.util.agent,
- bdi4jade.util.goal,
- bdi4jade.util.plan,
- bdi4jade.util.reasoning

## Class Hierarchy

- java.lang.Object
  - jade.core.Agent (implements java.lang.Runnable, jade.util.leap.Serializable, jade.core.TimerListener)
    - bdi4jade.core.BDIAgent
      - bdi4jade.util.agent.UtilityBasedBDIAgent
  - bdi4jade.message.BDIAgentMsgReceiver.BDIAgentMatchExpression (implements jade.lang.acl.MessageTemplate.MatchExpression)
  - jade.core.behaviours.Behaviour (implements jade.util.leap.Serializable)
    - bdi4jade.util.plan.ParallelGoalPlanBody (implements bdi4jade.plan.OutputPlanBody, bdi4jade.plan.PlanBody)
    - bdi4jade.util.plan.SequentialGoalPlanBody (implements bdi4jade.plan.OutputPlanBody, bdi4jade.plan.PlanBody)
    - jade.core.behaviours.SimpleBehaviour
      - jade.proto.states.MsgReceiver
        - bdi4jade.message.BDIAgentMsgReceiver
  - bdi4jade.core.BeliefBase (implements java.io.Serializable)
  - bdi4jade.event.BeliefEvent (implements jade.content.AgentAction)
  - bdi4jade.util.goal.BeliefGoal (implements bdi4jade.goal.Goal)
  - bdi4jade.util.goal.BeliefSetValueGoal<T> (implements bdi4jade.goal.Goal)
  - bdi4jade.core.Capability (implements java.io.Serializable)
    - bdi4jade.util.DefaultCapability
  - bdi4jade.util.goal.CompositeGoal (implements bdi4jade.goal.Goal)
    - bdi4jade.util.goal.ParallelGoal
    - bdi4jade.util.goal.SequentialGoal
  - bdi4jade.util.reasoning.DefaultBeliefRevisionStrategy (implements bdi4jade.reasoning.BeliefRevisionStrategy)
  - bdi4jade.util.reasoning.DefaultDeliberationFunction (implements bdi4jade.reasoning.DeliberationFunction)
  - bdi4jade.util.reasoning.DefaultOptionGenerationFunction (implements bdi4jade.reasoning.OptionGenerationFunction)
  - bdi4jade.util.reasoning.DefaultPlanSelectionStrategy (implements bdi4jade.reasoning.PlanSelectionStrategy)
  - bdi4jade.event.GoalEvent (implements jade.content.AgentAction)
    - bdi4jade.event.GoalFinishedEvent
  - bdi4jade.core.Intention
  - bdi4jade.message.MessageGoal (implements bdi4jade.goal.Goal)
  - bdi4jade.util.MetadataElement
    - bdi4jade.belief.Belief<T> (implements jade.content.Concept, java.io.Serializable)
      - bdi4jade.belief.BeliefSet<T>
        - bdi4jade.belief.TransientBeliefSet<T>
      - bdi4jade.belief.PersistentBelief<T> (implements jade.content.Concept, java.io.Serializable)
      - bdi4jade.belief.TransientBelief<T> (implements jade.content.Concept, java.io.Serializable)
        - bdi4jade.preference.SoftgoalPreferences
    - bdi4jade.plan.Plan
      - bdi4jade.util.plan.SimplePlan
  - bdi4jade.softgoal.NamedSoftgoal (implements bdi4jade.softgoal.Softgoal)
  - bdi4jade.plan.PlanContribution
  - bdi4jade.plan.PlanGoalDependency
    - bdi4jade.plan.AndPlanGoalDependency
    - bdi4jade.plan.OrPlanGoalDependency
  - bdi4jade.plan.PlanInstance (implements bdi4jade.event.GoalListener)
  - bdi4jade.core.PlanLibrary (implements java.io.Serializable)
  - java.lang.Throwable (implements java.io.Serializable)
    - java.lang.Exception
      - bdi4jade.exception.GoalFailedException
      - bdi4jade.exception.PlanInstantiationException
      - java.lang.RuntimeException
        - bdi4jade.exception.BeliefAlreadyExistsException
  - bdi4jade.util.reasoning.UtilityBasedPlanSelectionStrategy (implements bdi4jade.reasoning.PlanSelectionStrategy)

## Interface Hierarchy

- bdi4jade.reasoning.BeliefRevisionStrategy
- bdi4jade.reasoning.DeliberationFunction
- bdi4jade.plan.DisposablePlanBody
- java.util.EventListener
  - bdi4jade.event.BeliefListener
  - bdi4jade.event.GoalListener
- bdi4jade.reasoning.OptionGenerationFunction
- bdi4jade.plan.OutputPlanBody
- bdi4jade.plan.PlanBody
- bdi4jade.reasoning.PlanSelectionStrategy
- java.io.Serializable
  - jade.content.Concept
    - bdi4jade.goal.Goal (also extends jade.content.ContentElement)
      - bdi4jade.goal.InternalGoal
    - bdi4jade.goal.InternalGoal
    - bdi4jade.softgoal.Softgoal (also extends jade.content.ContentElement)
  - jade.content.ContentElement
    - bdi4jade.goal.Goal (also extends jade.content.Concept)
      - bdi4jade.goal.InternalGoal
    - bdi4jade.goal.InternalGoal
    - bdi4jade.softgoal.Softgoal (also extends jade.content.Concept)
  - bdi4jade.goal.Goal (also extends jade.content.Concept, jade.content.ContentElement)
    - bdi4jade.goal.InternalGoal
  - bdi4jade.goal.InternalGoal
  - jade.util.leap.Serializable
    - jade.content.Concept
      - bdi4jade.goal.Goal (also extends jade.content.ContentElement)
        - bdi4jade.goal.InternalGoal
      - bdi4jade.goal.InternalGoal
      - bdi4jade.softgoal.Softgoal (also extends jade.content.ContentElement)
    - jade.content.ContentElement
      - bdi4jade.goal.Goal (also extends jade.content.Concept)
        - bdi4jade.goal.InternalGoal
      - bdi4jade.goal.InternalGoal
      - bdi4jade.softgoal.Softgoal (also extends jade.content.Concept)
    - bdi4jade.goal.Goal (also extends jade.content.Concept, jade.content.ContentElement)
      - bdi4jade.goal.InternalGoal
    - bdi4jade.goal.InternalGoal
    - bdi4jade.softgoal.Softgoal (also extends jade.content.Concept, jade.content.ContentElement)
    - jade.content.Term
      - jade.content.Concept
        - bdi4jade.goal.Goal (also extends jade.content.ContentElement)
          - bdi4jade.goal.InternalGoal
        - bdi4jade.goal.InternalGoal
        - bdi4jade.softgoal.Softgoal (also extends jade.content.ContentElement)
      - bdi4jade.goal.Goal (also extends jade.content.Concept, jade.content.ContentElement)
        - bdi4jade.goal.InternalGoal
      - bdi4jade.goal.InternalGoal
      - bdi4jade.softgoal.Softgoal (also extends jade.content.Concept, jade.content.ContentElement)
  - bdi4jade.softgoal.Softgoal (also extends jade.content.Concept, jade.content.ContentElement)
  - jade.content.Term
    - jade.content.Concept
      - bdi4jade.goal.Goal (also extends jade.content.ContentElement)
        - bdi4jade.goal.InternalGoal
      - bdi4jade.goal.InternalGoal
      - bdi4jade.softgoal.Softgoal (also extends jade.content.ContentElement)
    - bdi4jade.goal.Goal (also extends jade.content.Concept, jade.content.ContentElement)
      - bdi4jade.goal.InternalGoal
    - bdi4jade.goal.InternalGoal
    - bdi4jade.softgoal.Softgoal (also extends jade.content.Concept, jade.content.ContentElement)

## Annotation Type Hierarchy

- bdi4jade.annotation.Parameter (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.PlanInstance.EndState
    - bdi4jade.plan.Plan.DefaultMetadata
    - bdi4jade.goal.GoalStatus
    - bdi4jade.annotation.Parameter.Direction