# Hierarchy For All Packages

Package Hierarchies:

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

## Class Hierarchy

- java.lang.Object
  - bdi4jade.reasoning.AbstractAgentReasoningStrategy (implements bdi4jade.reasoning.AgentReasoningStrategy)
    - bdi4jade.reasoning.DefaultAgentBeliefRevisionStrategy (implements bdi4jade.reasoning.AgentBeliefRevisionStrategy)
    - bdi4jade.reasoning.DefaultAgentDeliberationFunction (implements bdi4jade.reasoning.AgentDeliberationFunction)
    - bdi4jade.reasoning.DefaultAgentOptionGenerationFunction (implements bdi4jade.reasoning.AgentOptionGenerationFunction)
    - bdi4jade.reasoning.DefaultAgentPlanSelectionStrategy (implements bdi4jade.reasoning.AgentPlanSelectionStrategy)
  - bdi4jade.goal.AbstractBeliefGoal<K> (implements bdi4jade.goal.BeliefGoal<K>)
    - bdi4jade.goal.BeliefNotNullValueGoal<K,V>
    - bdi4jade.goal.BeliefNotPresentGoal<K>
    - bdi4jade.goal.BeliefPresentGoal<K>
    - bdi4jade.goal.BeliefSetHasValueGoal<K,V>
    - bdi4jade.goal.BeliefValueGoal<K,V>
      - bdi4jade.goal.PredicateGoal<K>
  - 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)
  - jade.core.Agent (implements java.lang.Runnable, jade.util.leap.Serializable, jade.core.TimerListener)
    - bdi4jade.core.AbstractBDIAgent (implements bdi4jade.core.BDIAgent)
      - bdi4jade.core.MultipleCapabilityAgent
      - bdi4jade.core.SingleCapabilityAgent
  - 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.core.Capability (implements java.io.Serializable)
  - 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<K,V> (implements bdi4jade.belief.Belief<K,V>)
      - bdi4jade.belief.AbstractBeliefSet<K,V> (implements bdi4jade.belief.BeliefSet<K,V>)
        - bdi4jade.belief.TransientBeliefSet<K,V>
      - bdi4jade.belief.DerivedBelief<K,V>
        - bdi4jade.belief.DerivedPredicate<K> (implements bdi4jade.belief.Predicate<K>)
      - bdi4jade.belief.PersistentBelief<K,V>
      - bdi4jade.belief.TransientBelief<K,V>
        - bdi4jade.belief.TransientPredicate<K> (implements bdi4jade.belief.Predicate<K>)
    - bdi4jade.plan.AbstractPlan (implements bdi4jade.plan.Plan)
      - bdi4jade.plan.DefaultPlan
    - bdi4jade.goal.NamedSoftgoal (implements bdi4jade.core.MetadataElement, bdi4jade.goal.Softgoal)
  - 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.reasoning.AgentReasoningStrategy
  - bdi4jade.reasoning.AgentBeliefRevisionStrategy
  - bdi4jade.reasoning.AgentDeliberationFunction
  - bdi4jade.reasoning.AgentOptionGenerationFunction
  - bdi4jade.reasoning.AgentPlanSelectionStrategy
- bdi4jade.core.BDIAgent
- java.lang.Cloneable
  - bdi4jade.belief.Belief<K,V> (also extends jade.content.Concept, jade.content.ContentElement, bdi4jade.core.MetadataElement, java.io.Serializable)
    - bdi4jade.belief.BeliefSet<K,V>
    - bdi4jade.belief.Predicate<K>
  - bdi4jade.belief.BeliefSet<K,V>
  - bdi4jade.belief.Predicate<K>
- 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<K,V> (also extends java.lang.Cloneable, jade.content.Concept, jade.content.ContentElement, java.io.Serializable)
    - bdi4jade.belief.BeliefSet<K,V>
    - bdi4jade.belief.Predicate<K>
  - bdi4jade.belief.BeliefSet<K,V>
  - bdi4jade.plan.Plan
  - bdi4jade.belief.Predicate<K>
- 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<K,V> (also extends java.lang.Cloneable, jade.content.Concept, jade.content.ContentElement, bdi4jade.core.MetadataElement)
    - bdi4jade.belief.BeliefSet<K,V>
    - bdi4jade.belief.Predicate<K>
  - bdi4jade.goal.BeliefGoal<K>
  - bdi4jade.belief.BeliefSet<K,V>
  - jade.content.Concept
    - bdi4jade.belief.Belief<K,V> (also extends java.lang.Cloneable, jade.content.ContentElement, bdi4jade.core.MetadataElement, java.io.Serializable)
      - bdi4jade.belief.BeliefSet<K,V>
      - bdi4jade.belief.Predicate<K>
    - bdi4jade.goal.BeliefGoal<K>
    - bdi4jade.belief.BeliefSet<K,V>
    - bdi4jade.goal.Goal (also extends jade.content.ContentElement, java.io.Serializable)
      - bdi4jade.goal.BeliefGoal<K>
    - bdi4jade.belief.Predicate<K>
    - bdi4jade.goal.Softgoal (also extends jade.content.ContentElement, java.io.Serializable)
  - jade.content.ContentElement
    - bdi4jade.belief.Belief<K,V> (also extends java.lang.Cloneable, jade.content.Concept, bdi4jade.core.MetadataElement, java.io.Serializable)
      - bdi4jade.belief.BeliefSet<K,V>
      - bdi4jade.belief.Predicate<K>
    - bdi4jade.goal.BeliefGoal<K>
    - bdi4jade.belief.BeliefSet<K,V>
    - bdi4jade.goal.Goal (also extends jade.content.Concept, java.io.Serializable)
      - bdi4jade.goal.BeliefGoal<K>
    - bdi4jade.belief.Predicate<K>
    - bdi4jade.goal.Softgoal (also extends jade.content.Concept, java.io.Serializable)
  - bdi4jade.goal.Goal (also extends jade.content.Concept, jade.content.ContentElement)
    - bdi4jade.goal.BeliefGoal<K>
  - bdi4jade.belief.Predicate<K>
  - jade.util.leap.Serializable
    - bdi4jade.belief.Belief<K,V> (also extends java.lang.Cloneable, jade.content.Concept, jade.content.ContentElement, bdi4jade.core.MetadataElement, java.io.Serializable)
      - bdi4jade.belief.BeliefSet<K,V>
      - bdi4jade.belief.Predicate<K>
    - bdi4jade.goal.BeliefGoal<K>
    - bdi4jade.belief.BeliefSet<K,V>
    - jade.content.Concept
      - bdi4jade.belief.Belief<K,V> (also extends java.lang.Cloneable, jade.content.ContentElement, bdi4jade.core.MetadataElement, java.io.Serializable)
        - bdi4jade.belief.BeliefSet<K,V>
        - bdi4jade.belief.Predicate<K>
      - bdi4jade.goal.BeliefGoal<K>
      - bdi4jade.belief.BeliefSet<K,V>
      - bdi4jade.goal.Goal (also extends jade.content.ContentElement, java.io.Serializable)
        - bdi4jade.goal.BeliefGoal<K>
      - bdi4jade.belief.Predicate<K>
      - bdi4jade.goal.Softgoal (also extends jade.content.ContentElement, java.io.Serializable)
    - jade.content.ContentElement
      - bdi4jade.belief.Belief<K,V> (also extends java.lang.Cloneable, jade.content.Concept, bdi4jade.core.MetadataElement, java.io.Serializable)
        - bdi4jade.belief.BeliefSet<K,V>
        - bdi4jade.belief.Predicate<K>
      - bdi4jade.goal.BeliefGoal<K>
      - bdi4jade.belief.BeliefSet<K,V>
      - bdi4jade.goal.Goal (also extends jade.content.Concept, java.io.Serializable)
        - bdi4jade.goal.BeliefGoal<K>
      - bdi4jade.belief.Predicate<K>
      - bdi4jade.goal.Softgoal (also extends jade.content.Concept, java.io.Serializable)
    - bdi4jade.goal.Goal (also extends jade.content.Concept, jade.content.ContentElement, java.io.Serializable)
      - bdi4jade.goal.BeliefGoal<K>
    - bdi4jade.belief.Predicate<K>
    - bdi4jade.goal.Softgoal (also extends jade.content.Concept, jade.content.ContentElement, java.io.Serializable)
    - jade.content.Term
      - bdi4jade.belief.Belief<K,V> (also extends java.lang.Cloneable, jade.content.Concept, jade.content.ContentElement, bdi4jade.core.MetadataElement, java.io.Serializable)
        - bdi4jade.belief.BeliefSet<K,V>
        - bdi4jade.belief.Predicate<K>
      - bdi4jade.goal.BeliefGoal<K>
      - bdi4jade.belief.BeliefSet<K,V>
      - jade.content.Concept
        - bdi4jade.belief.Belief<K,V> (also extends java.lang.Cloneable, jade.content.ContentElement, bdi4jade.core.MetadataElement, java.io.Serializable)
          - bdi4jade.belief.BeliefSet<K,V>
          - bdi4jade.belief.Predicate<K>
        - bdi4jade.goal.BeliefGoal<K>
        - bdi4jade.belief.BeliefSet<K,V>
        - bdi4jade.goal.Goal (also extends jade.content.ContentElement, java.io.Serializable)
          - bdi4jade.goal.BeliefGoal<K>
        - bdi4jade.belief.Predicate<K>
        - bdi4jade.goal.Softgoal (also extends jade.content.ContentElement, java.io.Serializable)
      - bdi4jade.goal.Goal (also extends jade.content.Concept, jade.content.ContentElement, java.io.Serializable)
        - bdi4jade.goal.BeliefGoal<K>
      - bdi4jade.belief.Predicate<K>
      - bdi4jade.goal.Softgoal (also extends jade.content.Concept, jade.content.ContentElement, java.io.Serializable)
  - bdi4jade.goal.Softgoal (also extends jade.content.Concept, jade.content.ContentElement)
  - jade.content.Term
    - bdi4jade.belief.Belief<K,V> (also extends java.lang.Cloneable, jade.content.Concept, jade.content.ContentElement, bdi4jade.core.MetadataElement, java.io.Serializable)
      - bdi4jade.belief.BeliefSet<K,V>
      - bdi4jade.belief.Predicate<K>
    - bdi4jade.goal.BeliefGoal<K>
    - bdi4jade.belief.BeliefSet<K,V>
    - jade.content.Concept
      - bdi4jade.belief.Belief<K,V> (also extends java.lang.Cloneable, jade.content.ContentElement, bdi4jade.core.MetadataElement, java.io.Serializable)
        - bdi4jade.belief.BeliefSet<K,V>
        - bdi4jade.belief.Predicate<K>
      - bdi4jade.goal.BeliefGoal<K>
      - bdi4jade.belief.BeliefSet<K,V>
      - bdi4jade.goal.Goal (also extends jade.content.ContentElement, java.io.Serializable)
        - bdi4jade.goal.BeliefGoal<K>
      - bdi4jade.belief.Predicate<K>
      - bdi4jade.goal.Softgoal (also extends jade.content.ContentElement, java.io.Serializable)
    - bdi4jade.goal.Goal (also extends jade.content.Concept, jade.content.ContentElement, java.io.Serializable)
      - bdi4jade.goal.BeliefGoal<K>
    - bdi4jade.belief.Predicate<K>
    - bdi4jade.goal.Softgoal (also extends jade.content.Concept, jade.content.ContentElement, java.io.Serializable)

## Annotation Type Hierarchy

- bdi4jade.annotation.TransientBeliefSet (implements java.lang.annotation.Annotation)
- bdi4jade.annotation.TransientBelief (implements java.lang.annotation.Annotation)
- bdi4jade.annotation.Plan (implements java.lang.annotation.Annotation)
- bdi4jade.annotation.PartCapability (implements java.lang.annotation.Annotation)
- bdi4jade.annotation.Parameter (implements java.lang.annotation.Annotation)
- bdi4jade.annotation.GoalOwner (implements java.lang.annotation.Annotation)
- bdi4jade.annotation.Belief (implements java.lang.annotation.Annotation)
- bdi4jade.annotation.AssociatedCapability (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.annotation.Parameter.Direction
    - bdi4jade.plan.Plan.EndState
    - bdi4jade.goal.GoalStatus