OA::LocationVisitor Class Reference

#include <LocationVisitor.hpp>

Inheritance diagram for OA::LocationVisitor:
Inheritance graph
[legend]

List of all members.

Public Member Functions

virtual ~LocationVisitor ()
virtual void visitNamedLoc (NamedLoc &loc)=0
virtual void visitUnnamedLoc (UnnamedLoc &loc)=0
virtual void visitInvisibleLoc (InvisibleLoc &loc)=0
virtual void visitUnknownLoc (UnknownLoc &loc)=0
virtual void visitLocSubSet (LocSubSet &loc)=0
virtual void visitLocIdxSubSet (LocIdxSubSet &loc)
virtual void visitLocFieldSubSet (LocFieldSubSet &loc)

Protected Member Functions

 LocationVisitor ()

Detailed Description

LocationVisitor is an abstract base class used to implement the Visitor pattern on Locations and possible instances of the LocSubSet decorator subclass.

The only place in the Location hierarchy where changes can occur are new LocSubSet subclasses. Each time a new subclass is created a new method must be added to this visitor. As long as existing concrete visitors have a default implementation for the LocSubSet class they will still work properly.

Memory Management: It is assumed that the concrete visitors will NOT keep references to Location and that the Location will not be deallocated while an LocationVisitor is visiting a Location. Concrete visitors should also never take the address of a Location and pass it to a method that requires an OA_ptr<Location>.

Definition at line 45 of file LocationVisitor.hpp.


Constructor & Destructor Documentation

OA::LocationVisitor::LocationVisitor (  )  [inline, protected]

Definition at line 47 of file LocationVisitor.hpp.

virtual OA::LocationVisitor::~LocationVisitor (  )  [inline, virtual]

Definition at line 49 of file LocationVisitor.hpp.


Member Function Documentation

virtual void OA::LocationVisitor::visitInvisibleLoc ( InvisibleLoc loc  )  [pure virtual]
void OA::LocationVisitor::visitLocFieldSubSet ( LocFieldSubSet loc  )  [virtual]

Reimplemented in OA::LocFieldSubSetMustOverlapVisitor.

Definition at line 24 of file LocationVisitor.cpp.

References visitLocSubSet().

Referenced by OA::LocFieldSubSet::acceptVisitor().

Here is the call graph for this function:

void OA::LocationVisitor::visitLocIdxSubSet ( LocIdxSubSet loc  )  [virtual]

Reimplemented in OA::LocFieldSubSetMustOverlapVisitor, and OA::LocIdxSubSetMustOverlapVisitor.

Definition at line 20 of file LocationVisitor.cpp.

References visitLocSubSet().

Referenced by OA::LocIdxSubSet::acceptVisitor().

Here is the call graph for this function:

virtual void OA::LocationVisitor::visitLocSubSet ( LocSubSet loc  )  [pure virtual]
virtual void OA::LocationVisitor::visitNamedLoc ( NamedLoc loc  )  [pure virtual]
virtual void OA::LocationVisitor::visitUnknownLoc ( UnknownLoc loc  )  [pure virtual]
virtual void OA::LocationVisitor::visitUnnamedLoc ( UnnamedLoc loc  )  [pure virtual]

The documentation for this class was generated from the following files:

Generated on Sat Oct 31 05:26:19 2009 for OpenAnalysis by  doxygen 1.6.1