some refactoring

This commit is contained in:
7u83 2018-12-27 17:52:44 +01:00
parent bd2ec97f74
commit f02b887b8b
1 changed files with 34 additions and 7 deletions

View File

@ -43,13 +43,20 @@ class TradingEngine implements TradingAPI {
private final Exchange outer; private final Exchange outer;
TradingEngine(AssetPair p, final Exchange outer) { /**
* Construct a trading engine for an asset pair
* @param pair The AssetPair obect to create the tradinge engine for
* @param outer Outer class - points to an Exchange object thins trading
* engine belongs to.
*/
TradingEngine(AssetPair pair, final Exchange outer) {
this.outer = outer; this.outer = outer;
assetpair = p; assetpair = pair;
reset(); reset();
} }
protected AssetPair getAssetPair() { @Override
public AssetPair getAssetPair() {
return assetpair; return assetpair;
} }
IDGenerator id_generator = new IDGenerator(); IDGenerator id_generator = new IDGenerator();
@ -79,6 +86,8 @@ class TradingEngine implements TradingAPI {
SortedSet<Order> ask = order_books.get(Order.Type.SELLLIMIT); SortedSet<Order> ask = order_books.get(Order.Type.SELLLIMIT);
SortedSet<Order> ul_buy = order_books.get(Order.Type.BUY); SortedSet<Order> ul_buy = order_books.get(Order.Type.BUY);
SortedSet<Order> ul_sell = order_books.get(Order.Type.SELL); SortedSet<Order> ul_sell = order_books.get(Order.Type.SELL);
double volume_total = 0; double volume_total = 0;
double money_total = 0; double money_total = 0;
while (true) { while (true) {
@ -234,6 +243,9 @@ class TradingEngine implements TradingAPI {
} }
return o; return o;
} }
HashSet<FiringEvent> book_listener = new HashSet<>(); HashSet<FiringEvent> book_listener = new HashSet<>();
@Override @Override
@ -241,18 +253,33 @@ class TradingEngine implements TradingAPI {
book_listener.add(new FiringEvent(listener)); book_listener.add(new FiringEvent(listener));
} }
protected Set getOrderBook(Order.Type type) { @Override
return Collections.unmodifiableSet(order_books.get(type)); public Set getOrderBook(Order.Type type) {
switch (type){
case BUYLIMIT:
case BUY:
return Collections.unmodifiableSet(bidbook);
case SELLLIMIT:
case SELL:
return Collections.unmodifiableSet(askbook);
}
return null;
// return Collections.unmodifiableSet(order_books.get(type));
} }
@Override @Override
public Set getBidBook() { public Set getBidBook() {
return getOrderBook(Order.Type.BUY); return getOrderBook(Order.Type.BUYLIMIT);
} }
@Override @Override
public Set getAskBook() { public Set getAskBook() {
return getOrderBook(Order.Type.SELL); return getOrderBook(Order.Type.SELL);
} }
}
}