2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights
7 * ================================================================================
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
19 * ============LICENSE_END=========================================================
22 package org.openecomp.appc.metricservice.impl;
25 import java.util.concurrent.ConcurrentHashMap;
27 import org.openecomp.appc.metricservice.MetricRegistry;
28 import org.openecomp.appc.metricservice.metric.Counter;
29 import org.openecomp.appc.metricservice.metric.Metric;
30 import org.openecomp.appc.metricservice.metric.MetricBuilderFactory;
31 import org.openecomp.appc.metricservice.metric.impl.MetricBuilderFactoryImpl;
32 import org.openecomp.appc.metricservice.policy.PolicyBuilderFactory;
33 import org.openecomp.appc.metricservice.policy.PublishingPolicy;
34 import org.openecomp.appc.metricservice.policy.impl.PolicyBuilderFactoryImpl;
37 public class MetricRegistryImpl implements MetricRegistry {
39 private Map<String,Metric> concurrentMetricMap=new ConcurrentHashMap<String,Metric>();
41 public MetricRegistryImpl(String name) {
46 public boolean register(Metric metric) {
47 if(concurrentMetricMap.get(metric.name())==null){
48 concurrentMetricMap.put(metric.name(),metric);
55 public void attach(PublishingPolicy publishPolicy) {
60 public MetricBuilderFactory metricBuilderFactory() {
61 return new MetricBuilderFactoryImpl();
65 public PolicyBuilderFactory policyBuilderFactory() {
66 return new PolicyBuilderFactoryImpl() ;
70 public Counter counter(String value) {
71 if(concurrentMetricMap.get(value)!=null )
72 return (Counter)concurrentMetricMap.get(value) ;
79 public Counter[] counters() {
80 return (Counter[])concurrentMetricMap.values().toArray();
84 public Metric[] metrics() {
85 java.util.Collection<Metric> var = concurrentMetricMap.values();
86 return var.toArray(new Metric[var.size()]);
90 public Metric metric(String metricName) {
91 return concurrentMetricMap.get(metricName);
95 public void dispose() {
96 concurrentMetricMap.clear();