5d9fc4ebb1a9558371c6dc3cc3de2f531da1b3d8
[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) : type(_type), set(_set), orderPairTable(NULL), elementTable(NULL), graph(NULL) {
8         initOrderEncoding(&order, this);
9 }
10
11 void Order::initializeOrderHashTable() {
12         orderPairTable = new HashTableOrderPair();
13 }
14
15 void Order::initializeOrderElementsHashTable() {
16         elementTable = new HashSetOrderElement();
17 }
18
19 void Order::addOrderConstraint(BooleanOrder *constraint) {
20         constraints.push(constraint);
21 }
22
23 void Order::setOrderEncodingType(OrderEncodingType type) {
24         order.type = type;
25 }
26
27 Order::~Order() {
28         deleteOrderEncoding(&order);
29         if (orderPairTable != NULL) {
30                 orderPairTable->resetanddelete();
31                 delete orderPairTable;
32         }
33         if (elementTable != NULL) {
34                 delete elementTable;
35         }
36         if (graph != NULL) {
37                 deleteOrderGraph(graph);
38         }
39 }