public static OrderBook create()

in orderbook-core/src/main/java/com/epam/deltix/orderbook/core/api/OrderBookFactory.java [57:105]


    public static <Quote extends OrderBookQuote> OrderBook<Quote> create(final OrderBookOptions options) {
        if (Objects.isNull(options)) {
            throw new IllegalArgumentException("Options not allowed to be null.");
        }

        final DataModelType quoteLevels = options.getQuoteLevels().orElse(Defaults.QUOTE_LEVELS);
        final OrderBookType orderBookType = options.getBookType().orElse(Defaults.ORDER_BOOK_TYPE);
        final OrderBook<Quote> book;
        switch (quoteLevels) {
            case LEVEL_ONE:
                if (orderBookType == OrderBookType.SINGLE_EXCHANGE) {
                    book = L1OrderBookFactory.newSingleExchangeBook(options);
                } else {
                    throw new IllegalArgumentException("Unsupported book type: " + orderBookType + " for quote levels: " + quoteLevels);
                }
                break;
            case LEVEL_TWO:
                switch (orderBookType) {
                    case SINGLE_EXCHANGE:
                        book = L2OrderBookFactory.newSingleExchangeBook(options);
                        break;
                    case AGGREGATED:
                        book = L2OrderBookFactory.newAggregatedBook(options);
                        break;
                    case CONSOLIDATED:
                        book = L2OrderBookFactory.newConsolidatedBook(options);
                        break;
                    default:
                        throw new IllegalArgumentException("Unsupported book type: " + orderBookType + " for quote levels: " + quoteLevels);
                }
                break;
            case LEVEL_THREE:
                switch (orderBookType) {
                    case SINGLE_EXCHANGE:
                        book = L3OrderBookFactory.newSingleExchangeBook(options);
                        break;
                    case CONSOLIDATED:
                        book = L3OrderBookFactory.newConsolidatedBook(options);
                        break;
                    case AGGREGATED:
                    default:
                        throw new IllegalArgumentException("Unsupported book type: " + orderBookType + " for quote levels: " + quoteLevels);
                }
                break;
            default:
                throw new IllegalArgumentException("Unsupported quote levels: " + quoteLevels);
        }
        return book;
    }