/** * Sets the surface name. * * @param surfaceName the surface name * @return this, for chaining */ public DefaultSurfaceMetadataBuilder surfaceName(String surfaceName) { this.surfaceName = SurfaceName.of(surfaceName); return this; }
/** * Obtains an instance from the specified name. * <p> * Surface names may contain any character, but must not be empty. * * @param name the name of the surface * @return a surface with the specified name */ @FromString public static SurfaceName of(String name) { return new SurfaceName(name); }
@Override public SwaptionVolatilitiesName getName() { return SwaptionVolatilitiesName.of(surface.getName().getName()); }
MarketDataName<?> name = s.getMarketDataName(); if (name instanceof SurfaceName) { if (volatilities.getParameters().getAlphaSurface().getName().equals(name) && alphaInfo.isPresent()) { updateSensitivity(s, sensitivityToRawData.get(0), sensitivityRawArray); metadataResult = s.getParameterMetadata(); if (volatilities.getParameters().getBetaSurface().getName().equals(name) && betaInfo.isPresent()) { updateSensitivity(s, sensitivityToRawData.get(1), sensitivityRawArray); metadataResult = s.getParameterMetadata(); if (volatilities.getParameters().getRhoSurface().getName().equals(name) && rhoInfo.isPresent()) { updateSensitivity(s, sensitivityToRawData.get(2), sensitivityRawArray); metadataResult = s.getParameterMetadata(); if (volatilities.getParameters().getNuSurface().getName().equals(name) && nuInfo.isPresent()) { updateSensitivity(s, sensitivityToRawData.get(3), sensitivityRawArray); metadataResult = s.getParameterMetadata(); return CurrencyParameterSensitivity.of(SurfaceName.of("RawDataParallelSensitivity"), metadataResult, ccy, sensitivityRaw);
@Override public <T> Optional<T> findData(MarketDataName<T> name) { if (surface.getName().equals(name)) { return Optional.of(name.getMarketDataType().cast(surface)); } return Optional.empty(); }
public void test_builder1() { DefaultSurfaceMetadata test = DefaultSurfaceMetadata.builder() .surfaceName(SURFACE_NAME.toString()) .xValueType(ValueType.YEAR_FRACTION) .yValueType(ValueType.DISCOUNT_FACTOR) .zValueType(ValueType.ZERO_RATE) .dayCount(ACT_365F) .addInfo(DESCRIPTION, "Hello") .parameterMetadata(ImmutableList.of(ParameterMetadata.empty())) .build(); assertThat(test.getSurfaceName()).isEqualTo(SURFACE_NAME); assertThat(test.getXValueType()).isEqualTo(ValueType.YEAR_FRACTION); assertThat(test.getYValueType()).isEqualTo(ValueType.DISCOUNT_FACTOR); assertThat(test.getZValueType()).isEqualTo(ValueType.ZERO_RATE); assertThat(test.getInfo(SurfaceInfoType.DAY_COUNT)).isEqualTo(ACT_365F); assertThat(test.findInfo(SurfaceInfoType.DAY_COUNT)).isEqualTo(Optional.of(ACT_365F)); assertThat(test.getInfo(DESCRIPTION)).isEqualTo("Hello"); assertThat(test.findInfo(DESCRIPTION)).isEqualTo(Optional.of("Hello")); assertThat(test.findInfo(SurfaceInfoType.of("Rubbish"))).isEqualTo(Optional.empty()); assertThat(test.getParameterMetadata().isPresent()).isTrue(); assertThat(test.getParameterMetadata().get()).containsExactly(ParameterMetadata.empty()); }
@Override public IborFutureOptionVolatilitiesName getName() { return IborFutureOptionVolatilitiesName.of(surface.getName().getName()); }
@Override public <T> Optional<T> findData(MarketDataName<T> name) { if (surface.getName().equals(name)) { return Optional.of(name.getMarketDataType().cast(surface)); } return Optional.empty(); }
/** * Creates a constant surface with a specific value. * * @param name the surface name * @param zValue the constant z-value * @return the surface */ public static ConstantSurface of(String name, double zValue) { return of(SurfaceName.of(name), zValue); }
@Override public IborCapletFloorletVolatilitiesName getName() { return IborCapletFloorletVolatilitiesName.of(surface.getName().getName()); }
@Override public <T> Optional<T> findData(MarketDataName<T> name) { if (surface.getName().equals(name)) { return Optional.of(name.getMarketDataType().cast(surface)); } return Optional.empty(); }
/** * Creates the metadata. * <p> * No information will be available for the x-values, y-values, z-values or parameters. * * @param name the surface name * @return the metadata */ public static DefaultSurfaceMetadata of(String name) { return of(SurfaceName.of(name)); }
@Override public BondFutureVolatilitiesName getName() { return BondFutureVolatilitiesName.of(surface.getName().getName()); }
@Override public <T> Optional<T> findData(MarketDataName<T> name) { if (surface.getName().equals(name)) { return Optional.of(name.getMarketDataType().cast(surface)); } return Optional.empty(); }
/** * Creates metadata for a surface providing Black expiry-log moneyness volatility. * <p> * The x-values represent time to expiry year fractions as defined by the specified day count. * The y-values represent log-moneyness * The z-values represent Black volatility. * * @param name the surface name * @param dayCount the day count * @return the surface metadata */ public static SurfaceMetadata blackVolatilityByExpiryLogMoneyness(String name, DayCount dayCount) { return blackVolatilityByExpiryLogMoneyness(SurfaceName.of(name), dayCount); }
@Override public IborCapletFloorletVolatilitiesName getName() { return IborCapletFloorletVolatilitiesName.of(surface.getName().getName()); }
@Override public <T> Optional<T> findData(MarketDataName<T> name) { if (surface.getName().equals(name)) { return Optional.of(name.getMarketDataType().cast(surface)); } return Optional.empty(); }
/** * Creates metadata for a surface providing Normal expiry-tenor volatility. * <p> * The x-values represent time to expiry year fractions as defined by the specified day count. * The y-values represent tenor year fractions. * The z-values represent Normal volatility. * * @param name the surface name * @param dayCount the day count * @return the surface metadata */ public static SurfaceMetadata normalVolatilityByExpiryTenor(String name, DayCount dayCount) { return normalVolatilityByExpiryTenor(SurfaceName.of(name), dayCount); }
@Override public SwaptionVolatilitiesName getName() { return SwaptionVolatilitiesName.of(surface.getName().getName()); }