/** * Builds the sensitivity from the provided data. * * @return the sensitivities instance */ CurrencyParameterSensitivity build() { ImmutableSet<Class<?>> metadataTypes = sensitivity.keySet().stream().map(Object::getClass).collect(toImmutableSet()); if (metadataTypes.size() == 1) { if (TenoredParameterMetadata.class.isAssignableFrom(metadataTypes.iterator().next())) { Map<ParameterMetadata, Double> sorted = MapStream.of(sensitivity) .sortedKeys(Comparator.comparing(k -> ((TenoredParameterMetadata) k).getTenor())) .toMap(); return CurrencyParameterSensitivity.of(marketDataName, currency, sorted); } if (DatedParameterMetadata.class.isAssignableFrom(metadataTypes.iterator().next())) { Map<ParameterMetadata, Double> sorted = MapStream.of(sensitivity) .sortedKeys(Comparator.comparing(k -> ((DatedParameterMetadata) k).getDate())) .toMap(); return CurrencyParameterSensitivity.of(marketDataName, currency, sorted); } } return CurrencyParameterSensitivity.of(marketDataName, currency, sensitivity); }
for (int i = 0; i < paramSens.getParameterCount(); i++) { ParameterMetadata pmd = paramSens.getParameterMetadata(i); Tenor tenor = ((TenoredParameterMetadata) pmd).getTenor(); double value = paramSens.getSensitivity().get(i); csv.writeCell(reference);