/******************************************************************************* * Copyright 2015 Software Evolution and Architecture Lab, University of Zurich * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the * specific language governing permissions and limitations under the License. ******************************************************************************/ package eu.cloudwave.wp5.feedbackhandler.aggregations; import eu.cloudwave.wp5.feedbackhandler.aggregations.strategies.RequestAggregationStrategy; import eu.cloudwave.wp5.feedbackhandler.aggregations.strategies.RequestAggregationValues; public class AggregatedRequestCollector { /** * Aggreagtion Values like min, avg or max */ private RequestAggregationValues aggregationValues; /** * RequestCollector that contains a list of requests */ private RequestCollector collector; /** * Constructor * * @param requests * The requests of type {@link ClientRequestCollector} * @param strategy * The implementation of {@link RequestAggregationStrategy} */ public AggregatedRequestCollector(RequestCollector requests, RequestAggregationStrategy strategy) { this.collector = requests; this.aggregationValues = strategy.aggregate(requests); } /** * Setter for strategy that aggregates requests * * @param strategy */ public void setStrategy(RequestAggregationStrategy strategy) { this.aggregationValues = strategy.aggregate(collector); } /** * Getter for aggregated requests that have been aggregated by the strategy * * @return {@link RequestAggregationValues} */ public RequestAggregationValues getRequestAggregationValues() { return this.aggregationValues; } public RequestCollector getCollector() { return collector; } }