Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add PortfolioItem#withInfo #2133

Merged
merged 3 commits into from Feb 10, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
Expand Up @@ -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;
Expand Down Expand Up @@ -2002,7 +2003,7 @@ public Optional<Trade> 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();
}

Expand Down Expand Up @@ -2032,7 +2033,7 @@ public Optional<Trade> 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();
}

Expand Down
Expand Up @@ -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;
Expand Down Expand Up @@ -45,7 +46,7 @@ public TradeInfo getInfo() {
}

@Override
public Trade withInfo(TradeInfo info) {
public Trade withInfo(PortfolioItemInfo info) {
return this;
}

Expand Down
Expand Up @@ -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
Expand Down
Expand Up @@ -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
Expand Down
Expand Up @@ -43,6 +43,16 @@ public default Optional<StandardId> 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.
* <p>
Expand Down
Expand Up @@ -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.
Expand Down
Expand Up @@ -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.
*
Expand Down
Expand Up @@ -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);

}
Expand Up @@ -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.
Expand Down
Expand Up @@ -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.
Expand Down
Expand Up @@ -48,6 +48,6 @@ public interface ResolvableTrade<T extends ResolvedTrade>
* @return the instance with the specified info
*/
@Override
public abstract ResolvableTrade<T> withInfo(TradeInfo info);
public abstract ResolvableTrade<T> withInfo(PortfolioItemInfo info);

}
Expand Up @@ -40,7 +40,7 @@ public default SecurityId getSecurityId() {
* @return the instance with the specified info
*/
@Override
public abstract SecuritizedProductPosition<P> withInfo(PositionInfo info);
public abstract SecuritizedProductPosition<P> withInfo(PortfolioItemInfo info);

/**
* Returns an instance with the specified quantity.
Expand Down
Expand Up @@ -34,7 +34,7 @@ public interface SecuritizedProductTrade<P extends SecuritizedProduct>
* @return the instance with the specified info
*/
@Override
public abstract SecuritizedProductTrade<P> withInfo(TradeInfo info);
public abstract SecuritizedProductTrade<P> withInfo(PortfolioItemInfo info);

/**
* Returns an instance with the specified quantity.
Expand Down
Expand Up @@ -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
Expand Down
Expand Up @@ -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.
Expand Down
Expand Up @@ -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
Expand Down
Expand Up @@ -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);

}
Expand Up @@ -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.
*
Expand Down Expand Up @@ -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() {
Expand Down
Expand Up @@ -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;
Expand Down Expand Up @@ -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
Expand Down
Expand Up @@ -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;
Expand Down Expand Up @@ -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
Expand Down
Expand Up @@ -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;
Expand Down Expand Up @@ -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
Expand Down
Expand Up @@ -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;
Expand Down Expand Up @@ -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
Expand Down
Expand Up @@ -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;
Expand Down Expand Up @@ -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
Expand Down
Expand Up @@ -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;
Expand Down Expand Up @@ -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
Expand Down
Expand Up @@ -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;
Expand Down Expand Up @@ -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
Expand Down
Expand Up @@ -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;
Expand Down Expand Up @@ -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
Expand Down
Expand Up @@ -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;
Expand Down Expand Up @@ -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
Expand Down