com.opengamma.web.analytics.formatting.CurrencyPairsFormatter.java Source code

Java tutorial

Introduction

Here is the source code for com.opengamma.web.analytics.formatting.CurrencyPairsFormatter.java

Source

/**
 * 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;
    }
}