in java/ws-server/src/main/java/com/epam/deltix/tbwg/webapp/services/grafana/GrafanaServiceNewImpl.java [325:357]
public DynamicList listSymbols(String streamKey, String template, int offset, int limit) throws NoSuchStreamException {
DXTickStream stream = timebase.getStream(streamKey);
if (stream == null) {
throw new NoSuchStreamException(streamKey);
}
DynamicList result = new DynamicList();
List<String> list = new ObjectArrayList<>();
result.setList(list);
result.setHasMore(false);
List<String> symbols;
if (StringUtil.isEmpty(template)) {
symbols = Arrays.stream(stream.listEntities())
.map(entity -> entity.getSymbol().toString())
.sorted()
.skip(offset)
.collect(Collectors.toList());
} else {
symbols = Arrays.stream(stream.listEntities())
.map(entity -> entity.getSymbol().toString())
.filter(symbol -> symbol.toLowerCase().contains(template.toLowerCase()))
.sorted()
.skip(offset)
.collect(Collectors.toList());
}
for (String symbol : symbols) {
if (list.size() == limit) {
result.setHasMore(true);
break;
}
list.add(symbol);
}
return result;
}