207595c207073baadd226fa2f0a4a46c111a06db
[smartapi.git] / Common / C++ / SmartAPI / smartapi / common / Duration.h
1 #ifndef __DURATION_H__
2 #define __DURATION_H__
3
4 #include <QDateTime>
5 #include "smartapi/rdf/GraphItem.h"
6
7 class Duration
8 {
9 public:
10         Duration();
11         Duration(QString lexicalRepresentation);
12         Duration(bool isPositive, int years, int months, int days, int hours, int minutes, int seconds);
13         Duration(int years, int months, int days, int hours, int minutes, int seconds);
14         Duration(Duration* d);
15
16         QDateTime add(QDateTime date);
17         QString toString();
18
19         bool isPositive()               { return mIsPositive; }
20         int getYears()                  { return mYears; }
21         int getMonths()                 { return mMonths; }
22         int getDays()                   { return mDays; }
23         int getHours()                  { return mHours; }
24         int getMinutes()                { return mMinutes; }
25         int getSeconds()                { return mSeconds; }
26         void setPositive()              { mIsPositive = true; }
27         void setNegative()              { mIsPositive = false; }
28         void setYears(int i)    { mYears = i; }
29         void setMonths(int i)   { mMonths = i; }
30         void setDays(int i)             { mDays = i; }
31         void setHours(int i)    { mHours = i; }
32         void setMinutes(int i)  { mMinutes = i; }
33         void setSeconds(int i)  { mSeconds = i; }
34
35         // compatibility only
36         void destroyCascade(QSet<GraphItem*>* trash) { Q_UNUSED(trash); }
37
38 private:
39         bool parseLexicalRepresentation(QString str);
40         QString constructLexicalRepresentation();
41
42         bool mIsPositive;
43         int mYears;
44         int mMonths;
45         int mDays;
46         int mHours;
47         int mMinutes;
48         int mSeconds;
49 };
50
51 #endif // __DURATION_H__