/* * AtomDescriptor.hpp * * Created on: Feb 5, 2010 * Author: crueger */ #ifndef ATOMDESCRIPTOR_HPP_ #define ATOMDESCRIPTOR_HPP_ #include #include #include "World.hpp" class atom; class AtomDescriptor { public: friend atom* World::getAtom(AtomDescriptor& descriptor); friend std::vector World::getAllAtoms(AtomDescriptor& descriptor); AtomDescriptor(); virtual ~AtomDescriptor(); protected: virtual atom* find()=0; virtual std::vector findAll()=0; std::map& getAtoms(); }; class AtomPredicateDescriptor : public AtomDescriptor{ public: AtomPredicateDescriptor(); virtual ~AtomPredicateDescriptor(); protected: virtual atom *find(); virtual std::vector findAll(); virtual bool predicate(std::pair)=0; }; #endif /* ATOMDESCRIPTOR_HPP_ */