CASM
AClustersApproachtoStatisticalMechanics
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules
CASM::FunctionVisitor Class Referenceabstract

#include <FunctionVisitor.hh>

+ Inheritance diagram for CASM::FunctionVisitor:

Detailed Description

Defines visitor pattern for abstract Function objects. FunctionVisitor has virtual methods for each type of derived Function object, which by default do nothing. Classes that derive from FunctionVisitor implement specific visitation behavior by overloading the virtual visit() methods, as needed. An abstract FunctionVisitor object operates on a Function tree by being passed to the Function::accept(FunctionVisitor*) method of the root of the tree.

Definition at line 24 of file FunctionVisitor.hh.

Public Member Functions

virtual ~FunctionVisitor ()
 
virtual std::string type_name () const =0
 
virtual bool visit (Variable &host, BasisSet const *bset_ptr) const
 
virtual bool visit (OccupantFunction &host, BasisSet const *bset_ptr) const
 
virtual bool visit (PolynomialFunction &host, BasisSet const *bset_ptr) const
 

Private Member Functions

virtual bool _visit (const Array< Function * > &host_list, BasisSet const *bset_ptr) const
 

Constructor & Destructor Documentation

virtual CASM::FunctionVisitor::~FunctionVisitor ( )
inlinevirtual

Definition at line 27 of file FunctionVisitor.hh.

Member Function Documentation

virtual bool CASM::FunctionVisitor::_visit ( const Array< Function * > &  host_list,
BasisSet const *  bset_ptr 
) const
inlineprivatevirtual

Definition at line 42 of file FunctionVisitor.hh.

virtual std::string CASM::FunctionVisitor::type_name ( ) const
pure virtual
virtual bool CASM::FunctionVisitor::visit ( Variable host,
BasisSet const *  bset_ptr 
) const
inlinevirtual

Reimplemented in CASM::SubExpressionLabeler, and CASM::VariableLabeler.

Definition at line 31 of file FunctionVisitor.hh.

virtual bool CASM::FunctionVisitor::visit ( OccupantFunction host,
BasisSet const *  bset_ptr 
) const
inlinevirtual
virtual bool CASM::FunctionVisitor::visit ( PolynomialFunction host,
BasisSet const *  bset_ptr 
) const
inlinevirtual

Reimplemented in CASM::SubExpressionLabeler.

Definition at line 38 of file FunctionVisitor.hh.


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