package rocks.inspectit.server.influx.builder;
import org.influxdb.dto.Point.Builder;
import org.springframework.stereotype.Component;
import rocks.inspectit.server.influx.constants.Series;
import rocks.inspectit.shared.all.communication.data.ClassLoadingInformationData;
/**
* Point builder for the {@link ClassLoadingInformationData}.
*
* @author Ivan Senic
* @author Alexander Wert
*
*/
@Component
public class ClassLoadingPointBuilder extends DefaultDataPointBuilder<ClassLoadingInformationData> {
/**
* {@inheritDoc}
*/
@Override
public Class<ClassLoadingInformationData> getDataClass() {
return ClassLoadingInformationData.class;
}
/**
* {@inheritDoc}
*/
@Override
protected String getSeriesName() {
return Series.ClassLoadingInfomation.NAME;
}
/**
* {@inheritDoc}
*/
@Override
protected void addFields(ClassLoadingInformationData data, Builder builder) {
long count = data.getCount();
long loadedClassCount = data.getTotalLoadedClassCount() / count;
long totalLoadedClassCount = data.getTotalTotalLoadedClassCount() / count;
long unloadedClassCount = data.getTotalUnloadedClassCount() / count;
// fields
builder.addField(Series.ClassLoadingInfomation.FIELD_LOADED_CLASSES, loadedClassCount);
builder.addField(Series.ClassLoadingInfomation.FIELD_TOTAL_LOADED_CLASSES, totalLoadedClassCount);
builder.addField(Series.ClassLoadingInfomation.FIELD_UNLOADED_CLASSES, unloadedClassCount);
}
}