in java/ws-server/src/main/java/com/epam/deltix/tbwg/webapp/services/charting/provider/TransformationServiceImpl.java [202:235]
public List<LinesQueryResult> buildTransformationsPlan(List<MessageSource> sources) {
List<LinesQueryResult> results = new ArrayList<>();
for (int i = 0; i < sources.size(); ++i) {
MessageSource source = sources.get(i);
LinesQuery query = source.getQuery();
if (query.getType() == ChartType.PRICES_L2) {
if (source.getTypes().contains(PackageHeader.CLASS_NAME)) {
results.add(new L2PricesPlanBuilder(query.getMaxPointsCount(), false).build(source));
continue;
} else if (source.getTypes().contains(Level2Message.CLASS_NAME) ||
source.getTypes().contains(L2Message.CLASS_NAME))
{
results.add(new L2PricesPlanBuilder(query.getMaxPointsCount(), true).build(source));
continue;
}
}
if (query.getType() == ChartType.BARS) {
if (source.getTypes().contains(PackageHeader.CLASS_NAME)) {
results.add(new BarPlanBuilder(false).build(source));
continue;
} else if (source.getTypes().contains(BestBidOfferMessage.CLASS_NAME)) {
results.add(new BarPlanBuilder(true).build(source));
continue;
} else if (source.getTypes().contains(BarMessage.CLASS_NAME)) {
results.add(new BarConversionPlanBuilder().build(source));
continue;
}
}
throw new IllegalArgumentException("Unknown type of getQuery");
}
return results;
}