private Set getInputTypes()

in java/ws-server/src/main/java/com/epam/deltix/tbwg/webapp/services/charting/datasource/TimeBaseDataSource.java [121:151]


    private Set<String> getInputTypes(DXTickStream stream, SymbolQuery symbolQuery) {
        RecordClassDescriptor[] descriptors = stream.getTypes();

        if (symbolQuery.getType() == ChartType.PRICES_L2) {
            if (mayContainSubclasses(stream, PackageHeader.class)) {
                Set<String> descriptorsSet = getDescriptors(descriptors, PackageHeader.class, SecurityFeedStatusMessage.class);
                descriptorsSet.add(MarketDataTypeLoader.SECURITY_STATUS_CLASS);
                return descriptorsSet;
            }
            if (mayContainSubclasses(stream, Level2Message.class) ||
                mayContainSubclasses(stream, L2Message.class))
            {
                return getDescriptors(descriptors, Level2Message.class, L2Message.class, L2SnapshotMessage.class, TradeMessage.class);
            }
        }
        if (symbolQuery.getType() == ChartType.BARS) {
            if (mayContainSubclasses(stream, PackageHeader.class)) {
                Set<String> descriptorsSet = getDescriptors(descriptors, PackageHeader.class, SecurityFeedStatusMessage.class);
                descriptorsSet.add(MarketDataTypeLoader.SECURITY_STATUS_CLASS);
                return descriptorsSet;
            }
            if (mayContainBBOMessages(stream)) {
                return getDescriptors(descriptors, BestBidOfferMessage.class);
            }
            if (mayContainBarMessages(stream)) {
                return getDescriptors(descriptors, BarMessage.class);
            }
        }

        throw new IllegalArgumentException("Stream " + stream.getKey() + " type mismatch with chart type " + symbolQuery.getType());
    }