protected RetriableFactory doSubscribe()

in java/connectors/polygon-io/src/main/java/com/epam/deltix/data/connectors/polygon/PolygonIoDataConnector.java [43:99]


    protected RetriableFactory<MdFeed> doSubscribe(
            final MdModel.Options selected,
            final CloseableMessageOutputFactory outputFactory,
            final String... symbols) {

        if (endpoint == PolygonIoEndpoint.Stocks || endpoint == PolygonIoEndpoint.Options) {
            return errorListener -> {
                final PolygonIoFeed result = new PolygonIoStocksFeed(
                    settings(),
                    selected,
                    outputFactory.create(),
                    errorListener,
                    logger(),
                    symbols);
                result.start();
                return result;
            };
        } else if (endpoint == PolygonIoEndpoint.Forex) {
            return errorListener -> {
                final PolygonIoFeed result = new PolygonIoStocksFeed(
                    settings(),
                    selected,
                    outputFactory.create(),
                    errorListener,
                    logger(),
                    symbols);
                result.start();
                return result;
            };
        } else if (endpoint == PolygonIoEndpoint.Crypto) {
            return errorListener -> {
                final PolygonIoFeed result = new PolygonIoCryptoFeed(
                    settings(),
                    selected,
                    outputFactory.create(),
                    errorListener,
                    logger(),
                    symbols);
                result.start();
                return result;
            };
        } else if (endpoint == PolygonIoEndpoint.Indices) {
            return errorListener -> {
                final PolygonIoFeed result = new PolygonIoIndicesFeed(
                    settings(),
                    selected,
                    outputFactory.create(),
                    errorListener,
                    logger(),
                    symbols);
                result.start();
                return result;
            };
        }

        throw new RuntimeException("Unsupported endpoint: " + endpoint);
    }