temp commit
This commit is contained in:
69
core/src/main/java/ru/trader/store/berkeley/BDBItemStat.java
Normal file
69
core/src/main/java/ru/trader/store/berkeley/BDBItemStat.java
Normal file
@@ -0,0 +1,69 @@
|
||||
package ru.trader.store.berkeley;
|
||||
|
||||
import ru.trader.core.AbstractItemStat;
|
||||
import ru.trader.core.Item;
|
||||
import ru.trader.core.OFFER_TYPE;
|
||||
import ru.trader.core.Offer;
|
||||
|
||||
import java.util.NavigableSet;
|
||||
|
||||
|
||||
//TODO: implement
|
||||
public class BDBItemStat extends AbstractItemStat {
|
||||
private final ItemProxy item;
|
||||
private final OFFER_TYPE type;
|
||||
private final BDBStore store;
|
||||
|
||||
public BDBItemStat(ItemProxy item, OFFER_TYPE type, BDBStore store) {
|
||||
this.item = item;
|
||||
this.type = type;
|
||||
this.store = store;
|
||||
}
|
||||
|
||||
synchronized void put(Offer offer){
|
||||
}
|
||||
|
||||
synchronized void remove(Offer offer){
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public OFFER_TYPE getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Item getItem() {
|
||||
return item;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Offer getMin() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getAvg() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Offer getMax() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Offer getBest() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public NavigableSet<Offer> getOffers() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isEmpty() {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -5,11 +5,44 @@ import ru.trader.store.berkeley.entities.BDBGroup;
|
||||
import ru.trader.store.berkeley.entities.BDBItem;
|
||||
import ru.trader.store.berkeley.entities.BDBPlace;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.*;
|
||||
|
||||
public class BDBMarket extends AbstractMarket {
|
||||
private final BDBStore store;
|
||||
|
||||
//caching
|
||||
private final Map<Item,BDBItemStat> sellItems = new HashMap<>();
|
||||
private final Map<Item,BDBItemStat> buyItems = new HashMap<>();
|
||||
|
||||
|
||||
private Map<Item,BDBItemStat> getItemCache(OFFER_TYPE offerType){
|
||||
switch (offerType) {
|
||||
case SELL: return sellItems;
|
||||
case BUY: return buyItems;
|
||||
default:
|
||||
throw new IllegalArgumentException("Wrong offer type: "+offerType);
|
||||
}
|
||||
}
|
||||
|
||||
private void put(Map<Item, BDBItemStat> cache, Offer offer){
|
||||
Item item = offer.getItem();
|
||||
BDBItemStat entry = cache.get(item);
|
||||
if (entry == null){
|
||||
entry = new BDBItemStat((ItemProxy) item, offer.getType(), store);
|
||||
cache.put(item, entry);
|
||||
}
|
||||
entry.put(offer);
|
||||
}
|
||||
|
||||
private void remove(Map<Item, BDBItemStat> cache, Offer offer){
|
||||
Item item = offer.getItem();
|
||||
BDBItemStat entry = cache.get(item);
|
||||
if (entry!=null){
|
||||
entry.remove(offer);
|
||||
if (entry.isEmpty())
|
||||
cache.remove(item);
|
||||
}
|
||||
}
|
||||
|
||||
public BDBMarket(BDBStore store) {
|
||||
this.store = store;
|
||||
|
||||
Reference in New Issue
Block a user