org.apache.rocketmq.shaded.io.opentelemetry.sdk.metrics.internal.view.ViewRegistryBuilder Maven / Gradle / Ivy
/*
* Copyright The OpenTelemetry Authors
* SPDX-License-Identifier: Apache-2.0
*/
package org.apache.rocketmq.shaded.io.opentelemetry.sdk.metrics.internal.view;
import org.apache.rocketmq.shaded.io.opentelemetry.sdk.metrics.InstrumentSelector;
import org.apache.rocketmq.shaded.io.opentelemetry.sdk.metrics.View;
import org.apache.rocketmq.shaded.io.opentelemetry.sdk.metrics.internal.debug.SourceInfo;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
* Builder for {@link ViewRegistry}.
*
* This class is internal and is hence not for public use. Its APIs are unstable and can change
* at any time.
*/
public class ViewRegistryBuilder {
private final List orderedViews = new ArrayList<>();
ViewRegistryBuilder() {}
/** Returns the {@link ViewRegistry}. */
public ViewRegistry build() {
return new ViewRegistry(Collections.unmodifiableList(orderedViews));
}
/**
* Adds a new view to the registry.
*
* @param selector The instruments that should have their defaults altered.
* @param view The {@link View} metric definition.
* @param viewSourceInfo The {@link SourceInfo} from where the source was registered.
* @return this
*/
public ViewRegistryBuilder addView(
InstrumentSelector selector,
View view,
AttributesProcessor viewAttributeProcessor,
SourceInfo viewSourceInfo) {
orderedViews.add(RegisteredView.create(selector, view, viewAttributeProcessor, viewSourceInfo));
return this;
}
}