// File: Constraint.h #if !defined CONSTRAINT_H #define CONSTRAINT_H #pragma warning(disable:4786) #include "exp.h" #include "Environment.h" #include "CSPException.h" /** Classe che rappresenta un vincolo del problema */ class Constraint { public: /** Costruttore */ Constraint(Exp *e); /** Costruttore per copia */ Constraint(const Constraint& c); /** Operatore di assegnamento */ Constraint& operator=(const Constraint& c); /** Restituisce l'insieme delle variabili coinvolte nel vincolo */ inline StringSet *getVariables() const { return vars;} /** Restituisce il numero di variabili coinvolte nel vincolo */ inline int getNumVariables() const { return vars->size();} /** Conversione del vincolo a stringa */ std::string toString() const; /** Verifica se un vincolo e' soddisfatto */ bool isSatisfied(const Environment *env) const throw (VarException); /** Distruttore */ ~Constraint(); private: /** Espressione simbolica che descrive il vincolo */ Exp *exp; /** Insieme dei nomi delle variabili */ StringSet *vars; }; #endif