package database;
import java.math.BigInteger;
import java.util.HashMap;
import java.util.Map;
import org.mapdb.BTreeMap;
import org.mapdb.DB;
import org.mapdb.DBMaker;
import qora.assets.Order;
import utils.ObserverMessage;
import database.DBSet;
import database.serializer.OrderSerializer;
public class CompletedOrderMap extends DBMap<BigInteger, Order>
{
private Map<Integer, Integer> observableData = new HashMap<Integer, Integer>();
public CompletedOrderMap(DBSet databaseSet, DB database)
{
super(databaseSet, database);
this.observableData.put(DBMap.NOTIFY_ADD, ObserverMessage.ADD_ORDER_TYPE);
this.observableData.put(DBMap.NOTIFY_REMOVE, ObserverMessage.REMOVE_ORDER_TYPE);
//this.observableData.put(DBMap.NOTIFY_LIST, ObserverMessage.LIST_ORDER_TYPE);
}
public CompletedOrderMap(CompletedOrderMap parent)
{
super(parent);
}
protected void createIndexes(DB database){}
@Override
protected Map<BigInteger, Order> getMap(DB database)
{
//OPEN MAP
return this.openMap(database);
}
@Override
protected Map<BigInteger, Order> getMemoryMap()
{
DB database = DBMaker.newMemoryDB().make();
//OPEN MAP
return this.openMap(database);
}
private Map<BigInteger, Order> openMap(DB database)
{
//OPEN MAP
BTreeMap<BigInteger, Order> map = database.createTreeMap("completedorders")
.valueSerializer(new OrderSerializer())
.makeOrGet();
//RETURN
return map;
}
@Override
protected Order getDefaultValue()
{
return null;
}
@Override
protected Map<Integer, Integer> getObservableData()
{
return this.observableData;
}
public void add(Order order)
{
this.set(order.getId(), order);
}
public void delete(Order order)
{
this.delete(order.getId());
}
}