public TopicRecordModel apply()

in ui/src/main/java/com/epam/eco/kafkamanager/ui/topics/model/TopicInfoToModelMapper.java [55:101]


    public TopicRecordModel apply(TopicInfo topicInfo) {

        TopicRecordModel model = TopicRecordModel.builder()
                        .name(topicInfo.getName())
                        .partitions(topicInfo.getPartitionCount())
                        .replicas(topicInfo.getReplicationFactor())
                        .config(topicInfo.getConfig())
                        .topicDataURL(topicInfo.getName())
                        .build();

        topicInfo.getMetadata().ifPresent(value -> model.setDescription(value.getDescription()));

        if(nonNull(dataCatalogUrlTemplate)) {
            model.setSchemaCatalog(ExternalToolModel.builder()
                                           .url(dataCatalogUrlTemplate.resolve(topicInfo.getName()))
                                           .toolName(dataCatalogUrlTemplate.getName())
                                           .icon(dataCatalogUrlTemplate.getIcon())
                                           .build());
        }
        if(nonNull(grafanaUrlTemplate)) {
            model.setGrafanaMetrics(ExternalToolModel.builder()
                                                     .url(grafanaUrlTemplate.resolve(topicInfo.getName()))
                                                     .toolName(grafanaUrlTemplate.getName())
                                                     .icon(grafanaUrlTemplate.getIcon())
                                                     .build());
        }
        if(nonNull(externalToolTemplates) && externalToolTemplates.size()>0) {
            Collection<ExternalToolModel> externalToolModels = new LinkedList<>();
            externalToolTemplates.forEach(externalToolTemplate -> {
                externalToolModels.add(ExternalToolModel.builder()
                                           .url(externalToolTemplate.resolve(topicInfo.getName()))
                                           .toolName(externalToolTemplate.getName())
                                           .icon(externalToolTemplate.getIcon())
                                           .build() );

            });
            model.setExternalTools(externalToolModels);
        }
        List<ConsumerGroupInfo> consumerGroupInfos = kafkaManager.getConsumerGroupsForTopic(topicInfo.getName());
        List<String> consumerGroups = new LinkedList<>();
        if(nonNull(consumerGroupInfos) && !consumerGroupInfos.isEmpty()) {
            consumerGroupInfos.forEach(consumerGroupInfo -> consumerGroups.add(consumerGroupInfo.getName()));
        }
        model.setConsumerGroups(consumerGroups);

        return model;
    }