All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.paradoxical.rabbitmq.metrics.MetricsEventManagerOptions Maven / Gradle / Ivy

The newest version!
package io.paradoxical.rabbitmq.metrics;

import com.codahale.metrics.MetricRegistry;
import lombok.Data;

import java.util.List;
import java.util.function.Function;

@Data
public class MetricsEventManagerOptions {
    private final MetricRegistry metricRegistry;
    private final String sourceId;
    private final List metricGroups;
    private final Function> classMapper;
    private boolean throwOnError = false;

    @java.beans.ConstructorProperties({ "metricRegistry", "sourceId", "metricGroups", "classMapper", "throwOnError" })
    MetricsEventManagerOptions(
            final MetricRegistry metricRegistry,
            final String sourceId,
            final List metricGroups,
            final Function> classMapper, final boolean throwOnError) {
        this.metricRegistry = metricRegistry;
        this.sourceId = sourceId;
        this.metricGroups = metricGroups;
        this.classMapper = classMapper;
        this.throwOnError = throwOnError;
    }

    public static  MetricsEventManagerOptionsBuilder builder() {return new MetricsEventManagerOptionsBuilder();}

    public static class MetricsEventManagerOptionsBuilder {
        private MetricRegistry metricRegistry;
        private String sourceId;
        private List metricGroups;
        private Function> classMapper;
        private boolean throwOnError;

        MetricsEventManagerOptionsBuilder() {}

        public MetricsEventManagerOptions.MetricsEventManagerOptionsBuilder metricRegistry(final MetricRegistry metricRegistry) {
            this.metricRegistry = metricRegistry;
            return this;
        }

        public MetricsEventManagerOptions.MetricsEventManagerOptionsBuilder sourceClass(final Class sourceClass) {
            this.sourceId = sourceClass.getName();
            return this;
        }

        public MetricsEventManagerOptions.MetricsEventManagerOptionsBuilder sourceId(final String sourceId) {
            this.sourceId = sourceId;
            return this;
        }

        public MetricsEventManagerOptions.MetricsEventManagerOptionsBuilder metricGroups(final List metricGroups) {
            this.metricGroups = metricGroups;
            return this;
        }

        public MetricsEventManagerOptions.MetricsEventManagerOptionsBuilder classMapper(final Function> classMapper) {
            this.classMapper = classMapper;
            return this;
        }

        public MetricsEventManagerOptions.MetricsEventManagerOptionsBuilder throwOnError(final boolean throwOnError) {
            this.throwOnError = throwOnError;
            return this;
        }

        public MetricsEventManagerOptions build() {return new MetricsEventManagerOptions(metricRegistry, sourceId, metricGroups, classMapper, throwOnError);}

        public String toString() {
            return "com.godaddy.domains.metrics.MetricsEventManagerOptions.MetricsEventManagerOptionsBuilder(metricRegistry=" + this.metricRegistry + ", sourceId=" +
                   this.sourceId + ", metricGroups=" + this.metricGroups + ", classMapper=" + this.classMapper + ", throwOnError=" + this.throwOnError + ")";
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy