@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); }
@Override public Dsf createProduct(ReferenceData refData) { LocalDate deliveryDate = underlyingSwap.getStartDate().getUnadjusted(); return new Dsf(getSecurityId(), notional, lastTradeDate, deliveryDate, underlyingSwap); }
buf.append(SummarizerUtils.datePeriod(getStartDate().getUnadjusted(), getEndDate().getUnadjusted())); buf.append(' '); if (getLegs().size() == 2 && buf.append(SummarizerUtils.dateRange(getStartDate().getUnadjusted(), getEndDate().getUnadjusted())); return buf.toString();
@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_getStartDate() { 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).getStartDate(), AdjustableDate.of(date(2015, 6, 29))); assertEquals(Swap.of(leg2).getStartDate(), AdjustableDate.of(date(2015, 6, 30))); assertEquals(Swap.of(leg1, leg2).getStartDate(), AdjustableDate.of(date(2015, 6, 29))); assertEquals(Swap.of(leg2, leg1).getStartDate(), AdjustableDate.of(date(2015, 6, 29))); }
@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"); }