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