/**
* Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.financial.aggregation;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
/**
* Aggregation functions for portfolios.
*/
public class PortfolioAggregationFunctions {
/**
* The aggregators.
*/
private final List<AggregationFunction<?>> _functions;
/**
* Creates an instance.
*
* @param functions the functions, not null
*/
public PortfolioAggregationFunctions(Iterable<AggregationFunction<?>> functions) {
_functions = ImmutableList.copyOf(functions);
}
//-------------------------------------------------------------------------
/**
* Gets the aggregators.
*
* @return the immutable list of aggregators, not null
*/
public List<AggregationFunction<?>> getFunctions() {
return _functions;
}
//-------------------------------------------------------------------------
/**
* Gets the aggregators mapped by name.
*
* @return the immutable map of aggregation functions, not null
*/
public Map<String, AggregationFunction<?>> getMappedFunctions() {
Map<String, AggregationFunction<?>> result = new HashMap<String, AggregationFunction<?>>();
for (AggregationFunction<?> portfolioAggregator : _functions) {
result.put(portfolioAggregator.getName(), portfolioAggregator);
}
return ImmutableMap.copyOf(result);
}
//-------------------------------------------------------------------------
@Override
public String toString() {
return "PortfolioAggregationFunctions" + _functions;
}
}