EntityVisitor interface. More...
#include <entity_visitor.hh>
Inherited by CRDWriter, CRDWriter, PQRWriter, and PQRWriter.
Public Member Functions | |
virtual | ~EntityVisitor () |
virtual void | OnEntry () |
virtual void | OnExit () |
virtual bool | VisitChain (const ChainHandle &c) |
virtual bool | VisitResidue (const ResidueHandle &r) |
virtual bool | VisitAtom (const AtomHandle &a) |
virtual bool | VisitBond (const BondHandle &b) |
virtual bool | VisitTorsion (const TorsionHandle &t) |
EntityVisitor interface.
For hierarchical traversal of the entity-chain-residue-atom hierarchy OpenStructure offers the concept of (simplified) visitors. By passing a subclass of EntityVisitor to the the EntityHandle::Apply(EntityVisitor&) member function, the whole subtree rooted at the object where Apply was invoked is then traversed in a recursive manner.
Visitors may be applied to both Handles and Views, so they are a good way to generalise your algorithms for EntityView and EntitHandle the like.
Algorithms are implemented by subclassing EntityVisitor and overriding one or more of the callbacks.
EntityVisitor provides stub implementations for all of the callbacks. You only have to overload the callbacks you are interested in. Every callback returns a bool to indicate whether the hierarchical traversal should continue. Returning false indicates that recursive traversal should stop and continue with the next sibling.
The following example prints residues and their atoms to stdout
class Printer : public EntityVisitor { public: virtual bool VisitResidue(const ResidueHandle& residue) { std::cout << residue.GetKey() << "." << residue.GetNumber() << std::endl; return true; } virtual bool VisitAtom(const AtomHandle& atom) { std::cout << " " << atom.GetName() << std::endl; return true; } };
Definition at line 73 of file entity_visitor.hh.
virtual ~EntityVisitor | ( | ) | [virtual] |
virtual void OnEntry | ( | ) | [virtual] |
virtual void OnExit | ( | ) | [virtual] |
virtual bool VisitAtom | ( | const AtomHandle & | a | ) | [virtual] |
virtual bool VisitBond | ( | const BondHandle & | b | ) | [virtual] |
Bond callback.
virtual bool VisitChain | ( | const ChainHandle & | c | ) | [virtual] |
Chain callback.
virtual bool VisitResidue | ( | const ResidueHandle & | r | ) | [virtual] |
virtual bool VisitTorsion | ( | const TorsionHandle & | t | ) | [virtual] |
Torsion callback.