private Map singleEntry()

in geronimo-metrics-common/src/main/java/org/apache/geronimo/microprofile/metrics/common/jaxrs/MetricsEndpoints.java [238:248]


    private <T> Map<String, T> singleEntry(final String id, final MetricRegistry metricRegistry,
                                           final Function<Metric, T> metricMapper) {
        final MetricID key = RegistryImpl.class.isInstance(metricRegistry) && RegistryImpl.class.cast(metricRegistry).getGlobalTags().length > 0 ?
                new MetricID(id, RegistryImpl.class.cast(metricRegistry).getGlobalTags()) : new MetricID(id);
        final Map<MetricID, Metric> metrics = metricRegistry.getMetrics();
        return ofNullable(metrics.get(key)) // try first without any tag (fast access)
                .map(metric -> singletonMap(id + formatTags(key), metricMapper.apply(metric)))
                .orElseGet(() -> metrics.keySet().stream().filter(it -> Objects.equals(it.getName(), id)).findFirst() // else find first matching id
                        .map(metric -> singletonMap(id + formatTags(key), metricMapper.apply(metrics.get(metric))))
                        .orElseGet(Collections::emptyMap));
    }