Package jason.bb

Class ChainBBAdapter

java.lang.Object
jason.bb.BeliefBase
jason.bb.ChainBBAdapter
All Implemented Interfaces:
ToDOM, Cloneable, Iterable<Literal>
Direct Known Subclasses:
ChainBB, IndexedBB, JDBCPersistentBB, TextPersistentBB

public abstract class ChainBBAdapter extends BeliefBase
This class is to be extended by customised belief bases that may be used in chains (of responsibility). For example, the code
 BeliefBase bb =
    new MyBB1(
       new MyBB2());
      // DefaultBeliefBase is the next of the last element of the chain
 
will chain 3 BBs: MyBB1, myBB2, and the DefaultBeliefBase. So, for any operation of the BB interface, the operation is firstly called in MyBB1, then in MyBB2 and finally in the DefaultBeliefBase. The code of MyBB1 looks like:
 class MyBB1 extends ChainBBAdapter {
    public MyBB1() { }
    public MyBB1(BeliefBase next) {
        super(next);
    }

    public boolean add(Literal l) {
        ... some customisation of add ....
        return next.add(l); // delegate the operation for the next BB in the chain
    }

    ... customisation of other operations ...
 }
 
  • Field Details

  • Constructor Details

    • ChainBBAdapter

      public ChainBBAdapter()
    • ChainBBAdapter

      public ChainBBAdapter(BeliefBase bb)
  • Method Details

    • setNext

      public void setNext(BeliefBase bb)
    • getNextAdapter

      public ChainBBAdapter getNextAdapter()
    • getLastBB

      public BeliefBase getLastBB()
    • init

      public void init(Agent ag, String[] args)
      Description copied from class: BeliefBase
      Called before the MAS execution with the agent that uses this BB and the args informed in .mas2j project.
      Example in .mas2j:
      agent BeliefBaseClass(1,bla);
      the init args will be ["1", "bla"].
      Overrides:
      init in class BeliefBase
    • stop

      public void stop()
      Description copied from class: BeliefBase
      Called just before the end of MAS execution
      Overrides:
      stop in class BeliefBase
    • clear

      public void clear()
      Description copied from class: BeliefBase
      removes all beliefs from BB
      Overrides:
      clear in class BeliefBase
    • getNameSpaces

      public Set<Atom> getNameSpaces()
      Overrides:
      getNameSpaces in class BeliefBase
    • add

      public boolean add(Literal l) throws JasonException
      Description copied from class: BeliefBase
      Adds a belief in the end of the BB, returns true if succeed. The annots of l may be changed to reflect what was changed in the BB, for example, if l is p[a,b] in a BB with p[a], l will be changed to p[b] to produce the event +p[b], since only the annotation b is changed in the BB.
      Overrides:
      add in class BeliefBase
      Throws:
      JasonException
    • add

      public boolean add(int index, Literal l) throws JasonException
      Description copied from class: BeliefBase
      Adds a belief in the BB at index position, returns true if succeed
      Overrides:
      add in class BeliefBase
      Throws:
      JasonException
    • contains

      public Literal contains(Literal l)
      Description copied from class: BeliefBase
      Returns the literal l as it is in BB, this method does not consider annotations in the search.
      Example, if BB={a(10)[a,b]}, contains(a(10)[d]) returns a(10)[a,b].
      Overrides:
      contains in class BeliefBase
    • iterator

      public Iterator<Literal> iterator()
      Description copied from class: BeliefBase
      Returns an iterator for all beliefs.
      Specified by:
      iterator in interface Iterable<Literal>
      Specified by:
      iterator in class BeliefBase
    • getCandidateBeliefs

      public Iterator<Literal> getCandidateBeliefs(PredicateIndicator pi)
      Description copied from class: BeliefBase
      Returns an iterator for all literals in the default namespace of the BB that match the functor/arity of the parameter.
      Specified by:
      getCandidateBeliefs in class BeliefBase
    • getCandidateBeliefs

      public Iterator<Literal> getCandidateBeliefs(Literal l, Unifier u)
      Description copied from class: BeliefBase
      Returns an iterator for all literals relevant for l's predicate indicator, if l is a var, returns all beliefs.
      The unifier u may contain values for variables in l. Example, if BB={a(10),a(20),a(2,1),b(f)}, then getCandidateBeliefs(a(5), {}) = {{a(10),a(20)}.
      if BB={a(10),a(20)}, then getCandidateBeliefs(X) = {{a(10),a(20)}. The getCandidateBeliefs(a(X), {X -> 5}) should also return {{a(10),a(20)}.
      Overrides:
      getCandidateBeliefs in class BeliefBase
    • getPercepts

      public Iterator<Literal> getPercepts()
      Description copied from class: BeliefBase
      Returns all beliefs that have "percept" as source
      Overrides:
      getPercepts in class BeliefBase
    • abolish

      public boolean abolish(PredicateIndicator pi)
      Description copied from class: BeliefBase
      Removes all believes with some functor/arity in the default namespace
      Overrides:
      abolish in class BeliefBase
    • remove

      public boolean remove(Literal l)
      Description copied from class: BeliefBase
      Removes a literal from BB, returns true if succeed
      Overrides:
      remove in class BeliefBase
    • size

      public int size()
      Description copied from class: BeliefBase
      Returns the number of beliefs in BB
      Overrides:
      size in class BeliefBase
    • getAsDOM

      public Element getAsDOM(Document document)
      Description copied from class: BeliefBase
      Gets the BB as XML
      Specified by:
      getAsDOM in interface ToDOM
      Overrides:
      getAsDOM in class BeliefBase
    • clone

      public BeliefBase clone()
      Specified by:
      clone in class BeliefBase
    • toString

      public String toString()
      Overrides:
      toString in class Object