@Override public CurveMetadata metadata(LocalDate valuationDate, ReferenceData refData) { return DefaultCurveMetadata.builder() .curveName(name) .xValueType(xValueType) .yValueType(yValueType) .dayCount(dayCount) .parameterMetadata(parameterMetadata) .build(); }
@Override public DefaultCurveMetadata withParameterMetadata(List<? extends ParameterMetadata> parameterMetadata) { if (parameterMetadata == null) { return this.parameterMetadata != null ? toBuilder().clearParameterMetadata().build() : this; } return toBuilder().parameterMetadata(parameterMetadata).build(); }
public void test_builder3() { DefaultCurveMetadata test = DefaultCurveMetadata.builder() .curveName(CURVE_NAME) .parameterMetadata(ImmutableList.of(ParameterMetadata.empty())) .clearParameterMetadata() .build(); assertThat(test.getCurveName()).isEqualTo(CURVE_NAME); assertThat(test.getXValueType()).isEqualTo(ValueType.UNKNOWN); assertThat(test.getYValueType()).isEqualTo(ValueType.UNKNOWN); assertThat(test.getParameterMetadata().isPresent()).isFalse(); }
public void test_of_interface() { ConstantCurve curve = ConstantCurve.of( DefaultCurveMetadata.builder() .yValueType(ValueType.RECOVERY_RATE) .curveName("recoveryRate") .build(), RECOVERY_RATE); ConstantRecoveryRates test = (ConstantRecoveryRates) RecoveryRates.of(LEGAL_ENTITY, VALUATION, curve); assertEquals(test.getLegalEntityId(), LEGAL_ENTITY); assertEquals(test.getRecoveryRate(), RECOVERY_RATE); assertEquals(test.getValuationDate(), VALUATION); assertEquals(test.recoveryRate(DATE_AFTER), RECOVERY_RATE); assertEquals(test.findData(CurveName.of("Rubbish")), Optional.empty()); assertEquals(test.getParameter(0), RECOVERY_RATE); assertEquals(test.getParameterCount(), 1); assertEquals(test.getParameterMetadata(0), ParameterMetadata.empty()); assertEquals(test.withParameter(0, 0.5), ConstantRecoveryRates.of(LEGAL_ENTITY, VALUATION, 0.5)); }
/** * Sets the day count. * <p> * This stores the day count in the additional information map using the * key {@link CurveInfoType#DAY_COUNT}. * <p> * This is stored in the additional information map using {@code Map.put} semantics, * removing the key if the day count is null. * * @param dayCount the day count, may be null * @return this, for chaining */ public DefaultCurveMetadataBuilder dayCount(DayCount dayCount) { return addInfo(CurveInfoType.DAY_COUNT, dayCount); }
/** * Sets the calibration information. * <p> * This stores the calibration information in the additional information map * using the key {@link CurveInfoType#JACOBIAN}. * <p> * This is stored in the additional information map using {@code Map.put} semantics, * removing the key if the jacobian is null. * * @param jacobian the calibration information, may be null * @return this, for chaining */ public DefaultCurveMetadataBuilder jacobian(JacobianCalibrationMatrix jacobian) { return addInfo(CurveInfoType.JACOBIAN, jacobian); }
@Override public CurveMetadata metadata(LocalDate valuationDate, ReferenceData refData) { List<DatedParameterMetadata> nodeMetadata = nodes.stream() .map(node -> node.metadata(valuationDate, refData)) .collect(toImmutableList()); return DefaultCurveMetadata.builder() .curveName(name) .xValueType(xValueType) .yValueType(yValueType) .dayCount(dayCount) .parameterMetadata(nodeMetadata) .build(); }
/** * Creates curve metadata for a curve providing monthly prices, typically used in inflation. * <p> * The x-values represent months relative to an unspecified base month. * * @param name the curve name * @param parameterMetadata the parameter metadata * @return the curve metadata */ public static CurveMetadata prices(CurveName name, List<? extends ParameterMetadata> parameterMetadata) { ArgChecker.notNull(name, "name"); return DefaultCurveMetadata.builder() .curveName(name) .xValueType(ValueType.MONTHS) .yValueType(ValueType.PRICE_INDEX) .parameterMetadata(parameterMetadata) .build(); }
/** * Creates curve metadata for a curve providing monthly prices, typically used in inflation. * <p> * The x-values represent months relative to an unspecified base month. * * @param name the curve name * @return the curve metadata */ public static CurveMetadata prices(CurveName name) { ArgChecker.notNull(name, "name"); return DefaultCurveMetadata.builder() .curveName(name) .xValueType(ValueType.MONTHS) .yValueType(ValueType.PRICE_INDEX) .build(); }
/** * Creates curve metadata for a curve providing zero rates. * <p> * The x-values represent year fractions relative to an unspecified base date * as defined by the specified day count. * * @param name the curve name * @param dayCount the day count * @param parameterMetadata the parameter metadata * @return the curve metadata */ public static CurveMetadata zeroRates( CurveName name, DayCount dayCount, List<? extends ParameterMetadata> parameterMetadata) { ArgChecker.notNull(name, "name"); ArgChecker.notNull(dayCount, "dayCount"); return DefaultCurveMetadata.builder() .curveName(name) .xValueType(ValueType.YEAR_FRACTION) .yValueType(ValueType.ZERO_RATE) .dayCount(dayCount) .parameterMetadata(parameterMetadata) .build(); }
/** * Creates curve metadata for a curve providing recovery rates. * <p> * The x-values represent year fractions relative to an unspecified base date * as defined by the specified day count. * * @param name the curve name * @param dayCount the day count * @param parameterMetadata the parameter metadata * @return the curve metadata */ public static CurveMetadata recoveryRates( CurveName name, DayCount dayCount, List<? extends ParameterMetadata> parameterMetadata) { ArgChecker.notNull(name, "name"); ArgChecker.notNull(dayCount, "dayCount"); return DefaultCurveMetadata.builder() .curveName(name) .xValueType(ValueType.YEAR_FRACTION) .yValueType(ValueType.RECOVERY_RATE) .dayCount(dayCount) .parameterMetadata(parameterMetadata) .build(); }
/** * Creates curve metadata for a curve providing Black volatility by expiry. * <p> * The x-values represent year fractions relative to an unspecified base date * as defined by the specified day count. * * @param name the curve name * @param dayCount the day count * @param parameterMetadata the parameter metadata * @return the curve metadata */ public static CurveMetadata blackVolatilityByExpiry( CurveName name, DayCount dayCount, List<? extends ParameterMetadata> parameterMetadata) { ArgChecker.notNull(name, "name"); ArgChecker.notNull(dayCount, "dayCount"); return DefaultCurveMetadata.builder() .curveName(name) .xValueType(ValueType.YEAR_FRACTION) .yValueType(ValueType.BLACK_VOLATILITY) .dayCount(dayCount) .parameterMetadata(parameterMetadata) .build(); }
/** * Creates curve metadata for a curve providing forward rates. * <p> * The x-values represent year fractions relative to an unspecified base date * as defined by the specified day count. * * @param name the curve name * @param dayCount the day count * @return the curve metadata */ public static CurveMetadata forwardRates(CurveName name, DayCount dayCount) { ArgChecker.notNull(name, "name"); ArgChecker.notNull(dayCount, "dayCount"); return DefaultCurveMetadata.builder() .curveName(name) .xValueType(ValueType.YEAR_FRACTION) .yValueType(ValueType.FORWARD_RATE) .dayCount(dayCount) .build(); }
/** * Creates curve metadata for a curve providing Black volatility by expiry. * <p> * The x-values represent year fractions relative to an unspecified base date * as defined by the specified day count. * * @param name the curve name * @param dayCount the day count * @return the curve metadata */ public static CurveMetadata blackVolatilityByExpiry(CurveName name, DayCount dayCount) { ArgChecker.notNull(name, "name"); ArgChecker.notNull(dayCount, "dayCount"); return DefaultCurveMetadata.builder() .curveName(name) .xValueType(ValueType.YEAR_FRACTION) .yValueType(ValueType.BLACK_VOLATILITY) .dayCount(dayCount) .build(); }
/** * Creates curve metadata for a curve providing forward rates. * <p> * The x-values represent year fractions relative to an unspecified base date * as defined by the specified day count. * * @param name the curve name * @param dayCount the day count * @param parameterMetadata the parameter metadata * @return the curve metadata */ public static CurveMetadata forwardRates( CurveName name, DayCount dayCount, List<? extends ParameterMetadata> parameterMetadata) { ArgChecker.notNull(name, "name"); ArgChecker.notNull(dayCount, "dayCount"); return DefaultCurveMetadata.builder() .curveName(name) .xValueType(ValueType.YEAR_FRACTION) .yValueType(ValueType.FORWARD_RATE) .dayCount(dayCount) .parameterMetadata(parameterMetadata) .build(); }
/** * Creates curve metadata for a curve providing zero rates. * <p> * The x-values represent year fractions relative to an unspecified base date * as defined by the specified day count. * * @param name the curve name * @param dayCount the day count * @return the curve metadata */ public static CurveMetadata zeroRates(CurveName name, DayCount dayCount) { ArgChecker.notNull(name, "name"); ArgChecker.notNull(dayCount, "dayCount"); return DefaultCurveMetadata.builder() .curveName(name) .xValueType(ValueType.YEAR_FRACTION) .yValueType(ValueType.ZERO_RATE) .dayCount(dayCount) .build(); }
/** * Creates curve metadata for a curve providing discount factors. * <p> * The x-values represent year fractions relative to an unspecified base date * as defined by the specified day count. * * @param name the curve name * @param dayCount the day count * @return the curve metadata */ public static CurveMetadata discountFactors(CurveName name, DayCount dayCount) { ArgChecker.notNull(name, "name"); ArgChecker.notNull(dayCount, "dayCount"); return DefaultCurveMetadata.builder() .curveName(name) .xValueType(ValueType.YEAR_FRACTION) .yValueType(ValueType.DISCOUNT_FACTOR) .dayCount(dayCount) .build(); }
/** * Creates curve metadata for a curve providing recovery rates. * <p> * The x-values represent year fractions relative to an unspecified base date * as defined by the specified day count. * * @param name the curve name * @param dayCount the day count * @return the curve metadata */ public static CurveMetadata recoveryRates(CurveName name, DayCount dayCount) { ArgChecker.notNull(name, "name"); ArgChecker.notNull(dayCount, "dayCount"); return DefaultCurveMetadata.builder() .curveName(name) .xValueType(ValueType.YEAR_FRACTION) .yValueType(ValueType.RECOVERY_RATE) .dayCount(dayCount) .build(); }
/** * Creates curve metadata for a curve providing discount factors. * <p> * The x-values represent year fractions relative to an unspecified base date * as defined by the specified day count. * * @param name the curve name * @param dayCount the day count * @param parameterMetadata the parameter metadata * @return the curve metadata */ public static CurveMetadata discountFactors( CurveName name, DayCount dayCount, List<? extends ParameterMetadata> parameterMetadata) { ArgChecker.notNull(name, "name"); ArgChecker.notNull(dayCount, "dayCount"); return DefaultCurveMetadata.builder() .curveName(name) .xValueType(ValueType.YEAR_FRACTION) .yValueType(ValueType.DISCOUNT_FACTOR) .dayCount(dayCount) .parameterMetadata(parameterMetadata) .build(); }