00001 // -*- Mode: C++; tab-width: 2; -*- 00002 // vi: set ts=2: 00003 // 00004 // $Id: expressionPredicate.h,v 1.12 2005/10/23 12:02:18 oliver Exp $ 00005 // 00006 00007 #ifndef BALL_KERNEL_EXPRESSIONPREDICATE_H 00008 #define BALL_KERNEL_EXPRESSIONPREDICATE_H 00009 00010 #ifndef BALL_KERNEL_ATOM_H 00011 # include <BALL/KERNEL/atom.h> 00012 #endif 00013 00014 namespace BALL 00015 { 00025 class BALL_EXPORT ExpressionPredicate 00026 : public UnaryPredicate<Atom> 00027 { 00028 public: 00029 00030 BALL_CREATE(ExpressionPredicate) 00031 00032 00035 00038 ExpressionPredicate(); 00039 00042 ExpressionPredicate(const ExpressionPredicate& predicate); 00043 00048 ExpressionPredicate(const String& argument); 00049 00052 virtual ~ExpressionPredicate(); 00053 00055 00058 00061 ExpressionPredicate& operator = (const ExpressionPredicate& predicate); 00062 00065 virtual void clear(); 00066 00068 00071 00074 bool operator == (const ExpressionPredicate& predicate) const; 00075 00077 00080 00085 virtual bool operator () (const Atom& atom) const; 00086 00090 virtual void setArgument(const String& argument); 00091 00095 const String& getArgument() const; 00096 00098 00099 protected: 00100 00101 /*_ The argument of the predicate 00102 */ 00103 String argument_; 00104 }; 00105 } 00106 00107 #endif // BALL_KERNEL_EXPRESSIONPREDICATE_H