Fully convert ordergraph to objects
[satune.git] / src / AST / order.cc
1 #include "order.h"
2 #include "structs.h"
3 #include "set.h"
4 #include "boolean.h"
5 #include "ordergraph.h"
6
7 Order::Order(OrderType _type, Set *_set) :
8         type(_type),
9         set(_set),
10         orderPairTable(NULL),
11         elementTable(NULL),
12         graph(NULL),
13         order(this)
14 {
15 }
16
17 void Order::initializeOrderHashTable() {
18         orderPairTable = new HashTableOrderPair();
19 }
20
21 void Order::initializeOrderElementsHashTable() {
22         elementTable = new HashSetOrderElement();
23 }
24
25 void Order::addOrderConstraint(BooleanOrder *constraint) {
26         constraints.push(constraint);
27 }
28
29 void Order::setOrderEncodingType(OrderEncodingType type) {
30         order.type = type;
31 }
32
33 Order::~Order() {
34         if (orderPairTable != NULL) {
35                 orderPairTable->resetanddelete();
36                 delete orderPairTable;
37         }
38         if (elementTable != NULL) {
39                 delete elementTable;
40         }
41         if (graph != NULL) {
42                 delete graph;
43         }
44 }