/** * 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.math.BigDecimal; import com.opengamma.core.position.PositionOrTrade; import com.opengamma.core.security.Security; /* package */abstract class PositionOrTradeInfo<T extends PositionOrTrade> extends AbstractInfo<T> { private final SecurityInfo _security; public PositionOrTradeInfo(final ComparisonContext context, final T positionOrTrade) { super(positionOrTrade); final Security security = positionOrTrade.getSecurity(); if (security == null) { throw new IllegalArgumentException("The security of " + positionOrTrade + " must be resolved"); } _security = new SecurityInfo(context, security); } public BigDecimal getQuantity() { return getUnderlying().getQuantity(); } public SecurityInfo getSecurity() { return _security; } protected boolean equalsImpl(final PositionOrTradeInfo<T> other) { return getQuantity().equals(other.getQuantity()) && getSecurity().equals(other.getSecurity()); } protected int hashCodeImpl() { int hc = 1; hc += (hc << 4) + getQuantity().hashCode(); hc += (hc << 4) + getSecurity().hashCode(); return hc; } }