diff --git a/modules/loader/src/test/java/com/opengamma/strata/loader/csv/TradeCsvLoaderTest.java b/modules/loader/src/test/java/com/opengamma/strata/loader/csv/TradeCsvLoaderTest.java index 567705b64f..acd4a8cae4 100644 --- a/modules/loader/src/test/java/com/opengamma/strata/loader/csv/TradeCsvLoaderTest.java +++ b/modules/loader/src/test/java/com/opengamma/strata/loader/csv/TradeCsvLoaderTest.java @@ -77,6 +77,7 @@ import com.opengamma.strata.product.AttributeType; import com.opengamma.strata.product.GenericSecurity; import com.opengamma.strata.product.GenericSecurityTrade; +import com.opengamma.strata.product.PortfolioItemInfo; import com.opengamma.strata.product.SecurityId; import com.opengamma.strata.product.SecurityInfo; import com.opengamma.strata.product.SecurityPriceInfo; @@ -2002,7 +2003,7 @@ public Optional parseOtherTrade(String typeUpper, CsvRow row, TradeInfo i public void test_load_unknownTypeFixedViaResolver() { Trade trade = new Trade() { @Override - public Trade withInfo(TradeInfo info) { + public Trade withInfo(PortfolioItemInfo info) { throw new UnsupportedOperationException(); } @@ -2032,7 +2033,7 @@ public Optional parseOtherTrade(String typeUpper, CsvRow row, TradeInfo i public void test_load_overrideTypeViaResolver() { Trade trade = new Trade() { @Override - public Trade withInfo(TradeInfo info) { + public Trade withInfo(PortfolioItemInfo info) { throw new UnsupportedOperationException(); } diff --git a/modules/market/src/test/java/com/opengamma/strata/market/curve/DummyFraTrade.java b/modules/market/src/test/java/com/opengamma/strata/market/curve/DummyFraTrade.java index 5a27e03c2f..f935e10f8f 100644 --- a/modules/market/src/test/java/com/opengamma/strata/market/curve/DummyFraTrade.java +++ b/modules/market/src/test/java/com/opengamma/strata/market/curve/DummyFraTrade.java @@ -17,6 +17,7 @@ import org.joda.beans.gen.PropertyDefinition; import org.joda.beans.impl.light.LightMetaBean; +import com.opengamma.strata.product.PortfolioItemInfo; import com.opengamma.strata.product.ResolvedProduct; import com.opengamma.strata.product.ResolvedTrade; import com.opengamma.strata.product.Trade; @@ -45,7 +46,7 @@ public TradeInfo getInfo() { } @Override - public Trade withInfo(TradeInfo info) { + public Trade withInfo(PortfolioItemInfo info) { return this; } diff --git a/modules/product/src/main/java/com/opengamma/strata/product/GenericSecurityPosition.java b/modules/product/src/main/java/com/opengamma/strata/product/GenericSecurityPosition.java index a6c390d9c5..39caefb1ff 100644 --- a/modules/product/src/main/java/com/opengamma/strata/product/GenericSecurityPosition.java +++ b/modules/product/src/main/java/com/opengamma/strata/product/GenericSecurityPosition.java @@ -174,8 +174,8 @@ public double getQuantity() { //------------------------------------------------------------------------- @Override - public GenericSecurityPosition withInfo(PositionInfo info) { - return new GenericSecurityPosition(info, security, longQuantity, shortQuantity); + public GenericSecurityPosition withInfo(PortfolioItemInfo info) { + return new GenericSecurityPosition(PositionInfo.from(info), security, longQuantity, shortQuantity); } @Override diff --git a/modules/product/src/main/java/com/opengamma/strata/product/GenericSecurityTrade.java b/modules/product/src/main/java/com/opengamma/strata/product/GenericSecurityTrade.java index 03f064cd6f..59bf5f88ee 100644 --- a/modules/product/src/main/java/com/opengamma/strata/product/GenericSecurityTrade.java +++ b/modules/product/src/main/java/com/opengamma/strata/product/GenericSecurityTrade.java @@ -109,8 +109,8 @@ public GenericSecurity getProduct() { //------------------------------------------------------------------------- @Override - public GenericSecurityTrade withInfo(TradeInfo info) { - return new GenericSecurityTrade(info, security, quantity, price); + public GenericSecurityTrade withInfo(PortfolioItemInfo info) { + return new GenericSecurityTrade(TradeInfo.from(info), security, quantity, price); } @Override diff --git a/modules/product/src/main/java/com/opengamma/strata/product/PortfolioItem.java b/modules/product/src/main/java/com/opengamma/strata/product/PortfolioItem.java index 8ee710901d..1ff91e17a0 100644 --- a/modules/product/src/main/java/com/opengamma/strata/product/PortfolioItem.java +++ b/modules/product/src/main/java/com/opengamma/strata/product/PortfolioItem.java @@ -43,6 +43,16 @@ public default Optional getId() { return getInfo().getId(); } + /** + * Returns an instance with the specified info. + * + * @param info the new info + * @return the instance with the specified info + */ + public default PortfolioItem withInfo(PortfolioItemInfo info) { + throw new UnsupportedOperationException(); + } + /** * Summarizes the portfolio item. *

diff --git a/modules/product/src/main/java/com/opengamma/strata/product/Position.java b/modules/product/src/main/java/com/opengamma/strata/product/Position.java index aa3af36cf7..144267ece8 100644 --- a/modules/product/src/main/java/com/opengamma/strata/product/Position.java +++ b/modules/product/src/main/java/com/opengamma/strata/product/Position.java @@ -65,7 +65,7 @@ public default PortfolioItemSummary summarize() { * @param info the new info * @return the instance with the specified info */ - public abstract Position withInfo(PositionInfo info); + public abstract Position withInfo(PortfolioItemInfo info); /** * Returns an instance with the specified quantity. diff --git a/modules/product/src/main/java/com/opengamma/strata/product/PositionInfo.java b/modules/product/src/main/java/com/opengamma/strata/product/PositionInfo.java index ebdca692b9..a4ff2b0c4b 100644 --- a/modules/product/src/main/java/com/opengamma/strata/product/PositionInfo.java +++ b/modules/product/src/main/java/com/opengamma/strata/product/PositionInfo.java @@ -83,6 +83,16 @@ public static PositionInfo of(StandardId positionId) { return new PositionInfo(positionId, ImmutableMap.of()); } + /** + * Obtains an instance based on the supplied info. + * + * @param info the base info + * @return the position information + */ + public static PositionInfo from(PortfolioItemInfo info) { + return empty().combinedWith(info); + } + /** * Returns a builder used to create an instance of the bean. * diff --git a/modules/product/src/main/java/com/opengamma/strata/product/ProductTrade.java b/modules/product/src/main/java/com/opengamma/strata/product/ProductTrade.java index 4df4d78499..c11e4beab9 100644 --- a/modules/product/src/main/java/com/opengamma/strata/product/ProductTrade.java +++ b/modules/product/src/main/java/com/opengamma/strata/product/ProductTrade.java @@ -32,6 +32,6 @@ public interface ProductTrade * @return the instance with the specified info */ @Override - public abstract ProductTrade withInfo(TradeInfo info); + public abstract ProductTrade withInfo(PortfolioItemInfo info); } diff --git a/modules/product/src/main/java/com/opengamma/strata/product/ResolvableSecurityPosition.java b/modules/product/src/main/java/com/opengamma/strata/product/ResolvableSecurityPosition.java index c02717b546..ab57f54dce 100644 --- a/modules/product/src/main/java/com/opengamma/strata/product/ResolvableSecurityPosition.java +++ b/modules/product/src/main/java/com/opengamma/strata/product/ResolvableSecurityPosition.java @@ -46,7 +46,7 @@ public interface ResolvableSecurityPosition * @return the instance with the specified info */ @Override - public abstract ResolvableSecurityPosition withInfo(PositionInfo info); + public abstract ResolvableSecurityPosition withInfo(PortfolioItemInfo info); /** * Returns an instance with the specified quantity. diff --git a/modules/product/src/main/java/com/opengamma/strata/product/ResolvableSecurityTrade.java b/modules/product/src/main/java/com/opengamma/strata/product/ResolvableSecurityTrade.java index 98a9ec82ff..dffd671b69 100644 --- a/modules/product/src/main/java/com/opengamma/strata/product/ResolvableSecurityTrade.java +++ b/modules/product/src/main/java/com/opengamma/strata/product/ResolvableSecurityTrade.java @@ -56,7 +56,7 @@ public default SecuritizedProductTrade resolveTarget(ReferenceData refData) { * @return the instance with the specified info */ @Override - public abstract ResolvableSecurityTrade withInfo(TradeInfo info); + public abstract ResolvableSecurityTrade withInfo(PortfolioItemInfo info); /** * Returns an instance with the specified quantity. diff --git a/modules/product/src/main/java/com/opengamma/strata/product/ResolvableTrade.java b/modules/product/src/main/java/com/opengamma/strata/product/ResolvableTrade.java index 0cadaf384c..62195cef8f 100644 --- a/modules/product/src/main/java/com/opengamma/strata/product/ResolvableTrade.java +++ b/modules/product/src/main/java/com/opengamma/strata/product/ResolvableTrade.java @@ -48,6 +48,6 @@ public interface ResolvableTrade * @return the instance with the specified info */ @Override - public abstract ResolvableTrade withInfo(TradeInfo info); + public abstract ResolvableTrade withInfo(PortfolioItemInfo info); } diff --git a/modules/product/src/main/java/com/opengamma/strata/product/SecuritizedProductPosition.java b/modules/product/src/main/java/com/opengamma/strata/product/SecuritizedProductPosition.java index 84bc3f0623..94f151cd01 100644 --- a/modules/product/src/main/java/com/opengamma/strata/product/SecuritizedProductPosition.java +++ b/modules/product/src/main/java/com/opengamma/strata/product/SecuritizedProductPosition.java @@ -40,7 +40,7 @@ public default SecurityId getSecurityId() { * @return the instance with the specified info */ @Override - public abstract SecuritizedProductPosition

withInfo(PositionInfo info); + public abstract SecuritizedProductPosition

withInfo(PortfolioItemInfo info); /** * Returns an instance with the specified quantity. diff --git a/modules/product/src/main/java/com/opengamma/strata/product/SecuritizedProductTrade.java b/modules/product/src/main/java/com/opengamma/strata/product/SecuritizedProductTrade.java index d9e56e3aa0..b0e831fee6 100644 --- a/modules/product/src/main/java/com/opengamma/strata/product/SecuritizedProductTrade.java +++ b/modules/product/src/main/java/com/opengamma/strata/product/SecuritizedProductTrade.java @@ -34,7 +34,7 @@ public interface SecuritizedProductTrade

* @return the instance with the specified info */ @Override - public abstract SecuritizedProductTrade

withInfo(TradeInfo info); + public abstract SecuritizedProductTrade

withInfo(PortfolioItemInfo info); /** * Returns an instance with the specified quantity. diff --git a/modules/product/src/main/java/com/opengamma/strata/product/SecurityPosition.java b/modules/product/src/main/java/com/opengamma/strata/product/SecurityPosition.java index a3342af467..8485ca182b 100644 --- a/modules/product/src/main/java/com/opengamma/strata/product/SecurityPosition.java +++ b/modules/product/src/main/java/com/opengamma/strata/product/SecurityPosition.java @@ -172,8 +172,8 @@ public double getQuantity() { //------------------------------------------------------------------------- @Override - public SecurityPosition withInfo(PositionInfo info) { - return new SecurityPosition(info, securityId, longQuantity, shortQuantity); + public SecurityPosition withInfo(PortfolioItemInfo info) { + return new SecurityPosition(PositionInfo.from(info), securityId, longQuantity, shortQuantity); } @Override diff --git a/modules/product/src/main/java/com/opengamma/strata/product/SecurityQuantityTrade.java b/modules/product/src/main/java/com/opengamma/strata/product/SecurityQuantityTrade.java index 344191ae60..23b5a6b115 100644 --- a/modules/product/src/main/java/com/opengamma/strata/product/SecurityQuantityTrade.java +++ b/modules/product/src/main/java/com/opengamma/strata/product/SecurityQuantityTrade.java @@ -32,7 +32,7 @@ public interface SecurityQuantityTrade * @return the instance with the specified info */ @Override - public abstract SecurityQuantityTrade withInfo(TradeInfo info); + public abstract SecurityQuantityTrade withInfo(PortfolioItemInfo info); /** * Returns an instance with the specified quantity. diff --git a/modules/product/src/main/java/com/opengamma/strata/product/SecurityTrade.java b/modules/product/src/main/java/com/opengamma/strata/product/SecurityTrade.java index 57a68f598e..9441263cc6 100644 --- a/modules/product/src/main/java/com/opengamma/strata/product/SecurityTrade.java +++ b/modules/product/src/main/java/com/opengamma/strata/product/SecurityTrade.java @@ -103,8 +103,8 @@ public PortfolioItemSummary summarize() { //------------------------------------------------------------------------- @Override - public SecurityTrade withInfo(TradeInfo info) { - return new SecurityTrade(info, securityId, quantity, price); + public SecurityTrade withInfo(PortfolioItemInfo info) { + return new SecurityTrade(TradeInfo.from(info), securityId, quantity, price); } @Override diff --git a/modules/product/src/main/java/com/opengamma/strata/product/Trade.java b/modules/product/src/main/java/com/opengamma/strata/product/Trade.java index 729400bde6..1ed436275e 100644 --- a/modules/product/src/main/java/com/opengamma/strata/product/Trade.java +++ b/modules/product/src/main/java/com/opengamma/strata/product/Trade.java @@ -43,6 +43,6 @@ public default PortfolioItemSummary summarize() { * @param info the new info * @return the instance with the specified info */ - public abstract Trade withInfo(TradeInfo info); + public abstract Trade withInfo(PortfolioItemInfo info); } diff --git a/modules/product/src/main/java/com/opengamma/strata/product/TradeInfo.java b/modules/product/src/main/java/com/opengamma/strata/product/TradeInfo.java index 842f2c8831..99dec49a76 100644 --- a/modules/product/src/main/java/com/opengamma/strata/product/TradeInfo.java +++ b/modules/product/src/main/java/com/opengamma/strata/product/TradeInfo.java @@ -113,6 +113,16 @@ public static TradeInfo of(LocalDate tradeDate) { return new TradeInfo(null, null, tradeDate, null, null, null, ImmutableMap.of()); } + /** + * Obtains an instance based on the supplied info. + * + * @param info the base info + * @return the trade information + */ + public static TradeInfo from(PortfolioItemInfo info) { + return empty().combinedWith(info); + } + /** * Returns a builder used to create an instance of the bean. * @@ -202,7 +212,7 @@ public TradeInfo overrideWith(PortfolioItemInfo other) { /** * Returns a builder populated with the values of this instance. - * + * * @return a builder populated with the values of this instance */ public TradeInfoBuilder toBuilder() { diff --git a/modules/product/src/main/java/com/opengamma/strata/product/bond/BillPosition.java b/modules/product/src/main/java/com/opengamma/strata/product/bond/BillPosition.java index 35c28de1b6..3c8342607a 100644 --- a/modules/product/src/main/java/com/opengamma/strata/product/bond/BillPosition.java +++ b/modules/product/src/main/java/com/opengamma/strata/product/bond/BillPosition.java @@ -27,6 +27,7 @@ import com.opengamma.strata.basics.Resolvable; import com.opengamma.strata.basics.currency.Currency; import com.opengamma.strata.collect.ArgChecker; +import com.opengamma.strata.product.PortfolioItemInfo; import com.opengamma.strata.product.PortfolioItemSummary; import com.opengamma.strata.product.PositionInfo; import com.opengamma.strata.product.ProductType; @@ -150,8 +151,8 @@ public double getQuantity() { //------------------------------------------------------------------------- @Override - public BillPosition withInfo(PositionInfo info) { - return new BillPosition(info, product, longQuantity, shortQuantity); + public BillPosition withInfo(PortfolioItemInfo info) { + return new BillPosition(PositionInfo.from(info), product, longQuantity, shortQuantity); } @Override diff --git a/modules/product/src/main/java/com/opengamma/strata/product/bond/BillTrade.java b/modules/product/src/main/java/com/opengamma/strata/product/bond/BillTrade.java index 1533806bc1..62d8861f4e 100644 --- a/modules/product/src/main/java/com/opengamma/strata/product/bond/BillTrade.java +++ b/modules/product/src/main/java/com/opengamma/strata/product/bond/BillTrade.java @@ -27,6 +27,7 @@ import com.opengamma.strata.basics.currency.CurrencyAmount; import com.opengamma.strata.basics.currency.Payment; import com.opengamma.strata.collect.ArgChecker; +import com.opengamma.strata.product.PortfolioItemInfo; import com.opengamma.strata.product.PortfolioItemSummary; import com.opengamma.strata.product.ProductType; import com.opengamma.strata.product.ResolvableTrade; @@ -144,8 +145,8 @@ private LocalDate calculateSettlementDate(ReferenceData refData) { } @Override - public BillTrade withInfo(TradeInfo info) { - return new BillTrade(info, product, quantity, price); + public BillTrade withInfo(PortfolioItemInfo info) { + return new BillTrade(TradeInfo.from(info), product, quantity, price); } @Override diff --git a/modules/product/src/main/java/com/opengamma/strata/product/bond/BondFutureOptionPosition.java b/modules/product/src/main/java/com/opengamma/strata/product/bond/BondFutureOptionPosition.java index 2e37b0f51f..0db71fa189 100644 --- a/modules/product/src/main/java/com/opengamma/strata/product/bond/BondFutureOptionPosition.java +++ b/modules/product/src/main/java/com/opengamma/strata/product/bond/BondFutureOptionPosition.java @@ -27,6 +27,7 @@ import com.opengamma.strata.basics.Resolvable; import com.opengamma.strata.basics.currency.Currency; import com.opengamma.strata.collect.ArgChecker; +import com.opengamma.strata.product.PortfolioItemInfo; import com.opengamma.strata.product.PortfolioItemSummary; import com.opengamma.strata.product.PositionInfo; import com.opengamma.strata.product.ProductType; @@ -150,8 +151,8 @@ public double getQuantity() { //------------------------------------------------------------------------- @Override - public BondFutureOptionPosition withInfo(PositionInfo info) { - return new BondFutureOptionPosition(info, product, longQuantity, shortQuantity); + public BondFutureOptionPosition withInfo(PortfolioItemInfo info) { + return new BondFutureOptionPosition(PositionInfo.from(info), product, longQuantity, shortQuantity); } @Override diff --git a/modules/product/src/main/java/com/opengamma/strata/product/bond/BondFutureOptionTrade.java b/modules/product/src/main/java/com/opengamma/strata/product/bond/BondFutureOptionTrade.java index d7a00a196b..1f83ac8956 100644 --- a/modules/product/src/main/java/com/opengamma/strata/product/bond/BondFutureOptionTrade.java +++ b/modules/product/src/main/java/com/opengamma/strata/product/bond/BondFutureOptionTrade.java @@ -24,6 +24,7 @@ import com.opengamma.strata.basics.ReferenceData; import com.opengamma.strata.collect.ArgChecker; +import com.opengamma.strata.product.PortfolioItemInfo; import com.opengamma.strata.product.PortfolioItemSummary; import com.opengamma.strata.product.ProductType; import com.opengamma.strata.product.ResolvableTrade; @@ -87,8 +88,8 @@ private static void applyDefaults(Builder builder) { //------------------------------------------------------------------------- @Override - public BondFutureOptionTrade withInfo(TradeInfo info) { - return new BondFutureOptionTrade(info, product, quantity, price); + public BondFutureOptionTrade withInfo(PortfolioItemInfo info) { + return new BondFutureOptionTrade(TradeInfo.from(info), product, quantity, price); } @Override diff --git a/modules/product/src/main/java/com/opengamma/strata/product/bond/BondFuturePosition.java b/modules/product/src/main/java/com/opengamma/strata/product/bond/BondFuturePosition.java index 7646e81008..188b875674 100644 --- a/modules/product/src/main/java/com/opengamma/strata/product/bond/BondFuturePosition.java +++ b/modules/product/src/main/java/com/opengamma/strata/product/bond/BondFuturePosition.java @@ -27,6 +27,7 @@ import com.opengamma.strata.basics.Resolvable; import com.opengamma.strata.basics.currency.Currency; import com.opengamma.strata.collect.ArgChecker; +import com.opengamma.strata.product.PortfolioItemInfo; import com.opengamma.strata.product.PortfolioItemSummary; import com.opengamma.strata.product.PositionInfo; import com.opengamma.strata.product.ProductType; @@ -150,8 +151,8 @@ public double getQuantity() { //------------------------------------------------------------------------- @Override - public BondFuturePosition withInfo(PositionInfo info) { - return new BondFuturePosition(info, product, longQuantity, shortQuantity); + public BondFuturePosition withInfo(PortfolioItemInfo info) { + return new BondFuturePosition(PositionInfo.from(info), product, longQuantity, shortQuantity); } @Override diff --git a/modules/product/src/main/java/com/opengamma/strata/product/bond/BondFutureTrade.java b/modules/product/src/main/java/com/opengamma/strata/product/bond/BondFutureTrade.java index 2a1eaddadb..dffe3df625 100644 --- a/modules/product/src/main/java/com/opengamma/strata/product/bond/BondFutureTrade.java +++ b/modules/product/src/main/java/com/opengamma/strata/product/bond/BondFutureTrade.java @@ -24,6 +24,7 @@ import com.opengamma.strata.basics.ReferenceData; import com.opengamma.strata.collect.ArgChecker; +import com.opengamma.strata.product.PortfolioItemInfo; import com.opengamma.strata.product.PortfolioItemSummary; import com.opengamma.strata.product.ProductType; import com.opengamma.strata.product.ResolvableTrade; @@ -85,8 +86,8 @@ private static void applyDefaults(Builder builder) { //------------------------------------------------------------------------- @Override - public BondFutureTrade withInfo(TradeInfo info) { - return new BondFutureTrade(info, product, quantity, price); + public BondFutureTrade withInfo(PortfolioItemInfo info) { + return new BondFutureTrade(TradeInfo.from(info), product, quantity, price); } @Override diff --git a/modules/product/src/main/java/com/opengamma/strata/product/bond/CapitalIndexedBondPosition.java b/modules/product/src/main/java/com/opengamma/strata/product/bond/CapitalIndexedBondPosition.java index fa8de17bcb..fb1a351e31 100644 --- a/modules/product/src/main/java/com/opengamma/strata/product/bond/CapitalIndexedBondPosition.java +++ b/modules/product/src/main/java/com/opengamma/strata/product/bond/CapitalIndexedBondPosition.java @@ -27,6 +27,7 @@ import com.opengamma.strata.basics.Resolvable; import com.opengamma.strata.basics.currency.Currency; import com.opengamma.strata.collect.ArgChecker; +import com.opengamma.strata.product.PortfolioItemInfo; import com.opengamma.strata.product.PortfolioItemSummary; import com.opengamma.strata.product.PositionInfo; import com.opengamma.strata.product.ProductType; @@ -150,8 +151,8 @@ public double getQuantity() { //------------------------------------------------------------------------- @Override - public CapitalIndexedBondPosition withInfo(PositionInfo info) { - return new CapitalIndexedBondPosition(info, product, longQuantity, shortQuantity); + public CapitalIndexedBondPosition withInfo(PortfolioItemInfo info) { + return new CapitalIndexedBondPosition(PositionInfo.from(info), product, longQuantity, shortQuantity); } @Override diff --git a/modules/product/src/main/java/com/opengamma/strata/product/bond/CapitalIndexedBondTrade.java b/modules/product/src/main/java/com/opengamma/strata/product/bond/CapitalIndexedBondTrade.java index bf5999a55f..edf938225b 100644 --- a/modules/product/src/main/java/com/opengamma/strata/product/bond/CapitalIndexedBondTrade.java +++ b/modules/product/src/main/java/com/opengamma/strata/product/bond/CapitalIndexedBondTrade.java @@ -27,6 +27,7 @@ import com.opengamma.strata.basics.currency.Payment; import com.opengamma.strata.basics.schedule.SchedulePeriod; import com.opengamma.strata.collect.ArgChecker; +import com.opengamma.strata.product.PortfolioItemInfo; import com.opengamma.strata.product.PortfolioItemSummary; import com.opengamma.strata.product.ProductType; import com.opengamma.strata.product.ResolvableTrade; @@ -90,8 +91,8 @@ private static void applyDefaults(Builder builder) { //------------------------------------------------------------------------- @Override - public CapitalIndexedBondTrade withInfo(TradeInfo info) { - return new CapitalIndexedBondTrade(info, product, quantity, price); + public CapitalIndexedBondTrade withInfo(PortfolioItemInfo info) { + return new CapitalIndexedBondTrade(TradeInfo.from(info), product, quantity, price); } @Override diff --git a/modules/product/src/main/java/com/opengamma/strata/product/bond/FixedCouponBondPosition.java b/modules/product/src/main/java/com/opengamma/strata/product/bond/FixedCouponBondPosition.java index 40cadc10a5..7e7271d5bb 100644 --- a/modules/product/src/main/java/com/opengamma/strata/product/bond/FixedCouponBondPosition.java +++ b/modules/product/src/main/java/com/opengamma/strata/product/bond/FixedCouponBondPosition.java @@ -27,6 +27,7 @@ import com.opengamma.strata.basics.Resolvable; import com.opengamma.strata.basics.currency.Currency; import com.opengamma.strata.collect.ArgChecker; +import com.opengamma.strata.product.PortfolioItemInfo; import com.opengamma.strata.product.PortfolioItemSummary; import com.opengamma.strata.product.PositionInfo; import com.opengamma.strata.product.ProductType; @@ -150,8 +151,8 @@ public double getQuantity() { //------------------------------------------------------------------------- @Override - public FixedCouponBondPosition withInfo(PositionInfo info) { - return new FixedCouponBondPosition(info, product, longQuantity, shortQuantity); + public FixedCouponBondPosition withInfo(PortfolioItemInfo info) { + return new FixedCouponBondPosition(PositionInfo.from(info), product, longQuantity, shortQuantity); } @Override diff --git a/modules/product/src/main/java/com/opengamma/strata/product/bond/FixedCouponBondTrade.java b/modules/product/src/main/java/com/opengamma/strata/product/bond/FixedCouponBondTrade.java index 67922a2e24..04368f29dd 100644 --- a/modules/product/src/main/java/com/opengamma/strata/product/bond/FixedCouponBondTrade.java +++ b/modules/product/src/main/java/com/opengamma/strata/product/bond/FixedCouponBondTrade.java @@ -25,6 +25,7 @@ import com.opengamma.strata.basics.ReferenceData; import com.opengamma.strata.collect.ArgChecker; +import com.opengamma.strata.product.PortfolioItemInfo; import com.opengamma.strata.product.PortfolioItemSummary; import com.opengamma.strata.product.ProductType; import com.opengamma.strata.product.ResolvableTrade; @@ -87,8 +88,8 @@ private static void applyDefaults(Builder builder) { //------------------------------------------------------------------------- @Override - public FixedCouponBondTrade withInfo(TradeInfo info) { - return new FixedCouponBondTrade(info, product, quantity, price); + public FixedCouponBondTrade withInfo(PortfolioItemInfo info) { + return new FixedCouponBondTrade(TradeInfo.from(info), product, quantity, price); } @Override diff --git a/modules/product/src/main/java/com/opengamma/strata/product/capfloor/IborCapFloorTrade.java b/modules/product/src/main/java/com/opengamma/strata/product/capfloor/IborCapFloorTrade.java index de799dd510..195d3d05ad 100644 --- a/modules/product/src/main/java/com/opengamma/strata/product/capfloor/IborCapFloorTrade.java +++ b/modules/product/src/main/java/com/opengamma/strata/product/capfloor/IborCapFloorTrade.java @@ -25,6 +25,7 @@ import com.opengamma.strata.basics.ReferenceData; import com.opengamma.strata.basics.currency.AdjustablePayment; +import com.opengamma.strata.product.PortfolioItemInfo; import com.opengamma.strata.product.PortfolioItemSummary; import com.opengamma.strata.product.ProductTrade; import com.opengamma.strata.product.ProductType; @@ -77,8 +78,8 @@ private static void applyDefaults(Builder builder) { //------------------------------------------------------------------------- @Override - public IborCapFloorTrade withInfo(TradeInfo info) { - return new IborCapFloorTrade(info, product, premium); + public IborCapFloorTrade withInfo(PortfolioItemInfo info) { + return new IborCapFloorTrade(TradeInfo.from(info), product, premium); } //------------------------------------------------------------------------- diff --git a/modules/product/src/main/java/com/opengamma/strata/product/cms/CmsTrade.java b/modules/product/src/main/java/com/opengamma/strata/product/cms/CmsTrade.java index b10e1ece33..e6153a69de 100644 --- a/modules/product/src/main/java/com/opengamma/strata/product/cms/CmsTrade.java +++ b/modules/product/src/main/java/com/opengamma/strata/product/cms/CmsTrade.java @@ -25,6 +25,7 @@ import com.opengamma.strata.basics.ReferenceData; import com.opengamma.strata.basics.currency.AdjustablePayment; +import com.opengamma.strata.product.PortfolioItemInfo; import com.opengamma.strata.product.PortfolioItemSummary; import com.opengamma.strata.product.ProductTrade; import com.opengamma.strata.product.ProductType; @@ -77,8 +78,8 @@ private static void applyDefaults(Builder builder) { //------------------------------------------------------------------------- @Override - public CmsTrade withInfo(TradeInfo info) { - return new CmsTrade(info, product, premium); + public CmsTrade withInfo(PortfolioItemInfo info) { + return new CmsTrade(TradeInfo.from(info), product, premium); } //------------------------------------------------------------------------- diff --git a/modules/product/src/main/java/com/opengamma/strata/product/credit/CdsCalibrationTrade.java b/modules/product/src/main/java/com/opengamma/strata/product/credit/CdsCalibrationTrade.java index 1be78a3e28..589446643d 100644 --- a/modules/product/src/main/java/com/opengamma/strata/product/credit/CdsCalibrationTrade.java +++ b/modules/product/src/main/java/com/opengamma/strata/product/credit/CdsCalibrationTrade.java @@ -23,6 +23,7 @@ import org.joda.beans.impl.direct.DirectPrivateBeanBuilder; import com.opengamma.strata.basics.currency.Currency; +import com.opengamma.strata.product.PortfolioItemInfo; import com.opengamma.strata.product.PortfolioItemSummary; import com.opengamma.strata.product.ProductType; import com.opengamma.strata.product.Trade; @@ -68,7 +69,7 @@ public TradeInfo getInfo() { } @Override - public CdsCalibrationTrade withInfo(TradeInfo info) { + public CdsCalibrationTrade withInfo(PortfolioItemInfo info) { return new CdsCalibrationTrade(underlyingTrade.withInfo(info), quote); } diff --git a/modules/product/src/main/java/com/opengamma/strata/product/credit/CdsIndexCalibrationTrade.java b/modules/product/src/main/java/com/opengamma/strata/product/credit/CdsIndexCalibrationTrade.java index b5f1328fac..58f38fc797 100644 --- a/modules/product/src/main/java/com/opengamma/strata/product/credit/CdsIndexCalibrationTrade.java +++ b/modules/product/src/main/java/com/opengamma/strata/product/credit/CdsIndexCalibrationTrade.java @@ -23,6 +23,7 @@ import org.joda.beans.impl.direct.DirectPrivateBeanBuilder; import com.opengamma.strata.basics.currency.Currency; +import com.opengamma.strata.product.PortfolioItemInfo; import com.opengamma.strata.product.PortfolioItemSummary; import com.opengamma.strata.product.ProductType; import com.opengamma.strata.product.Trade; @@ -68,7 +69,7 @@ public TradeInfo getInfo() { } @Override - public CdsIndexCalibrationTrade withInfo(TradeInfo info) { + public CdsIndexCalibrationTrade withInfo(PortfolioItemInfo info) { return new CdsIndexCalibrationTrade(underlyingTrade.withInfo(info), quote); } diff --git a/modules/product/src/main/java/com/opengamma/strata/product/credit/CdsIndexTrade.java b/modules/product/src/main/java/com/opengamma/strata/product/credit/CdsIndexTrade.java index efc50aef4e..dd1a3f6e95 100644 --- a/modules/product/src/main/java/com/opengamma/strata/product/credit/CdsIndexTrade.java +++ b/modules/product/src/main/java/com/opengamma/strata/product/credit/CdsIndexTrade.java @@ -25,6 +25,7 @@ import com.opengamma.strata.basics.ReferenceData; import com.opengamma.strata.basics.currency.AdjustablePayment; import com.opengamma.strata.basics.schedule.PeriodicSchedule; +import com.opengamma.strata.product.PortfolioItemInfo; import com.opengamma.strata.product.PortfolioItemSummary; import com.opengamma.strata.product.ProductTrade; import com.opengamma.strata.product.ProductType; @@ -72,8 +73,8 @@ public final class CdsIndexTrade //------------------------------------------------------------------------- @Override - public CdsIndexTrade withInfo(TradeInfo info) { - return new CdsIndexTrade(info, product, upfrontFee); + public CdsIndexTrade withInfo(PortfolioItemInfo info) { + return new CdsIndexTrade(TradeInfo.from(info), product, upfrontFee); } //------------------------------------------------------------------------- diff --git a/modules/product/src/main/java/com/opengamma/strata/product/credit/CdsTrade.java b/modules/product/src/main/java/com/opengamma/strata/product/credit/CdsTrade.java index f1a7ebaa73..65fc078617 100644 --- a/modules/product/src/main/java/com/opengamma/strata/product/credit/CdsTrade.java +++ b/modules/product/src/main/java/com/opengamma/strata/product/credit/CdsTrade.java @@ -25,6 +25,7 @@ import com.opengamma.strata.basics.ReferenceData; import com.opengamma.strata.basics.currency.AdjustablePayment; import com.opengamma.strata.basics.schedule.PeriodicSchedule; +import com.opengamma.strata.product.PortfolioItemInfo; import com.opengamma.strata.product.PortfolioItemSummary; import com.opengamma.strata.product.ProductTrade; import com.opengamma.strata.product.ProductType; @@ -73,8 +74,8 @@ public final class CdsTrade //------------------------------------------------------------------------- @Override - public CdsTrade withInfo(TradeInfo info) { - return new CdsTrade(info, product, upfrontFee); + public CdsTrade withInfo(PortfolioItemInfo info) { + return new CdsTrade(TradeInfo.from(info), product, upfrontFee); } //------------------------------------------------------------------------- diff --git a/modules/product/src/main/java/com/opengamma/strata/product/deposit/IborFixingDepositTrade.java b/modules/product/src/main/java/com/opengamma/strata/product/deposit/IborFixingDepositTrade.java index 1e2096e50b..807522caab 100644 --- a/modules/product/src/main/java/com/opengamma/strata/product/deposit/IborFixingDepositTrade.java +++ b/modules/product/src/main/java/com/opengamma/strata/product/deposit/IborFixingDepositTrade.java @@ -23,6 +23,7 @@ import org.joda.beans.impl.direct.DirectMetaPropertyMap; import com.opengamma.strata.basics.ReferenceData; +import com.opengamma.strata.product.PortfolioItemInfo; import com.opengamma.strata.product.PortfolioItemSummary; import com.opengamma.strata.product.ProductTrade; import com.opengamma.strata.product.ProductType; @@ -79,8 +80,8 @@ private static void applyDefaults(Builder builder) { //------------------------------------------------------------------------- @Override - public IborFixingDepositTrade withInfo(TradeInfo info) { - return new IborFixingDepositTrade(info, product); + public IborFixingDepositTrade withInfo(PortfolioItemInfo info) { + return new IborFixingDepositTrade(TradeInfo.from(info), product); } //------------------------------------------------------------------------- diff --git a/modules/product/src/main/java/com/opengamma/strata/product/deposit/TermDepositTrade.java b/modules/product/src/main/java/com/opengamma/strata/product/deposit/TermDepositTrade.java index 62fab70459..94138fbc21 100644 --- a/modules/product/src/main/java/com/opengamma/strata/product/deposit/TermDepositTrade.java +++ b/modules/product/src/main/java/com/opengamma/strata/product/deposit/TermDepositTrade.java @@ -23,6 +23,7 @@ import org.joda.beans.impl.direct.DirectMetaPropertyMap; import com.opengamma.strata.basics.ReferenceData; +import com.opengamma.strata.product.PortfolioItemInfo; import com.opengamma.strata.product.PortfolioItemSummary; import com.opengamma.strata.product.ProductTrade; import com.opengamma.strata.product.ProductType; @@ -78,8 +79,8 @@ private static void applyDefaults(Builder builder) { //------------------------------------------------------------------------- @Override - public TermDepositTrade withInfo(TradeInfo info) { - return new TermDepositTrade(info, product); + public TermDepositTrade withInfo(PortfolioItemInfo info) { + return new TermDepositTrade(TradeInfo.from(info), product); } //------------------------------------------------------------------------- diff --git a/modules/product/src/main/java/com/opengamma/strata/product/dsf/DsfPosition.java b/modules/product/src/main/java/com/opengamma/strata/product/dsf/DsfPosition.java index 67e04e8a7e..d53dc42d8b 100644 --- a/modules/product/src/main/java/com/opengamma/strata/product/dsf/DsfPosition.java +++ b/modules/product/src/main/java/com/opengamma/strata/product/dsf/DsfPosition.java @@ -27,6 +27,7 @@ import com.opengamma.strata.basics.Resolvable; import com.opengamma.strata.basics.currency.Currency; import com.opengamma.strata.collect.ArgChecker; +import com.opengamma.strata.product.PortfolioItemInfo; import com.opengamma.strata.product.PortfolioItemSummary; import com.opengamma.strata.product.PositionInfo; import com.opengamma.strata.product.ProductType; @@ -151,8 +152,8 @@ public double getQuantity() { //------------------------------------------------------------------------- @Override - public DsfPosition withInfo(PositionInfo info) { - return new DsfPosition(info, product, longQuantity, shortQuantity); + public DsfPosition withInfo(PortfolioItemInfo info) { + return new DsfPosition(PositionInfo.from(info), product, longQuantity, shortQuantity); } @Override diff --git a/modules/product/src/main/java/com/opengamma/strata/product/dsf/DsfTrade.java b/modules/product/src/main/java/com/opengamma/strata/product/dsf/DsfTrade.java index 2551de178a..474968b9a7 100644 --- a/modules/product/src/main/java/com/opengamma/strata/product/dsf/DsfTrade.java +++ b/modules/product/src/main/java/com/opengamma/strata/product/dsf/DsfTrade.java @@ -24,6 +24,7 @@ import com.opengamma.strata.basics.ReferenceData; import com.opengamma.strata.collect.ArgChecker; +import com.opengamma.strata.product.PortfolioItemInfo; import com.opengamma.strata.product.PortfolioItemSummary; import com.opengamma.strata.product.ProductType; import com.opengamma.strata.product.ResolvableTrade; @@ -93,8 +94,8 @@ private static void applyDefaults(Builder builder) { //------------------------------------------------------------------------- @Override - public DsfTrade withInfo(TradeInfo info) { - return new DsfTrade(info, product, quantity, price); + public DsfTrade withInfo(PortfolioItemInfo info) { + return new DsfTrade(TradeInfo.from(info), product, quantity, price); } @Override diff --git a/modules/product/src/main/java/com/opengamma/strata/product/etd/EtdFuturePosition.java b/modules/product/src/main/java/com/opengamma/strata/product/etd/EtdFuturePosition.java index 1a9ee5f3cd..54e54da897 100644 --- a/modules/product/src/main/java/com/opengamma/strata/product/etd/EtdFuturePosition.java +++ b/modules/product/src/main/java/com/opengamma/strata/product/etd/EtdFuturePosition.java @@ -27,6 +27,7 @@ import com.opengamma.strata.basics.currency.Currency; import com.opengamma.strata.collect.ArgChecker; import com.opengamma.strata.collect.Messages; +import com.opengamma.strata.product.PortfolioItemInfo; import com.opengamma.strata.product.PortfolioItemSummary; import com.opengamma.strata.product.Position; import com.opengamma.strata.product.PositionInfo; @@ -167,8 +168,8 @@ public EtdFutureSecurity getProduct() { //------------------------------------------------------------------------- @Override - public EtdFuturePosition withInfo(PositionInfo info) { - return new EtdFuturePosition(info, security, longQuantity, shortQuantity); + public EtdFuturePosition withInfo(PortfolioItemInfo info) { + return new EtdFuturePosition(PositionInfo.from(info), security, longQuantity, shortQuantity); } @Override diff --git a/modules/product/src/main/java/com/opengamma/strata/product/etd/EtdFutureTrade.java b/modules/product/src/main/java/com/opengamma/strata/product/etd/EtdFutureTrade.java index f338f0ef0d..8c4db8487d 100644 --- a/modules/product/src/main/java/com/opengamma/strata/product/etd/EtdFutureTrade.java +++ b/modules/product/src/main/java/com/opengamma/strata/product/etd/EtdFutureTrade.java @@ -23,6 +23,7 @@ import org.joda.beans.impl.direct.DirectMetaPropertyMap; import com.opengamma.strata.basics.currency.Currency; +import com.opengamma.strata.product.PortfolioItemInfo; import com.opengamma.strata.product.PortfolioItemSummary; import com.opengamma.strata.product.ProductType; import com.opengamma.strata.product.ResolvableSecurityTrade; @@ -108,8 +109,8 @@ public SecurityId getSecurityId() { //------------------------------------------------------------------------- @Override - public EtdFutureTrade withInfo(TradeInfo info) { - return new EtdFutureTrade(info, security, quantity, price); + public EtdFutureTrade withInfo(PortfolioItemInfo info) { + return new EtdFutureTrade(TradeInfo.from(info), security, quantity, price); } @Override diff --git a/modules/product/src/main/java/com/opengamma/strata/product/etd/EtdOptionPosition.java b/modules/product/src/main/java/com/opengamma/strata/product/etd/EtdOptionPosition.java index 3ab2c06514..474428692d 100644 --- a/modules/product/src/main/java/com/opengamma/strata/product/etd/EtdOptionPosition.java +++ b/modules/product/src/main/java/com/opengamma/strata/product/etd/EtdOptionPosition.java @@ -27,6 +27,7 @@ import com.opengamma.strata.basics.currency.Currency; import com.opengamma.strata.collect.ArgChecker; import com.opengamma.strata.collect.Messages; +import com.opengamma.strata.product.PortfolioItemInfo; import com.opengamma.strata.product.PortfolioItemSummary; import com.opengamma.strata.product.Position; import com.opengamma.strata.product.PositionInfo; @@ -167,8 +168,8 @@ public EtdOptionSecurity getProduct() { //------------------------------------------------------------------------- @Override - public EtdOptionPosition withInfo(PositionInfo info) { - return new EtdOptionPosition(info, security, longQuantity, shortQuantity); + public EtdOptionPosition withInfo(PortfolioItemInfo info) { + return new EtdOptionPosition(PositionInfo.from(info), security, longQuantity, shortQuantity); } @Override diff --git a/modules/product/src/main/java/com/opengamma/strata/product/etd/EtdOptionTrade.java b/modules/product/src/main/java/com/opengamma/strata/product/etd/EtdOptionTrade.java index 70dd012624..45b3c4be8e 100644 --- a/modules/product/src/main/java/com/opengamma/strata/product/etd/EtdOptionTrade.java +++ b/modules/product/src/main/java/com/opengamma/strata/product/etd/EtdOptionTrade.java @@ -23,6 +23,7 @@ import org.joda.beans.impl.direct.DirectMetaPropertyMap; import com.opengamma.strata.basics.currency.Currency; +import com.opengamma.strata.product.PortfolioItemInfo; import com.opengamma.strata.product.PortfolioItemSummary; import com.opengamma.strata.product.ProductType; import com.opengamma.strata.product.ResolvableSecurityTrade; @@ -108,8 +109,8 @@ public SecurityId getSecurityId() { //------------------------------------------------------------------------- @Override - public EtdOptionTrade withInfo(TradeInfo info) { - return new EtdOptionTrade(info, security, quantity, price); + public EtdOptionTrade withInfo(PortfolioItemInfo info) { + return new EtdOptionTrade(TradeInfo.from(info), security, quantity, price); } @Override diff --git a/modules/product/src/main/java/com/opengamma/strata/product/etd/EtdPosition.java b/modules/product/src/main/java/com/opengamma/strata/product/etd/EtdPosition.java index 8ce5fa4964..3a55819212 100644 --- a/modules/product/src/main/java/com/opengamma/strata/product/etd/EtdPosition.java +++ b/modules/product/src/main/java/com/opengamma/strata/product/etd/EtdPosition.java @@ -6,8 +6,8 @@ package com.opengamma.strata.product.etd; import com.opengamma.strata.basics.currency.Currency; +import com.opengamma.strata.product.PortfolioItemInfo; import com.opengamma.strata.product.Position; -import com.opengamma.strata.product.PositionInfo; import com.opengamma.strata.product.SecurityId; /** @@ -107,7 +107,7 @@ public default SecurityId getSecurityId() { * @return the instance with the specified info */ @Override - public abstract EtdPosition withInfo(PositionInfo info); + public abstract EtdPosition withInfo(PortfolioItemInfo info); /** * Returns an instance with the specified net quantity. diff --git a/modules/product/src/main/java/com/opengamma/strata/product/fra/FraTrade.java b/modules/product/src/main/java/com/opengamma/strata/product/fra/FraTrade.java index 9090031d07..2c0cebedd9 100644 --- a/modules/product/src/main/java/com/opengamma/strata/product/fra/FraTrade.java +++ b/modules/product/src/main/java/com/opengamma/strata/product/fra/FraTrade.java @@ -27,6 +27,7 @@ import org.joda.beans.impl.direct.DirectMetaPropertyMap; import com.opengamma.strata.basics.ReferenceData; +import com.opengamma.strata.product.PortfolioItemInfo; import com.opengamma.strata.product.PortfolioItemSummary; import com.opengamma.strata.product.ProductTrade; import com.opengamma.strata.product.ProductType; @@ -80,8 +81,8 @@ private static void applyDefaults(Builder builder) { //------------------------------------------------------------------------- @Override - public FraTrade withInfo(TradeInfo info) { - return new FraTrade(info, product); + public FraTrade withInfo(PortfolioItemInfo info) { + return new FraTrade(TradeInfo.from(info), product); } //------------------------------------------------------------------------- diff --git a/modules/product/src/main/java/com/opengamma/strata/product/fx/FxNdfTrade.java b/modules/product/src/main/java/com/opengamma/strata/product/fx/FxNdfTrade.java index 231ac1ca02..b6e621c417 100644 --- a/modules/product/src/main/java/com/opengamma/strata/product/fx/FxNdfTrade.java +++ b/modules/product/src/main/java/com/opengamma/strata/product/fx/FxNdfTrade.java @@ -24,6 +24,7 @@ import com.opengamma.strata.basics.ReferenceData; import com.opengamma.strata.basics.currency.CurrencyAmount; +import com.opengamma.strata.product.PortfolioItemInfo; import com.opengamma.strata.product.PortfolioItemSummary; import com.opengamma.strata.product.ProductType; import com.opengamma.strata.product.ResolvableTrade; @@ -78,8 +79,8 @@ private static void applyDefaults(Builder builder) { //------------------------------------------------------------------------- @Override - public FxNdfTrade withInfo(TradeInfo info) { - return new FxNdfTrade(info, product); + public FxNdfTrade withInfo(PortfolioItemInfo info) { + return new FxNdfTrade(TradeInfo.from(info), product); } //------------------------------------------------------------------------- diff --git a/modules/product/src/main/java/com/opengamma/strata/product/fx/FxSingleTrade.java b/modules/product/src/main/java/com/opengamma/strata/product/fx/FxSingleTrade.java index f79c8f27c7..951b308f65 100644 --- a/modules/product/src/main/java/com/opengamma/strata/product/fx/FxSingleTrade.java +++ b/modules/product/src/main/java/com/opengamma/strata/product/fx/FxSingleTrade.java @@ -24,6 +24,7 @@ import com.opengamma.strata.basics.ReferenceData; import com.opengamma.strata.basics.currency.CurrencyAmount; +import com.opengamma.strata.product.PortfolioItemInfo; import com.opengamma.strata.product.PortfolioItemSummary; import com.opengamma.strata.product.ProductType; import com.opengamma.strata.product.ResolvableTrade; @@ -80,8 +81,8 @@ private static void applyDefaults(Builder builder) { //------------------------------------------------------------------------- @Override - public FxSingleTrade withInfo(TradeInfo info) { - return new FxSingleTrade(info, product); + public FxSingleTrade withInfo(PortfolioItemInfo info) { + return new FxSingleTrade(TradeInfo.from(info), product); } //------------------------------------------------------------------------- diff --git a/modules/product/src/main/java/com/opengamma/strata/product/fx/FxSwapTrade.java b/modules/product/src/main/java/com/opengamma/strata/product/fx/FxSwapTrade.java index ad9974128e..a6c032bd68 100644 --- a/modules/product/src/main/java/com/opengamma/strata/product/fx/FxSwapTrade.java +++ b/modules/product/src/main/java/com/opengamma/strata/product/fx/FxSwapTrade.java @@ -25,6 +25,7 @@ import com.opengamma.strata.basics.ReferenceData; import com.opengamma.strata.basics.currency.CurrencyAmount; import com.opengamma.strata.basics.currency.CurrencyPair; +import com.opengamma.strata.product.PortfolioItemInfo; import com.opengamma.strata.product.PortfolioItemSummary; import com.opengamma.strata.product.ProductType; import com.opengamma.strata.product.ResolvableTrade; @@ -80,8 +81,8 @@ private static void applyDefaults(Builder builder) { //------------------------------------------------------------------------- @Override - public FxSwapTrade withInfo(TradeInfo info) { - return new FxSwapTrade(info, product); + public FxSwapTrade withInfo(PortfolioItemInfo info) { + return new FxSwapTrade(TradeInfo.from(info), product); } //------------------------------------------------------------------------- diff --git a/modules/product/src/main/java/com/opengamma/strata/product/fx/FxTrade.java b/modules/product/src/main/java/com/opengamma/strata/product/fx/FxTrade.java index 16e00109fa..274ef02a99 100644 --- a/modules/product/src/main/java/com/opengamma/strata/product/fx/FxTrade.java +++ b/modules/product/src/main/java/com/opengamma/strata/product/fx/FxTrade.java @@ -5,8 +5,8 @@ */ package com.opengamma.strata.product.fx; +import com.opengamma.strata.product.PortfolioItemInfo; import com.opengamma.strata.product.ProductTrade; -import com.opengamma.strata.product.TradeInfo; /** * A foreign exchange trade, such as an FX forward, FX spot or FX option. @@ -17,7 +17,7 @@ public interface FxTrade extends ProductTrade { @Override - public abstract FxTrade withInfo(TradeInfo info); + public abstract FxTrade withInfo(PortfolioItemInfo info); @Override public abstract FxProduct getProduct(); diff --git a/modules/product/src/main/java/com/opengamma/strata/product/fxopt/FxSingleBarrierOptionTrade.java b/modules/product/src/main/java/com/opengamma/strata/product/fxopt/FxSingleBarrierOptionTrade.java index f03c0baea4..b0aacc70f0 100644 --- a/modules/product/src/main/java/com/opengamma/strata/product/fxopt/FxSingleBarrierOptionTrade.java +++ b/modules/product/src/main/java/com/opengamma/strata/product/fxopt/FxSingleBarrierOptionTrade.java @@ -26,6 +26,7 @@ import com.opengamma.strata.basics.currency.AdjustablePayment; import com.opengamma.strata.basics.currency.CurrencyAmount; import com.opengamma.strata.basics.currency.CurrencyPair; +import com.opengamma.strata.product.PortfolioItemInfo; import com.opengamma.strata.product.PortfolioItemSummary; import com.opengamma.strata.product.ProductType; import com.opengamma.strata.product.ResolvableTrade; @@ -76,8 +77,8 @@ private static void applyDefaults(Builder builder) { //------------------------------------------------------------------------- @Override - public FxSingleBarrierOptionTrade withInfo(TradeInfo info) { - return new FxSingleBarrierOptionTrade(info, product, premium); + public FxSingleBarrierOptionTrade withInfo(PortfolioItemInfo info) { + return new FxSingleBarrierOptionTrade(TradeInfo.from(info), product, premium); } //------------------------------------------------------------------------- diff --git a/modules/product/src/main/java/com/opengamma/strata/product/fxopt/FxVanillaOptionTrade.java b/modules/product/src/main/java/com/opengamma/strata/product/fxopt/FxVanillaOptionTrade.java index 213f1eba02..17673a9bb9 100644 --- a/modules/product/src/main/java/com/opengamma/strata/product/fxopt/FxVanillaOptionTrade.java +++ b/modules/product/src/main/java/com/opengamma/strata/product/fxopt/FxVanillaOptionTrade.java @@ -26,6 +26,7 @@ import com.opengamma.strata.basics.currency.AdjustablePayment; import com.opengamma.strata.basics.currency.CurrencyAmount; import com.opengamma.strata.basics.currency.CurrencyPair; +import com.opengamma.strata.product.PortfolioItemInfo; import com.opengamma.strata.product.PortfolioItemSummary; import com.opengamma.strata.product.ProductType; import com.opengamma.strata.product.ResolvableTrade; @@ -76,8 +77,8 @@ private static void applyDefaults(Builder builder) { //------------------------------------------------------------------------- @Override - public FxVanillaOptionTrade withInfo(TradeInfo info) { - return new FxVanillaOptionTrade(info, product, premium); + public FxVanillaOptionTrade withInfo(PortfolioItemInfo info) { + return new FxVanillaOptionTrade(TradeInfo.from(info), product, premium); } //------------------------------------------------------------------------- diff --git a/modules/product/src/main/java/com/opengamma/strata/product/index/IborFutureOptionPosition.java b/modules/product/src/main/java/com/opengamma/strata/product/index/IborFutureOptionPosition.java index ff6ce3b672..9a18ec8826 100644 --- a/modules/product/src/main/java/com/opengamma/strata/product/index/IborFutureOptionPosition.java +++ b/modules/product/src/main/java/com/opengamma/strata/product/index/IborFutureOptionPosition.java @@ -27,6 +27,7 @@ import com.opengamma.strata.basics.Resolvable; import com.opengamma.strata.basics.currency.Currency; import com.opengamma.strata.collect.ArgChecker; +import com.opengamma.strata.product.PortfolioItemInfo; import com.opengamma.strata.product.PortfolioItemSummary; import com.opengamma.strata.product.PositionInfo; import com.opengamma.strata.product.ProductType; @@ -158,8 +159,8 @@ public double getQuantity() { //------------------------------------------------------------------------- @Override - public IborFutureOptionPosition withInfo(PositionInfo info) { - return new IborFutureOptionPosition(info, product, longQuantity, shortQuantity); + public IborFutureOptionPosition withInfo(PortfolioItemInfo info) { + return new IborFutureOptionPosition(PositionInfo.from(info), product, longQuantity, shortQuantity); } @Override diff --git a/modules/product/src/main/java/com/opengamma/strata/product/index/IborFutureOptionTrade.java b/modules/product/src/main/java/com/opengamma/strata/product/index/IborFutureOptionTrade.java index 8d441ba6b2..701a41b76c 100644 --- a/modules/product/src/main/java/com/opengamma/strata/product/index/IborFutureOptionTrade.java +++ b/modules/product/src/main/java/com/opengamma/strata/product/index/IborFutureOptionTrade.java @@ -24,6 +24,7 @@ import com.opengamma.strata.basics.ReferenceData; import com.opengamma.strata.collect.ArgChecker; +import com.opengamma.strata.product.PortfolioItemInfo; import com.opengamma.strata.product.PortfolioItemSummary; import com.opengamma.strata.product.ProductType; import com.opengamma.strata.product.ResolvableTrade; @@ -101,8 +102,8 @@ private static void applyDefaults(Builder builder) { //------------------------------------------------------------------------- @Override - public IborFutureOptionTrade withInfo(TradeInfo info) { - return new IborFutureOptionTrade(info, product, quantity, price); + public IborFutureOptionTrade withInfo(PortfolioItemInfo info) { + return new IborFutureOptionTrade(TradeInfo.from(info), product, quantity, price); } @Override diff --git a/modules/product/src/main/java/com/opengamma/strata/product/index/IborFuturePosition.java b/modules/product/src/main/java/com/opengamma/strata/product/index/IborFuturePosition.java index aa8b978bc9..cc3d924b67 100644 --- a/modules/product/src/main/java/com/opengamma/strata/product/index/IborFuturePosition.java +++ b/modules/product/src/main/java/com/opengamma/strata/product/index/IborFuturePosition.java @@ -27,6 +27,7 @@ import com.opengamma.strata.basics.Resolvable; import com.opengamma.strata.basics.currency.Currency; import com.opengamma.strata.collect.ArgChecker; +import com.opengamma.strata.product.PortfolioItemInfo; import com.opengamma.strata.product.PortfolioItemSummary; import com.opengamma.strata.product.PositionInfo; import com.opengamma.strata.product.ProductType; @@ -156,8 +157,8 @@ public double getQuantity() { //------------------------------------------------------------------------- @Override - public IborFuturePosition withInfo(PositionInfo info) { - return new IborFuturePosition(info, product, longQuantity, shortQuantity); + public IborFuturePosition withInfo(PortfolioItemInfo info) { + return new IborFuturePosition(PositionInfo.from(info), product, longQuantity, shortQuantity); } @Override diff --git a/modules/product/src/main/java/com/opengamma/strata/product/index/IborFutureTrade.java b/modules/product/src/main/java/com/opengamma/strata/product/index/IborFutureTrade.java index ee6548feef..db7c87fae6 100644 --- a/modules/product/src/main/java/com/opengamma/strata/product/index/IborFutureTrade.java +++ b/modules/product/src/main/java/com/opengamma/strata/product/index/IborFutureTrade.java @@ -25,6 +25,7 @@ import com.opengamma.strata.basics.ReferenceData; import com.opengamma.strata.collect.ArgChecker; +import com.opengamma.strata.product.PortfolioItemInfo; import com.opengamma.strata.product.PortfolioItemSummary; import com.opengamma.strata.product.ProductType; import com.opengamma.strata.product.ResolvableTrade; @@ -101,8 +102,8 @@ private void validate() { //------------------------------------------------------------------------- @Override - public IborFutureTrade withInfo(TradeInfo info) { - return new IborFutureTrade(info, product, quantity, price); + public IborFutureTrade withInfo(PortfolioItemInfo info) { + return new IborFutureTrade(TradeInfo.from(info), product, quantity, price); } @Override diff --git a/modules/product/src/main/java/com/opengamma/strata/product/index/OvernightFuturePosition.java b/modules/product/src/main/java/com/opengamma/strata/product/index/OvernightFuturePosition.java index 9bd5ae5fee..2e4c2077fd 100644 --- a/modules/product/src/main/java/com/opengamma/strata/product/index/OvernightFuturePosition.java +++ b/modules/product/src/main/java/com/opengamma/strata/product/index/OvernightFuturePosition.java @@ -27,6 +27,7 @@ import com.opengamma.strata.basics.Resolvable; import com.opengamma.strata.basics.currency.Currency; import com.opengamma.strata.collect.ArgChecker; +import com.opengamma.strata.product.PortfolioItemInfo; import com.opengamma.strata.product.PortfolioItemSummary; import com.opengamma.strata.product.PositionInfo; import com.opengamma.strata.product.ProductType; @@ -153,8 +154,8 @@ public double getQuantity() { //------------------------------------------------------------------------- @Override - public OvernightFuturePosition withInfo(PositionInfo info) { - return new OvernightFuturePosition(info, product, longQuantity, shortQuantity); + public OvernightFuturePosition withInfo(PortfolioItemInfo info) { + return new OvernightFuturePosition(PositionInfo.from(info), product, longQuantity, shortQuantity); } @Override diff --git a/modules/product/src/main/java/com/opengamma/strata/product/index/OvernightFutureTrade.java b/modules/product/src/main/java/com/opengamma/strata/product/index/OvernightFutureTrade.java index 6cb9c26627..fceaa94f0f 100644 --- a/modules/product/src/main/java/com/opengamma/strata/product/index/OvernightFutureTrade.java +++ b/modules/product/src/main/java/com/opengamma/strata/product/index/OvernightFutureTrade.java @@ -25,6 +25,7 @@ import com.opengamma.strata.basics.ReferenceData; import com.opengamma.strata.collect.ArgChecker; +import com.opengamma.strata.product.PortfolioItemInfo; import com.opengamma.strata.product.PortfolioItemSummary; import com.opengamma.strata.product.ProductType; import com.opengamma.strata.product.ResolvableTrade; @@ -101,8 +102,8 @@ private void validate() { //------------------------------------------------------------------------- @Override - public OvernightFutureTrade withInfo(TradeInfo info) { - return new OvernightFutureTrade(info, product, quantity, price); + public OvernightFutureTrade withInfo(PortfolioItemInfo info) { + return new OvernightFutureTrade(TradeInfo.from(info), product, quantity, price); } @Override diff --git a/modules/product/src/main/java/com/opengamma/strata/product/payment/BulletPaymentTrade.java b/modules/product/src/main/java/com/opengamma/strata/product/payment/BulletPaymentTrade.java index 78bcdc4b33..31b9ff1aa6 100644 --- a/modules/product/src/main/java/com/opengamma/strata/product/payment/BulletPaymentTrade.java +++ b/modules/product/src/main/java/com/opengamma/strata/product/payment/BulletPaymentTrade.java @@ -23,6 +23,7 @@ import org.joda.beans.impl.direct.DirectMetaPropertyMap; import com.opengamma.strata.basics.ReferenceData; +import com.opengamma.strata.product.PortfolioItemInfo; import com.opengamma.strata.product.PortfolioItemSummary; import com.opengamma.strata.product.ProductTrade; import com.opengamma.strata.product.ProductType; @@ -74,8 +75,8 @@ private static void applyDefaults(Builder builder) { //------------------------------------------------------------------------- @Override - public BulletPaymentTrade withInfo(TradeInfo info) { - return new BulletPaymentTrade(info, product); + public BulletPaymentTrade withInfo(PortfolioItemInfo info) { + return new BulletPaymentTrade(TradeInfo.from(info), product); } //------------------------------------------------------------------------- diff --git a/modules/product/src/main/java/com/opengamma/strata/product/swap/SwapTrade.java b/modules/product/src/main/java/com/opengamma/strata/product/swap/SwapTrade.java index d76b5abd7a..fdc4edf521 100644 --- a/modules/product/src/main/java/com/opengamma/strata/product/swap/SwapTrade.java +++ b/modules/product/src/main/java/com/opengamma/strata/product/swap/SwapTrade.java @@ -23,6 +23,7 @@ import org.joda.beans.impl.direct.DirectMetaPropertyMap; import com.opengamma.strata.basics.ReferenceData; +import com.opengamma.strata.product.PortfolioItemInfo; import com.opengamma.strata.product.PortfolioItemSummary; import com.opengamma.strata.product.PortfolioItemType; import com.opengamma.strata.product.ProductTrade; @@ -76,8 +77,8 @@ private static void applyDefaults(Builder builder) { //------------------------------------------------------------------------- @Override - public SwapTrade withInfo(TradeInfo info) { - return new SwapTrade(info, product); + public SwapTrade withInfo(PortfolioItemInfo info) { + return new SwapTrade(TradeInfo.from(info), product); } //------------------------------------------------------------------------- diff --git a/modules/product/src/main/java/com/opengamma/strata/product/swaption/SwaptionTrade.java b/modules/product/src/main/java/com/opengamma/strata/product/swaption/SwaptionTrade.java index 9706eeac99..5d55dc68ed 100644 --- a/modules/product/src/main/java/com/opengamma/strata/product/swaption/SwaptionTrade.java +++ b/modules/product/src/main/java/com/opengamma/strata/product/swaption/SwaptionTrade.java @@ -25,6 +25,7 @@ import com.opengamma.strata.basics.ReferenceData; import com.opengamma.strata.basics.currency.AdjustablePayment; import com.opengamma.strata.basics.currency.Payment; +import com.opengamma.strata.product.PortfolioItemInfo; import com.opengamma.strata.product.PortfolioItemSummary; import com.opengamma.strata.product.ProductTrade; import com.opengamma.strata.product.ProductType; @@ -99,8 +100,8 @@ private static void applyDefaults(Builder builder) { //------------------------------------------------------------------------- @Override - public SwaptionTrade withInfo(TradeInfo info) { - return new SwaptionTrade(info, product, premium); + public SwaptionTrade withInfo(PortfolioItemInfo info) { + return new SwaptionTrade(TradeInfo.from(info), product, premium); } //------------------------------------------------------------------------- diff --git a/modules/product/src/test/java/com/opengamma/strata/product/PositionTest.java b/modules/product/src/test/java/com/opengamma/strata/product/PositionTest.java index c0051be138..c0e8525a12 100644 --- a/modules/product/src/test/java/com/opengamma/strata/product/PositionTest.java +++ b/modules/product/src/test/java/com/opengamma/strata/product/PositionTest.java @@ -62,7 +62,7 @@ public PositionInfo getInfo() { } @Override - public Position withInfo(PositionInfo info) { + public Position withInfo(PortfolioItemInfo info) { return this; } diff --git a/modules/product/src/test/java/com/opengamma/strata/product/TradeTest.java b/modules/product/src/test/java/com/opengamma/strata/product/TradeTest.java index 401bb180c5..08c3eee04c 100644 --- a/modules/product/src/test/java/com/opengamma/strata/product/TradeTest.java +++ b/modules/product/src/test/java/com/opengamma/strata/product/TradeTest.java @@ -48,7 +48,7 @@ public TradeInfo getInfo() { } @Override - public Trade withInfo(TradeInfo info) { + public Trade withInfo(PortfolioItemInfo info) { return this; } } diff --git a/modules/product/src/test/java/com/opengamma/strata/product/common/SummarizerUtilsTest.java b/modules/product/src/test/java/com/opengamma/strata/product/common/SummarizerUtilsTest.java index 66b90bb880..1bbb0a3f3c 100644 --- a/modules/product/src/test/java/com/opengamma/strata/product/common/SummarizerUtilsTest.java +++ b/modules/product/src/test/java/com/opengamma/strata/product/common/SummarizerUtilsTest.java @@ -19,6 +19,7 @@ import com.opengamma.strata.basics.StandardId; import com.opengamma.strata.basics.currency.Currency; import com.opengamma.strata.basics.currency.CurrencyAmount; +import com.opengamma.strata.product.PortfolioItemInfo; import com.opengamma.strata.product.PortfolioItemSummary; import com.opengamma.strata.product.PortfolioItemType; import com.opengamma.strata.product.PositionInfo; @@ -124,7 +125,7 @@ public TradeInfo getInfo() { } @Override - public Trade withInfo(TradeInfo info) { + public Trade withInfo(PortfolioItemInfo info) { return this; } }; diff --git a/modules/product/src/test/java/com/opengamma/strata/product/etd/EtdPositionTest.java b/modules/product/src/test/java/com/opengamma/strata/product/etd/EtdPositionTest.java index 1ef5be3b3c..8c0e1265bc 100644 --- a/modules/product/src/test/java/com/opengamma/strata/product/etd/EtdPositionTest.java +++ b/modules/product/src/test/java/com/opengamma/strata/product/etd/EtdPositionTest.java @@ -10,6 +10,7 @@ import org.junit.jupiter.api.Test; import com.opengamma.strata.basics.StandardId; +import com.opengamma.strata.product.PortfolioItemInfo; import com.opengamma.strata.product.PositionInfo; /** @@ -57,7 +58,7 @@ public double getShortQuantity() { } @Override - public EtdPosition withInfo(PositionInfo info) { + public EtdPosition withInfo(PortfolioItemInfo info) { return this; }