Archived
0

temp commit

This commit is contained in:
iMoHax
2014-12-01 17:30:10 +03:00
parent 1abd9cb9df
commit c4e3b7f311
4 changed files with 111 additions and 1 deletions

View File

@@ -0,0 +1,4 @@
package ru.trader.controllers;
public class GroupEditorController {
}

View File

@@ -0,0 +1,4 @@
package ru.trader.controllers;
public class ItemEditorController {
}

View 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;
}
}

View File

@@ -5,11 +5,44 @@ import ru.trader.store.berkeley.entities.BDBGroup;
import ru.trader.store.berkeley.entities.BDBItem; import ru.trader.store.berkeley.entities.BDBItem;
import ru.trader.store.berkeley.entities.BDBPlace; import ru.trader.store.berkeley.entities.BDBPlace;
import java.util.Collection; import java.util.*;
public class BDBMarket extends AbstractMarket { public class BDBMarket extends AbstractMarket {
private final BDBStore store; 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) { public BDBMarket(BDBStore store) {
this.store = store; this.store = store;