package org.sef4j.ext.influxdb.series;
import java.util.Arrays;
import java.util.List;
import org.influxdb.dto.Serie;
import org.sef4j.callstack.stats.PendingPerfCount;
/**
* Mapper for PendingPerfCount -> InfluxDB Serie
*/
public class PendingPerfCountToSerieMapper {
private static final String[] FIELD_NAMES = new String[] { "pendingCount", "pendingSumStartTime" };
public static final PendingPerfCountToSerieMapper INSTANCE = new PendingPerfCountToSerieMapper("", "");
private final String[] columnNames;
// ------------------------------------------------------------------------
public PendingPerfCountToSerieMapper(String prefix, String suffix) {
this.columnNames = SerieColNameUtil.wrapNames(prefix, FIELD_NAMES, suffix);
}
// ------------------------------------------------------------------------
public String[] getColumnNames() {
return columnNames;
}
public void getColumns(List<String> dest) {
dest.addAll(Arrays.asList(columnNames));
}
public void getValues(List<Object> dest, PendingPerfCount src) {
int pendingCount = src.getPendingCount();
long pendingSumStartTime = src.getPendingSumStartTime();
dest.add(pendingCount);
dest.add(pendingSumStartTime);
}
public Serie map(PendingPerfCount src, String serieName) {
Serie.Builder dest = new Serie.Builder(serieName);
dest.columns(columnNames);
mapValues(dest, src);
return dest.build();
}
public void mapValues(Serie.Builder dest, PendingPerfCount src) {
int pendingCount = src.getPendingCount();
long pendingSumStartTime = src.getPendingSumStartTime();
dest.values(pendingCount, pendingSumStartTime);
}
}