/** * Copyright (C) 2012 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.engine.target.lazy; import java.util.Map; import org.threeten.bp.LocalDate; import org.threeten.bp.OffsetTime; import com.opengamma.core.position.Counterparty; import com.opengamma.core.position.Trade; import com.opengamma.core.position.impl.SimpleTrade; import com.opengamma.engine.ComputationTargetResolver; import com.opengamma.util.money.Currency; /** * A trade implementation that may not be fully resolved at construction but will appear fully resolved when used. */ public final class LazyResolvedTrade extends LazyResolvedPositionOrTrade<Trade> implements Trade { private static final long serialVersionUID = 1L; public LazyResolvedTrade(final LazyResolveContext.AtVersionCorrection context, final Trade underlying) { super(context, underlying); } @Override public Map<String, String> getAttributes() { return getUnderlying().getAttributes(); } @Override public void setAttributes(Map<String, String> attributes) { getUnderlying().setAttributes(attributes); } @Override public void addAttribute(String key, String value) { getUnderlying().addAttribute(key, value); } @Override public Counterparty getCounterparty() { return getUnderlying().getCounterparty(); } @Override public LocalDate getTradeDate() { return getUnderlying().getTradeDate(); } @Override public OffsetTime getTradeTime() { return getUnderlying().getTradeTime(); } @Override public Double getPremium() { return getUnderlying().getPremium(); } @Override public Currency getPremiumCurrency() { return getUnderlying().getPremiumCurrency(); } @Override public LocalDate getPremiumDate() { return getUnderlying().getPremiumDate(); } @Override public OffsetTime getPremiumTime() { return getUnderlying().getPremiumTime(); } @Override protected TargetResolverTrade targetResolverObject(final ComputationTargetResolver.AtVersionCorrection resolver) { return new TargetResolverTrade(resolver, this); } @Override protected SimpleTrade simpleObject() { return new SimpleTrade(this); } }