class Builder {
        private MetricRegistry registry;
        private MetricFilter metricFilter;
        private CustomLabelMapper labelMapper;

        private Builder() {
            this.metricFilter = MetricFilter.ALL;
        }

        public Builder dropwizardRegistry(MetricRegistry registry) {
            this.registry = registry;
            return this;
        }

        public Builder metricFilter(MetricFilter metricFilter) {
            this.metricFilter = metricFilter;
            return this;
        }

        public Builder customLabelMapper(CustomLabelMapper labelMapper) {
            this.labelMapper = labelMapper;
            return this;
        }

        DropwizardExports build() {<FILL_FUNCTION_BODY>}

        public void register() {
            register(PrometheusRegistry.defaultRegistry);
        }

        public void register(PrometheusRegistry registry) {
            DropwizardExports dropwizardExports = build();
            registry.register(dropwizardExports);
        }
    }

            if (registry == null) {
                throw new IllegalArgumentException("MetricRegistry must be set");
            }
            if (labelMapper == null) {
                return new DropwizardExports(registry, metricFilter);
            } else {
                return new DropwizardExports(registry, metricFilter, labelMapper);
            }
        
<no_super_class>