5e16938fd04edd8b14b95be68eea09ac5270adef
[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 void Order::initializeOrderHashTable() {
17         orderPairTable = new HashTableOrderPair();
18 }
19
20 void Order::initializeOrderElementsHashTable() {
21         elementTable = new HashSetOrderElement();
22 }
23
24 void Order::addOrderConstraint(BooleanOrder *constraint) {
25         constraints.push(constraint);
26 }
27
28 void Order::setOrderEncodingType(OrderEncodingType type) {
29         order.type = type;
30 }
31
32 Order::~Order() {
33         if (orderPairTable != NULL) {
34                 orderPairTable->resetanddelete();
35                 delete orderPairTable;
36         }
37         if (elementTable != NULL) {
38                 delete elementTable;
39         }
40         if (graph != NULL) {
41                 deleteOrderGraph(graph);
42         }
43 }