/** * Combines this parameter sensitivities with another instance. * <p> * This returns a new sensitivity instance with the specified sensitivity added. * This instance is immutable and unaffected by this method. * The result may contain duplicate parameter sensitivities. * * @param other the other parameter sensitivity * @return an instance based on this one, with the other instance added */ public CrossGammaParameterSensitivities combinedWith(CrossGammaParameterSensitivity other) { List<CrossGammaParameterSensitivity> mutable = new ArrayList<>(sensitivities); insert(mutable, other); return new CrossGammaParameterSensitivities(ImmutableList.copyOf(mutable)); }
/** * Obtains an instance from a list of sensitivity entries. * <p> * The order of sensitivities is typically unimportant, however it is retained * and exposed in {@link #equals(Object)}. * * @param sensitivities the list of sensitivity entries * @return the sensitivities instance */ public static CrossGammaParameterSensitivities of(List<? extends CrossGammaParameterSensitivity> sensitivities) { List<CrossGammaParameterSensitivity> mutable = new ArrayList<>(); for (CrossGammaParameterSensitivity otherSens : sensitivities) { insert(mutable, otherSens); } return new CrossGammaParameterSensitivities(ImmutableList.copyOf(mutable)); }
/** * Combines this parameter sensitivities with another instance. * <p> * This returns a new sensitivity instance with a combined list of parameter sensitivities. * This instance is immutable and unaffected by this method. * The result may contain duplicate parameter sensitivities. * * @param other the other parameter sensitivities * @return an instance based on this one, with the other instance added */ public CrossGammaParameterSensitivities combinedWith(CrossGammaParameterSensitivities other) { List<CrossGammaParameterSensitivity> mutable = new ArrayList<>(sensitivities); for (CrossGammaParameterSensitivity otherSens : other.sensitivities) { insert(mutable, otherSens); } return new CrossGammaParameterSensitivities(ImmutableList.copyOf(mutable)); }
/** * Converts the sensitivities in this instance to an equivalent in the specified currency. * <p> * Any FX conversion that is required will use rates from the provider. * * @param resultCurrency the currency of the result * @param rateProvider the provider of FX rates * @return the sensitivity object expressed in terms of the result currency * @throws RuntimeException if no FX rate could be found */ @Override public CrossGammaParameterSensitivities convertedTo(Currency resultCurrency, FxRateProvider rateProvider) { List<CrossGammaParameterSensitivity> mutable = new ArrayList<>(); for (CrossGammaParameterSensitivity sens : sensitivities) { insert(mutable, sens.convertedTo(resultCurrency, rateProvider)); } return new CrossGammaParameterSensitivities(ImmutableList.copyOf(mutable)); }