7085cf7f9c5e7d916d2c92d941122f28dc6ba133
[satune.git] / src / ASTTransform / integerencodingrecord.cc
1 /* 
2  * File:   integerencodingrecord.cpp
3  * Author: hamed
4  * 
5  * Created on August 26, 2017, 6:19 PM
6  */
7
8 #include "integerencodingrecord.h"
9 #include "csolver.h"
10 #include "orderelement.h"
11
12 IntegerEncodingRecord::IntegerEncodingRecord(Set* _set):
13         secondarySet(_set)
14 {
15         elementTable = new HashsetOrderElement();
16 }
17
18 IntegerEncodingRecord::~IntegerEncodingRecord(){
19         if (elementTable != NULL) {
20                 delete elementTable;
21         }
22 }
23
24 Element * IntegerEncodingRecord::getOrderIntegerElement(CSolver *This, uint64_t item) {
25         OrderElement oelement(item, NULL);
26         if ( !elementTable->contains(&oelement)) {
27                 Element *elem = This->getElementVar(secondarySet);
28                 elementTable->add(new OrderElement(item, elem));
29                 return elem;
30         } else
31                 return elementTable->get(&oelement)->getElement();
32 }
33