BALL  1.4.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
selector.h
Go to the documentation of this file.
1 // -*- Mode: C++; tab-width: 2; -*-
2 // vi: set ts=2:
3 //
4 // $Id: selector.h,v 1.29 2005/10/23 12:02:20 oliver Exp $
5 //
6 
7 #ifndef BALL_KERNEL_SELECTOR_H
8 #define BALL_KERNEL_SELECTOR_H
9 
10 #ifndef BALL_KERNEL_EXPRESSION_H
11 # include <BALL/KERNEL/expression.h>
12 #endif
13 
14 
15 namespace BALL
16 {
17  class Atom;
18 
31  : public UnaryProcessor<Composite>
32  {
33 
34  public:
35 
39 
40  // BALL_CREATE(Selector)
41 
44  Selector();
45 
48  Selector(const Selector& selector);
49 
53  Selector(const String& expression_string);
54 
57  virtual ~Selector();
58 
60 
63 
66  virtual void clear();
67 
70  Selector& operator = (const Selector& selector);
71 
73 
76 
79  bool operator == (const Selector& selector) const;
80 
82 
85 
91  virtual Processor::Result operator () (Composite& composite);
92 
97  virtual bool start();
98 
100 
103 
106  Size getNumberOfSelectedAtoms() const;
107 
110  std::list<Atom*>& getSelectedAtoms();
111 
114  void setExpression(const Expression& expression);
115 
118  const Expression& getExpression() const;
119 
120 
122 
123  protected:
124 
125  std::list<Atom*> selected_atoms_;
127  };
128 
129 } // namespace BALL
130 
131 #endif // BALL_KERNEL_SELECTOR_H