package com.griddynamics.jagger.dbapi.fetcher;
import com.griddynamics.jagger.dbapi.util.FetchUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.google.common.collect.Multimap;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Set;
/**
* Created by kgribov on 3/17/14.
*/
@Component
public class CustomTestGroupMetricPlotFetcher extends CustomMetricPlotFetcher {
private FetchUtil fetchUtil;
@Autowired
public void setFetchUtil(FetchUtil fetchUtil) {
this.fetchUtil = fetchUtil;
}
@Override
protected List<Object[]> getRawData(Set<Long> taskIds, Set<String> metricIds) {
if (taskIds.isEmpty() || metricIds.isEmpty()) {
log.warn("Empty data for getRawData() method {}; {}" + taskIds, metricIds);
return Collections.emptyList();
}
List<Object[]> resultList = new ArrayList<>();
Multimap<Long, Long> testGroupMap = fetchUtil.getTestGroupIdsByTestIds(taskIds);
if (testGroupMap.isEmpty()) {
log.warn("Could not find testGroupTaskData for workloadTask ids {} ", taskIds);
return Collections.emptyList();
}
Collection<? extends Object[]> testGroupValues = getPlotDataNewModel(testGroupMap.keySet(), metricIds);
for (Object[] row : testGroupValues) {
Long testGroupId = (Long) row[0];
for (Long testId : testGroupMap.get(testGroupId)) {
resultList.add(new Object[]{testId, row[1], row[2], row[3], row[4]});
}
}
return resultList;
}
}