123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- package com.provectus.kafka.ui.mapper;
- import com.provectus.kafka.ui.config.ClustersProperties;
- import com.provectus.kafka.ui.model.BrokerConfigDTO;
- import com.provectus.kafka.ui.model.BrokerDTO;
- import com.provectus.kafka.ui.model.BrokerDiskUsageDTO;
- import com.provectus.kafka.ui.model.BrokerMetricsDTO;
- import com.provectus.kafka.ui.model.ClusterDTO;
- import com.provectus.kafka.ui.model.ClusterFeature;
- import com.provectus.kafka.ui.model.ClusterMetricsDTO;
- import com.provectus.kafka.ui.model.ClusterStatsDTO;
- import com.provectus.kafka.ui.model.ConfigSourceDTO;
- import com.provectus.kafka.ui.model.ConfigSynonymDTO;
- import com.provectus.kafka.ui.model.ConnectDTO;
- import com.provectus.kafka.ui.model.InternalBroker;
- import com.provectus.kafka.ui.model.InternalBrokerConfig;
- import com.provectus.kafka.ui.model.InternalBrokerDiskUsage;
- import com.provectus.kafka.ui.model.InternalClusterState;
- import com.provectus.kafka.ui.model.InternalPartition;
- import com.provectus.kafka.ui.model.InternalReplica;
- import com.provectus.kafka.ui.model.InternalTopic;
- import com.provectus.kafka.ui.model.InternalTopicConfig;
- import com.provectus.kafka.ui.model.MetricDTO;
- import com.provectus.kafka.ui.model.Metrics;
- import com.provectus.kafka.ui.model.PartitionDTO;
- import com.provectus.kafka.ui.model.ReplicaDTO;
- import com.provectus.kafka.ui.model.TopicConfigDTO;
- import com.provectus.kafka.ui.model.TopicDTO;
- import com.provectus.kafka.ui.model.TopicDetailsDTO;
- import com.provectus.kafka.ui.service.masking.DataMasking;
- import com.provectus.kafka.ui.service.metrics.RawMetric;
- import java.util.List;
- import java.util.Map;
- import java.util.stream.Collectors;
- import org.apache.kafka.clients.admin.ConfigEntry;
- import org.mapstruct.Mapper;
- import org.mapstruct.Mapping;
- @Mapper(componentModel = "spring")
- public interface ClusterMapper {
- ClusterDTO toCluster(InternalClusterState clusterState);
- ClusterStatsDTO toClusterStats(InternalClusterState clusterState);
- default ClusterMetricsDTO toClusterMetrics(Metrics metrics) {
- return new ClusterMetricsDTO()
- .items(metrics.getSummarizedMetrics().map(this::convert).collect(Collectors.toList()));
- }
- private MetricDTO convert(RawMetric rawMetric) {
- return new MetricDTO()
- .name(rawMetric.name())
- .labels(rawMetric.labels())
- .value(rawMetric.value());
- }
- default BrokerMetricsDTO toBrokerMetrics(List<RawMetric> metrics) {
- return new BrokerMetricsDTO()
- .metrics(metrics.stream().map(this::convert).collect(Collectors.toList()));
- }
- @Mapping(target = "isSensitive", source = "sensitive")
- @Mapping(target = "isReadOnly", source = "readOnly")
- BrokerConfigDTO toBrokerConfig(InternalBrokerConfig config);
- default ConfigSynonymDTO toConfigSynonym(ConfigEntry.ConfigSynonym config) {
- if (config == null) {
- return null;
- }
- ConfigSynonymDTO configSynonym = new ConfigSynonymDTO();
- configSynonym.setName(config.name());
- configSynonym.setValue(config.value());
- if (config.source() != null) {
- configSynonym.setSource(ConfigSourceDTO.valueOf(config.source().name()));
- }
- return configSynonym;
- }
- TopicDTO toTopic(InternalTopic topic);
- PartitionDTO toPartition(InternalPartition topic);
- BrokerDTO toBrokerDto(InternalBroker broker);
- TopicDetailsDTO toTopicDetails(InternalTopic topic);
- @Mapping(target = "isReadOnly", source = "readOnly")
- @Mapping(target = "isSensitive", source = "sensitive")
- TopicConfigDTO toTopicConfig(InternalTopicConfig topic);
- ReplicaDTO toReplica(InternalReplica replica);
- ConnectDTO toKafkaConnect(ClustersProperties.ConnectCluster connect);
- List<ClusterDTO.FeaturesEnum> toFeaturesEnum(List<ClusterFeature> features);
- default List<PartitionDTO> map(Map<Integer, InternalPartition> map) {
- return map.values().stream().map(this::toPartition).collect(Collectors.toList());
- }
- default BrokerDiskUsageDTO map(Integer id, InternalBrokerDiskUsage internalBrokerDiskUsage) {
- final BrokerDiskUsageDTO brokerDiskUsage = new BrokerDiskUsageDTO();
- brokerDiskUsage.setBrokerId(id);
- brokerDiskUsage.segmentCount((int) internalBrokerDiskUsage.getSegmentCount());
- brokerDiskUsage.segmentSize(internalBrokerDiskUsage.getSegmentSize());
- return brokerDiskUsage;
- }
- default DataMasking map(List<ClustersProperties.Masking> maskingProperties) {
- return DataMasking.create(maskingProperties);
- }
- }
|