/*
* Copyright 2014 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.springframework.xd.analytics.metrics.core;
import java.util.List;
/**
* Utility class, primarily to avoid exposing mutable objects beyond the core package.
*
* For internal use only.
*/
public final class MetricUtils {
public static Gauge setGaugeValue(Gauge g, long value) {
return g.set(value);
}
public static RichGauge setRichGaugeValue(RichGauge g, double value) {
return g.set(value);
}
public static RichGauge setRichGaugeAlpha(RichGauge g, double value) {
return g.setAlpha(value);
}
public static RichGauge resetRichGauge(RichGauge g) {
return g.reset();
}
public static long[] concatArrays(List<long[]> arrays, int start, int size) {
long[] counts = new long[size];
long[] first = arrays.remove(0);
int index = Math.min(first.length - start, size);
System.arraycopy(first, start, counts, 0, index);
for (int i = 0; i < arrays.size(); i++) {
long[] sub = arrays.get(i);
for (int j = 0; j < sub.length; j++) {
if (index >= counts.length) {
break;
}
counts[index++] = sub[j];
}
}
return counts;
}
public static long sum(long[] array) {
if (array == null) {
return 0L;
}
long sum = 0;
for (int i = 0; i < array.length; i++) {
sum += array[i];
}
return sum;
}
}