/** * Restricted copy constructor. * @param beanToCopy the bean to copy from, not null */ private Builder(Swap beanToCopy) { this.legs = beanToCopy.getLegs(); }
@Override public ResolvedDsf resolve(ReferenceData refData) { ResolvedSwap resolvedSwap = underlyingSwap.resolve(refData); return new ResolvedDsf(securityId, notional, deliveryDate, lastTradeDate, resolvedSwap); }
@Override protected Object propertyGet(Bean bean, String propertyName, boolean quiet) { switch (propertyName.hashCode()) { case 3317797: // legs return ((Swap) bean).getLegs(); case -2129778896: // startDate return ((Swap) bean).getStartDate(); case -1607727319: // endDate return ((Swap) bean).getEndDate(); } return super.propertyGet(bean, propertyName, quiet); }
class swap { int n1; int n2; int n3; void valueSwap() { n3 = n1; n1 = n2; n2 = n3; } public static void main(String[] arguments) { Swap trial = new Swap(); trial.n1 = 2; trial.n2 = 3; System.out.println("trial.n1 = " + trial.n1); System.out.println("trial.n2 = " + trial.n2); trial.valueSwap(); System.out.println("trial.n1 = " + trial.n1); System.out.println("trial.n2 = " + trial.n2); } }
@Override public PortfolioItemSummary summarize() { return PortfolioItemSummary.of( getId().orElse(null), PortfolioItemType.TRADE, ProductType.SWAP, product.allCurrencies(), product.summaryDescription()); }
public void test_getLegs_SwapLegType() { assertEquals(Swap.of(MOCK_GBP1, MOCK_USD1).getLegs(FIXED), ImmutableList.of(MOCK_GBP1)); assertEquals(Swap.of(MOCK_GBP1, MOCK_USD1).getLegs(IBOR), ImmutableList.of(MOCK_USD1)); assertEquals(Swap.of(MOCK_GBP1, MOCK_USD1).getLegs(OVERNIGHT), ImmutableList.of()); assertEquals(Swap.of(MOCK_GBP1, MOCK_USD1).getLegs(OTHER), ImmutableList.of()); }
buf.append(SummarizerUtils.datePeriod(getStartDate().getUnadjusted(), getEndDate().getUnadjusted())); buf.append(' '); if (getLegs().size() == 2 && getPayLeg().isPresent() && getReceiveLeg().isPresent() && getLegs().stream().allMatch(leg -> leg instanceof RateCalculationSwapLeg)) { SwapLeg payLeg = getPayLeg().get(); SwapLeg recLeg = getReceiveLeg().get(); String payNotional = notional(payLeg); String recNotional = notional(recLeg); if (payNotional.equals(recNotional)) { buf.append(recNotional); buf.append(" Rec "); buf.append(legSummary(recLeg)); buf.append(" / Pay "); buf.append(legSummary(payLeg)); } else { buf.append("Rec "); buf.append(legSummary(recLeg)); buf.append(' '); buf.append(recNotional); buf.append(" / Pay "); buf.append(legSummary(payLeg)); buf.append(' '); buf.append(payNotional); buf.append(getLegs().stream() .map(leg -> (SummarizerUtils.payReceive(leg.getPayReceive()) + " " + legSummary(leg) + " " + notional(leg)).trim())
public void test_getLeg_PayReceive() { assertEquals(Swap.of(MOCK_GBP1, MOCK_USD1).getLeg(PAY), Optional.of(MOCK_GBP1)); assertEquals(Swap.of(MOCK_GBP1, MOCK_USD1).getLeg(RECEIVE), Optional.of(MOCK_USD1)); assertEquals(Swap.of(MOCK_GBP1).getLeg(PAY), Optional.of(MOCK_GBP1)); assertEquals(Swap.of(MOCK_USD1).getLeg(PAY), Optional.empty()); assertEquals(Swap.of(MOCK_GBP1).getLeg(RECEIVE), Optional.empty()); assertEquals(Swap.of(MOCK_USD1).getLeg(RECEIVE), Optional.of(MOCK_USD1)); }
@ImmutableValidator private void validate() { ArgChecker.inOrderOrEqual( expiryDate.getUnadjusted(), underlying.getStartDate().getUnadjusted(), "expiryDate", "underlying.startDate.unadjusted"); ArgChecker.isTrue(!underlying.isCrossCurrency(), "Underlying swap must not be cross-currency"); ArgChecker.isTrue(underlying.getLegs(SwapLegType.FIXED).size() == 1, "Underlying swap must have one fixed leg"); ArgChecker.isTrue(underlying.getLegs(SwapLegType.IBOR).size() == 1, "Underlying swap must have one Ibor leg"); ArgChecker.isTrue(underlying.allIndices().size() == 1, "Underlying swap must have one index"); ArgChecker.isTrue(underlying.allIndices().iterator().next() instanceof IborIndex, "Underlying swap must have one Ibor index"); }
public void test_builder_list() { Swap test = Swap.builder() .legs(ImmutableList.of(MOCK_GBP1, MOCK_USD1)) .build(); assertEquals(test.getLegs(), ImmutableList.of(MOCK_GBP1, MOCK_USD1)); assertEquals(test.isCrossCurrency(), true); assertEquals(test.allPaymentCurrencies(), ImmutableSet.of(GBP, USD)); assertEquals(test.allCurrencies(), ImmutableSet.of(GBP, EUR, USD)); }
public void test_parSpread_brl_swap() { DiscountingSwapLegPricer pricerLeg = DiscountingSwapLegPricer.DEFAULT; DiscountingSwapProductPricer pricerSwap = new DiscountingSwapProductPricer(pricerLeg); double parSpreadComputed = pricerSwap.parSpread(BRL_SWAP, BRL_DSCON); RateCalculationSwapLeg fixedLeg = BRL_FIXED_LEG_CONV.toLeg(START_DATE, END_DATE, PAY, NOTIONAL, COUPON + parSpreadComputed); ResolvedSwap swapWithParSpread = Swap.of(BRL_FLOATING_LEG, fixedLeg).resolve(REF_DATA); double pvWithParSpread = pricerSwap.presentValue(swapWithParSpread, BRL_DSCON).getAmount(BRL).getAmount(); assertEquals(pvWithParSpread, 0.0d, NOTIONAL * TOLERANCE_RATE); }
.build()) .build(); Swap swap1 = Swap.of(fixedLeg10, SWAP.getLeg(PAY).get()); Swap swap2 = Swap.of(SWAP.getLeg(RECEIVE).get(), iborLeg500); assertThrowsIllegalArg(() -> ResolvedDsf.builder() .securityId(PRODUCT.getSecurityId()) .deliveryDate(DELIVERY_DATE) .lastTradeDate(LAST_TRADE_DATE) .underlyingSwap(swap1.resolve(REF_DATA)) .build()); assertThrowsIllegalArg(() -> ResolvedDsf.builder() .deliveryDate(DELIVERY_DATE) .lastTradeDate(LAST_TRADE_DATE) .underlyingSwap(swap2.resolve(REF_DATA)) .build());
@ImmutableValidator private void validate() { ArgChecker.inOrderOrEqual( deliveryDate, underlyingSwap.getStartDate().getUnadjusted(), "deliveryDate", "underlyingSwap.startDate.unadjusted"); ArgChecker.isFalse(underlyingSwap.isCrossCurrency(), "Underlying swap must not be cross currency"); for (SwapLeg swapLeg : underlyingSwap.getLegs()) { if (swapLeg.getType().equals(SwapLegType.FIXED)) { ArgChecker.isTrue(swapLeg.getPayReceive().isReceive(), "Underlying swap must receive the fixed leg"); } if (swapLeg instanceof RateCalculationSwapLeg) { RateCalculationSwapLeg leg = (RateCalculationSwapLeg) swapLeg; ArgChecker.isTrue(Math.abs(leg.getNotionalSchedule().getAmount().getInitialValue()) == 1d, "Underlying swap must have a notional of 1"); } } ArgChecker.inOrderOrEqual(lastTradeDate, deliveryDate, "lastTradeDate", "deliveryDate"); }
public void test_getEndDate() { SwapLeg leg1 = MockSwapLeg.of(FIXED, PAY, date(2015, 6, 29), date(2017, 6, 30), Currency.USD); SwapLeg leg2 = MockSwapLeg.of(FIXED, RECEIVE, date(2015, 6, 30), date(2017, 6, 29), Currency.USD); assertEquals(Swap.of(leg1).getEndDate(), AdjustableDate.of(date(2017, 6, 30))); assertEquals(Swap.of(leg2).getEndDate(), AdjustableDate.of(date(2017, 6, 29))); assertEquals(Swap.of(leg1, leg2).getEndDate(), AdjustableDate.of(date(2017, 6, 30))); assertEquals(Swap.of(leg2, leg1).getEndDate(), AdjustableDate.of(date(2017, 6, 30))); }
public void test_isCrossCurrency() { assertEquals(Swap.of(MOCK_GBP1, MOCK_USD1).isCrossCurrency(), true); assertEquals(Swap.of(MOCK_GBP1, MOCK_GBP2, MOCK_USD1).isCrossCurrency(), true); assertEquals(Swap.of(MOCK_GBP1, MOCK_GBP2).isCrossCurrency(), false); assertEquals(Swap.of(MOCK_GBP1).isCrossCurrency(), false); }
public void test_getReceiveLeg() { assertEquals(Swap.of(MOCK_GBP1, MOCK_USD1).getReceiveLeg(), Optional.of(MOCK_USD1)); assertEquals(Swap.of(MOCK_GBP1).getReceiveLeg(), Optional.empty()); assertEquals(Swap.of(MOCK_USD1).getReceiveLeg(), Optional.of(MOCK_USD1)); }
public void test_allIndices() { Swap test = Swap.of(MOCK_GBP1, MOCK_USD1); assertEquals(test.allIndices(), ImmutableSet.of(IborIndices.GBP_LIBOR_3M, FxIndices.EUR_GBP_ECB, OvernightIndices.EUR_EONIA)); }
public void test_allCurrencies() { Swap test = Swap.of(MOCK_GBP1, MOCK_USD1); assertEquals(test.allCurrencies(), ImmutableSet.of(GBP, USD, EUR)); }