in orderbook-core/src/main/java/com/epam/deltix/orderbook/core/impl/QuotePoolFactory.java [21:55]
public static ObjectPool<? extends OrderBookQuote> create(final OrderBookOptions options,
final int initialSize) {
final ObjectPool<? extends MutableOrderBookQuote> pool;
// TODO: need to refactor
final DataModelType quoteLevels = options.getQuoteLevels().get();
if (options.shouldStoreQuoteTimestamps().orElse(Defaults.SHOULD_STORE_QUOTE_TIMESTAMPS)) {
switch (quoteLevels) {
case LEVEL_ONE:
case LEVEL_TWO:
pool = new ObjectPool<>(initialSize, MutableOrderBookQuoteTimestampImpl::new, MutableOrderBookQuoteTimestampImpl::release);
break;
case LEVEL_THREE:
pool = new ObjectPool<>(initialSize, MutableOrderBookQuoteL3TimestampImpl::new, MutableOrderBookQuoteL3TimestampImpl::release);
break;
default:
throw new IllegalArgumentException("Unsupported book type: " + options.getBookType() +
" for quote levels: " + quoteLevels);
}
} else {
switch (quoteLevels) {
case LEVEL_ONE:
case LEVEL_TWO:
pool = new ObjectPool<>(initialSize, MutableOrderBookQuoteImpl::new, MutableOrderBookQuoteImpl::release);
break;
case LEVEL_THREE:
pool = new ObjectPool<>(initialSize, MutableOrderBookQuoteL3Impl::new, MutableOrderBookQuoteL3Impl::release);
break;
default:
throw new IllegalArgumentException("Unsupported book type: " + options.getBookType() +
" for quote levels: " + quoteLevels);
}
}
return pool;
}