/** * 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.engine.ComputationTargetResolver; import com.opengamma.util.money.Currency; /** * A trade implementation that defers to a target resolver for the component parts. */ public class TargetResolverTrade extends TargetResolverPositionOrTrade implements Trade { private final Map<String, String> _attributes; private final Counterparty _counterparty; private final LocalDate _tradeDate; private final OffsetTime _tradeTime; private final Double _premium; private final Currency _premiumCurrency; private final LocalDate _premiumDate; private final OffsetTime _premiumTime; public TargetResolverTrade(final ComputationTargetResolver.AtVersionCorrection targetResolver, final Trade copyFrom) { super(targetResolver, copyFrom); _attributes = copyFrom.getAttributes(); _counterparty = copyFrom.getCounterparty(); _tradeDate = copyFrom.getTradeDate(); _tradeTime = copyFrom.getTradeTime(); _premium = copyFrom.getPremium(); _premiumCurrency = copyFrom.getPremiumCurrency(); _premiumDate = copyFrom.getPremiumDate(); _premiumTime = copyFrom.getPremiumTime(); } @Override public Map<String, String> getAttributes() { return _attributes; } @Override public void setAttributes(final Map<String, String> attributes) { _attributes.clear(); _attributes.putAll(attributes); } @Override public void addAttribute(String key, String value) { _attributes.put(key, value); } @Override public Counterparty getCounterparty() { return _counterparty; } @Override public LocalDate getTradeDate() { return _tradeDate; } @Override public OffsetTime getTradeTime() { return _tradeTime; } @Override public Double getPremium() { return _premium; } @Override public Currency getPremiumCurrency() { return _premiumCurrency; } @Override public LocalDate getPremiumDate() { return _premiumDate; } @Override public OffsetTime getPremiumTime() { return _premiumTime; } }