/** * Restricted copy constructor. * @param beanToCopy the bean to copy from, not null */ private Builder(RatesCurveGroup beanToCopy) { this.name = beanToCopy.getName(); this.discountCurves = beanToCopy.getDiscountCurves(); this.forwardCurves = beanToCopy.getForwardCurves(); }
@Override protected Object propertyGet(Bean bean, String propertyName, boolean quiet) { switch (propertyName.hashCode()) { case 3373707: // name return ((RatesCurveGroup) bean).getName(); case -624113147: // discountCurves return ((RatesCurveGroup) bean).getDiscountCurves(); case -850086775: // forwardCurves return ((RatesCurveGroup) bean).getForwardCurves(); } return super.propertyGet(bean, propertyName, quiet); }
private static void writeCurveGroup(CsvOutput csv, RatesCurveGroup group) { String groupName = group.getName().getName(); Map<Currency, Curve> discountingCurves = group.getDiscountCurves(); for (Entry<Currency, Curve> entry : discountingCurves.entrySet()) { List<String> line = new ArrayList<>(4); line.add(groupName); line.add(DISCOUNT); line.add(entry.getKey().toString()); line.add(entry.getValue().getName().getName()); csv.writeLine(line); } Map<Index, Curve> forwardCurves = group.getForwardCurves(); for (Entry<Index, Curve> entry : forwardCurves.entrySet()) { List<String> line = new ArrayList<>(4); line.add(groupName); line.add(FORWARD); line.add(entry.getKey().toString()); line.add(entry.getValue().getName().getName()); csv.writeLine(line); } }
/** * Writes the curve nodes in a CSV format to an appendable. * * @param underlying the underlying appendable destination * @param valuationDate the valuation date * @param group the curve group */ public static void writeCurveNodes(Appendable underlying, LocalDate valuationDate, RatesCurveGroup group) { CsvOutput csv = CsvOutput.standard(underlying); // header csv.writeLine(HEADERS_NODES); // rows String valuationDateStr = valuationDate.toString(); Map<Currency, Curve> discountingCurves = group.getDiscountCurves(); Set<CurveName> names = new HashSet<>(); for (Entry<Currency, Curve> entry : discountingCurves.entrySet()) { Curve curve = entry.getValue(); nodeLines(valuationDateStr, curve, csv); names.add(curve.getName()); } Map<Index, Curve> forwardCurves = group.getForwardCurves(); for (Entry<Index, Curve> entry : forwardCurves.entrySet()) { Curve curve = entry.getValue(); if (!names.contains(curve.getName())) { nodeLines(valuationDateStr, curve, csv); names.add(curve.getName()); } } }
/** * Writes the curve settings in a CSV format to an appendable. * * @param underlying the underlying appendable destination * @param group the curve group */ public static void writeCurveSettings(Appendable underlying, RatesCurveGroup group) { CsvOutput csv = CsvOutput.standard(underlying); // header csv.writeLine(HEADERS_SETTINGS); // rows Map<Currency, Curve> discountingCurves = group.getDiscountCurves(); Set<CurveName> names = new HashSet<>(); for (Entry<Currency, Curve> entry : discountingCurves.entrySet()) { Curve curve = entry.getValue(); csv.writeLine(curveSettings(curve)); names.add(curve.getName()); } Map<Index, Curve> forwardCurves = group.getForwardCurves(); for (Entry<Index, Curve> entry : forwardCurves.entrySet()) { Curve curve = entry.getValue(); if (!names.contains(curve.getName())) { csv.writeLine(curveSettings(curve)); names.add(curve.getName()); } } }
public void test_of() { RatesCurveGroup test = RatesCurveGroup.of(NAME, DISCOUNT_CURVES, IBOR_CURVES); assertThat(test.getName()).isEqualTo(NAME); assertThat(test.getDiscountCurves()).isEqualTo(DISCOUNT_CURVES); assertThat(test.getForwardCurves()).isEqualTo(IBOR_CURVES); assertThat(test.findCurve(DISCOUNT_NAME)).hasValue(DISCOUNT_CURVE); assertThat(test.findCurve(IBOR_NAME)).hasValue(IBOR_CURVE); assertThat(test.findCurve(OVERNIGHT_NAME)).isEmpty(); assertThat(test.findDiscountCurve(GBP)).hasValue(DISCOUNT_CURVE); assertThat(test.findDiscountCurve(USD)).isEmpty(); assertThat(test.findForwardCurve(GBP_LIBOR_3M)).hasValue(IBOR_CURVE); assertThat(test.findForwardCurve(CHF_LIBOR_3M)).isEmpty(); }
public void test_builder() { RatesCurveGroup test = RatesCurveGroup.builder() .name(NAME) .discountCurves(DISCOUNT_CURVES) .forwardCurves(IBOR_CURVES) .build(); assertThat(test.getName()).isEqualTo(NAME); assertThat(test.getDiscountCurves()).isEqualTo(DISCOUNT_CURVES); assertThat(test.getForwardCurves()).isEqualTo(IBOR_CURVES); assertThat(test.findDiscountCurve(GBP)).hasValue(DISCOUNT_CURVE); assertThat(test.findDiscountCurve(USD)).isEmpty(); assertThat(test.findForwardCurve(GBP_LIBOR_3M)).hasValue(IBOR_CURVE); assertThat(test.findForwardCurve(CHF_LIBOR_3M)).isEmpty(); }