@Override public FloatingRateName normalized() { if (type.isIbor() && indexName.endsWith("-")) { return FloatingRateName.of(indexName.substring(0, indexName.length() - 1)); } return FloatingRateName.of(indexName); }
public void test_isIbor() { assertEquals(FloatingRateType.IBOR.isIbor(), true); assertEquals(FloatingRateType.OVERNIGHT_AVERAGED.isIbor(), false); assertEquals(FloatingRateType.OVERNIGHT_COMPOUNDED.isIbor(), false); assertEquals(FloatingRateType.PRICE.isIbor(), false); assertEquals(FloatingRateType.OTHER.isIbor(), false); }
@Override public Set<Tenor> getTenors() { if (!type.isIbor()) { return ImmutableSet.of(); } return IborIndex.extendedEnum().lookupAll().values().stream() .filter(index -> index.getName().startsWith(indexName)) .filter(index -> index.isActive()) .map(index -> index.getTenor()) .sorted() .collect(toImmutableSet()); }
@Override public IborIndex toIborIndex(Tenor tenor) { if (!type.isIbor()) { throw new IllegalStateException("Incorrect index type, expected Ibor: " + externalName); } return IborIndex.of(indexName + tenor.normalized().toString()); }