package com.griddynamics.jagger.util.generators; import com.griddynamics.jagger.engine.e1.collector.limits.Limit; import com.griddynamics.jagger.engine.e1.collector.limits.LimitSet; import com.griddynamics.jagger.engine.e1.collector.limits.LimitSetConfig; import com.griddynamics.jagger.engine.e1.sessioncomparation.BaselineSessionProvider; import com.griddynamics.jagger.user.test.configurations.limits.JLimit; import com.griddynamics.jagger.user.test.configurations.limits.JLimitVsRefValue; import java.util.List; import java.util.stream.Collectors; /** * @author asokol * created 11/29/16 */ public class LimitGenerator { private static int count; public static LimitSet generate(List<JLimit> jLimits, BaselineSessionProvider baselineSessionProvider, LimitSetConfig limitSetConfig) { LimitSet limitSet = new LimitSet(); limitSet.setId(count++ + "--limit_set"); limitSet.setBaselineSessionProvider(baselineSessionProvider); limitSet.setLimitSetConfig(limitSetConfig); limitSet.setLimits(generateListOfLimits(jLimits)); return limitSet; } private static List<Limit> generateListOfLimits(List<JLimit> limits) { return limits.stream() .map(LimitGenerator::generateLimit) .collect(Collectors.toList()); } private static Limit generateLimit(JLimit jLimit) { Limit limit = new Limit(); limit.setMetricName(jLimit.getMetricId()); if (jLimit instanceof JLimitVsRefValue) { limit.setRefValue(((JLimitVsRefValue) jLimit).getRefValue()); } limit.setLowerErrorThreshold(jLimit.getLowerErrorThreshold()); limit.setLowerWarningThreshold(jLimit.getLowWarnThresh()); limit.setUpperErrorThreshold(jLimit.getUpperErrorThreshold()); limit.setUpperWarningThreshold(jLimit.getUpperWarningThreshold()); return limit; } }