1 /**
2 *  Copyright Mikael H�gdahl - triyana@users.sourceforge.net
3 *
4 *  This source is distributed under the terms of the Q Public License version 1.0,
5 *  created by Trolltech (www.trolltech.com).
6 */
7 
8 #ifndef SetItem_h
9 #define SetItem_h
10 
11 #include <db/DBFactory.h>
12 #include <db/Security.h>
13 #include <MHString.h>
14 #include <MHVector.h>
15 
16 class Set;
17 
18 
19 
20 /**
21 *  SetItem stores all names of security lists.
22 */
23 class SetItem : public MH {
24 public:
25     enum {
26                             SORT_ID,
27                             SORT_SECURITY,
28     };
29 
SetItem()30                             SetItem (){aSecurity = 0;}
SetItem(const SetItem & x)31                             SetItem (const SetItem& x) : MH() {aSecurityID = x.aSecurityID; aSecurity = x.aSecurity;}
SetItem(int securityID)32                             SetItem (int securityID) : MH () {SetSecurityID (securityID); aSecurity = 0;}
33 
34     SetItem&                operator=(const SetItem&);
35     bool                    operator==(const SetItem& x) {return aSecurityID == x.aSecurityID;}
36     bool                    operator!=(const SetItem& x) {return aSecurityID != x.aSecurityID;}
37     bool                    operator>(const SetItem& x) {return aSecurityID > x.aSecurityID;}
38     bool                    operator<(const SetItem& x) {return aSecurityID < x.aSecurityID;}
39 
Compare(const MH * o,int type)40     int                     Compare (const MH* o, int type){if (type == SORT_ID) return compareID((SetItem*)o);else return compareSecurity((SetItem*)o);}
41     static void             Export (Set* set, MHVector* ve, FILE* file);
Find(SetItem * s,MHVector * ve)42     static SetItem*         Find (SetItem* s, MHVector* ve) {SetItem* i = (SetItem*) ve->Find(s, 0, 0, 0); return ((i) ? i : 0);}
GetSecurity()43     Security*               GetSecurity () {return &aSecurity;}
GetSecurityID()44     int                     GetSecurityID () {return aSecurityID;}
45     Security*               LoadSecurity();
46     static void             LoadSecurities(MHVector* v);
47     static void             Load (Set* set, MHVector* ve);
48     static void             Remove (Set* set);
49     static void             Save (Set* set, MHVector* ve);
SetSecurityID(int id)50     void                    SetSecurityID (int id) {aSecurityID = id;}
51     static void             Update (SetItem* setItem, MHVector* ve);
52 
53 private:
54     int                     aSecurityID;
55     Security                aSecurity;
56 
57     int                     compareID (SetItem* o);
58     int                     compareSecurity (SetItem* o);
59 };
60 
61 #endif
62