BALL  1.4.1
selector.h
Go to the documentation of this file.
00001 // -*- Mode: C++; tab-width: 2; -*-
00002 // vi: set ts=2:
00003 //
00004 // $Id: selector.h,v 1.29 2005/10/23 12:02:20 oliver Exp $
00005 //
00006 
00007 #ifndef BALL_KERNEL_SELECTOR_H
00008 #define BALL_KERNEL_SELECTOR_H
00009 
00010 #ifndef BALL_KERNEL_EXPRESSION_H
00011 # include <BALL/KERNEL/expression.h>
00012 #endif
00013 
00014 
00015 namespace BALL 
00016 {
00017   class Atom;
00018 
00022   class BALL_EXPORT Selector
00023     : public UnaryProcessor<Composite>
00024   {
00025     
00026     public:
00027     
00031 
00032     // BALL_CREATE(Selector)
00033 
00036     Selector();
00037 
00040     Selector(const Selector& selector);
00041 
00045     Selector(const String& expression_string);
00046 
00049     virtual ~Selector();
00050 
00052 
00055 
00058     virtual void clear();
00059 
00062     Selector& operator = (const Selector& selector);
00063 
00065 
00068 
00071     bool operator == (const Selector& selector) const;
00072 
00074 
00077 
00083     virtual Processor::Result operator () (Composite& composite);
00084     
00089     virtual bool start();
00090 
00092 
00095 
00098     Size getNumberOfSelectedAtoms() const;
00099 
00102     std::list<Atom*>& getSelectedAtoms();
00103     
00106     void setExpression(const Expression& expression);
00107 
00110     const Expression& getExpression() const;
00111     
00112         
00114       
00115     protected:
00116 
00117     std::list<Atom*> selected_atoms_;
00118     Expression  expression_;
00119   };
00120 
00121 } // namespace BALL
00122 
00123 #endif // BALL_KERNEL_SELECTOR_H
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines