/** * Copyright (C) 2012 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.web.analytics.formatting; import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Set; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Lists; import com.opengamma.engine.value.ValueSpecification; import com.opengamma.financial.currency.CurrencyPair; import com.opengamma.financial.currency.CurrencyPairs; /* package */ class CurrencyPairsFormatter extends AbstractFormatter<CurrencyPairs> { private static final String DATA = "data"; private static final String LABEL = "label"; private static final String CURRENCY_PAIRS = "Currency Pairs"; /* package */ CurrencyPairsFormatter() { super(CurrencyPairs.class); addFormatter(new Formatter<CurrencyPairs>(Format.EXPANDED) { @Override Object format(CurrencyPairs pairs, ValueSpecification valueSpec, Object inlineKey) { return formatExpanded(pairs); } }); } private Map<String, Object> formatExpanded(CurrencyPairs currencyPairs) { Set<CurrencyPair> pairs = currencyPairs.getPairs(); List<String> pairNames = Lists.newArrayListWithCapacity(pairs.size()); for (CurrencyPair pair : pairs) { pairNames.add(pair.getName()); } Collections.sort(pairNames); return ImmutableMap.of(DATA, pairNames, LABEL, CURRENCY_PAIRS); } @Override public Object formatCell(CurrencyPairs pairs, ValueSpecification valueSpec, Object inlineKey) { return "Currency Pairs (" + pairs.getPairs().size() + ")"; } @Override public DataType getDataType() { return DataType.VECTOR; } }