DiaDes  0.1
DIAgnosisofDiscrete-EventSystem
Assignment.hh
Go to the documentation of this file.
1 #ifndef ASSIGNMENT_H_
2 #define ASSIGNMENT_H_
3 
4 #include<stdexcept>
7 #include<iostream>
9 
10 
11 namespace Diades
12 {
13  namespace Sdmdl
14  {
15 
23  class Assignment
24  {
25  public:
27  static string typeName() { return "Sdmdl::Assignment"; }
28 
29  private:
32 
33 
34  public:
39  Assignment(): _variable(), _value() {}
40 
47  bool valid() const { return (_variable.valid()) && (_value.valid()) && (_variable.containsValue(_value)); }
48 
59  Assignment(const Variable & var, const Value & val);
60 
66  Assignment(const Assignment & assignment): _variable(assignment._variable), _value(assignment._value) {}
67 
68 
75  virtual ~Assignment(){}
76 
85  void setVariable(const Variable & var);
86 
87 
96  void setValue(const Value & val);
97 
104  const Variable & variable() const
105  {
106  return _variable;
107  }
108 
109 
116  const Value & value() const
117  {
118  return _value;
119  }
120 
121 
129  Assignment & operator=(const Assignment & assign)
130  {
131  if(&assign != this)
132  {
133  _variable = assign._variable;
134  _value = assign._value;
135  }
136  return *this;
137  }
138 
146  bool operator == (const Assignment & assignment) const
147  {
148  return (!valid() && !assignment.valid())
149  || (valid() && assignment.valid() && (_variable == assignment._variable) && (_value == assignment._value));
150  }
151 
159  bool operator < (const Assignment & assignment) const;
160 
165  void unvalidate() { _variable = Variable(); _value = Value(); }
166 
167 
176  friend ostream & operator << (ostream & os, const Assignment & assign);
177  };
178 
179  };
180 };
181 
182 #endif /*ASSIGNMENT_H_*/
bool operator==(const Assignment &assignment) const
Definition: Assignment.hh:146
Assignment & operator=(const Assignment &assign)
Definition: Assignment.hh:129
Assignment(const Assignment &assignment)
Definition: Assignment.hh:66
Diades::Utils::Exception< Assignment > Exception
Definition: Assignment.hh:26
void setVariable(const Variable &var)
friend ostream & operator<<(ostream &os, const Assignment &assign)
Namespace of the Diades project.
const Variable & variable() const
Definition: Assignment.hh:104
const Value & value() const
Definition: Assignment.hh:116
void setValue(const Value &val)
bool operator<(const Assignment &assignment) const
static string typeName()
Definition: Assignment.hh:27