public static ObjectPool create()

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