com.opengamma.financial.comparison.PositionInfo.java Source code

Java tutorial

Introduction

Here is the source code for com.opengamma.financial.comparison.PositionInfo.java

Source

/**
 * Copyright (C) 2011 - present by OpenGamma Inc. and the OpenGamma group of companies
 *
 * Please see distribution for license.
 */
package com.opengamma.financial.comparison;

import java.util.Collection;
import java.util.Collections;
import java.util.Map;
import java.util.Set;

import com.google.common.collect.Sets;
import com.opengamma.core.position.Position;
import com.opengamma.core.position.Trade;

/* package */final class PositionInfo extends PositionOrTradeInfo<Position> {

    private final Set<TradeInfo> _trades;

    private final Map<String, String> _attributes;

    public PositionInfo(final ComparisonContext context, final Position position) {
        super(context, position);
        final Collection<Trade> trades = position.getTrades();
        if (trades.isEmpty()) {
            _trades = Collections.emptySet();
        } else {
            final Set<TradeInfo> tradeInfos = Sets.newHashSetWithExpectedSize(trades.size());
            for (Trade trade : trades) {
                tradeInfos.add(new TradeInfo(context, trade));
            }
            _trades = Collections.unmodifiableSet(tradeInfos);
        }
        _attributes = context.isIgnorePositionAttributes() ? Collections.<String, String>emptyMap()
                : position.getAttributes();
    }

    public Set<TradeInfo> getTrades() {
        return _trades;
    }

    public Map<String, String> getAttributes() {
        return _attributes;
    }

    @Override
    public String toString() {
        return "PositionInfo[quantity=" + getQuantity() + ", security=" + getSecurity() + ", trades=" + getTrades()
                + ", attributes=" + getAttributes() + "]";
    }

    @Override
    public boolean equals(final Object o) {
        if (o == this) {
            return true;
        }
        if (!(o instanceof PositionInfo)) {
            return false;
        }
        final PositionInfo other = (PositionInfo) o;
        if (!equalsImpl(other)) {
            return false;
        }
        return getTrades().equals(other.getTrades()) && getAttributes().equals(other.getAttributes());
    }

    @Override
    public int hashCode() {
        int hc = hashCodeImpl();
        hc += (hc << 4) + getTrades().hashCode();
        hc += (hc << 4) + getAttributes().hashCode();
        return hc;
    }

}