package rocks.inspectit.server.diagnosis.engine.session; import com.google.common.collect.ArrayListMultimap; import com.google.common.collect.Multimap; import rocks.inspectit.server.diagnosis.engine.rule.ConditionFailure; import rocks.inspectit.server.diagnosis.engine.rule.RuleOutput; import rocks.inspectit.server.diagnosis.engine.tag.TagState; /** * The default implementation of ISessionResultCollector. This implementation produces * {@link DefaultSessionResult}. * * @param <I> * The original input type * @author Claudio Waldvogel, Alexander Wert * @see DefaultSessionResult */ public class DefaultSessionResultCollector<I> implements ISessionResultCollector<I, DefaultSessionResult<I>> { //------------------------------------------------------------- // Interface Implementation: ISessionResultCollector //------------------------------------------------------------- @Override public DefaultSessionResult<I> collect(SessionContext<I> context) { Multimap<String, ConditionFailure> conditionFailures = ArrayListMultimap.create(); //unpack condition errors for (RuleOutput output : context.getStorage().getAllOutputsWithConditionFailures().values()) { conditionFailures.putAll(output.getRuleName(), output.getConditionFailures()); } return new DefaultSessionResult<>(context.getInput(), conditionFailures, context.getStorage().mapTags(TagState.LEAF)); } }