public static KafkaTopicsList build( final String statementText, final Collection<KsqlTopic> ksqlTopics, final Map<String, TopicDescription> kafkaTopicDescriptions, final KsqlConfig ksqlConfig, final KafkaConsumerGroupClient consumerGroupClient ) { final Set<String> registeredNames = getRegisteredKafkaTopicNames(ksqlTopics); final List<KafkaTopicInfo> kafkaTopicInfoList = new ArrayList<>(); final Map<String, TopicDescription> filteredDescriptions = new TreeMap<>( filterKsqlInternalTopics(kafkaTopicDescriptions, ksqlConfig)); final Map<String, List<Integer>> topicConsumersAndGroupCount = getTopicConsumerAndGroupCounts( consumerGroupClient); for (final TopicDescription desp : filteredDescriptions.values()) { kafkaTopicInfoList.add(new KafkaTopicInfo( desp.name(), registeredNames.contains(desp.name()), desp.partitions() .stream().map(partition -> partition.replicas().size()).collect(Collectors.toList()), topicConsumersAndGroupCount.getOrDefault(desp.name(), Arrays.asList(0, 0)).get(0), topicConsumersAndGroupCount.getOrDefault(desp.name(), Arrays.asList(0, 0)).get(1) )); } return new KafkaTopicsList(statementText, kafkaTopicInfoList); }