All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.finmath.singleswaprate.model.VolatilityCubeModel Maven / Gradle / Ivy

package net.finmath.singleswaprate.model;

import java.util.Map;
import java.util.Set;

import net.finmath.marketdata.model.AnalyticModel;
import net.finmath.singleswaprate.model.volatilities.VolatilityCube;

/**
 * A collection of objects representing analytic valuations. In addition to the curves and volatility surfaces the base interface handles, this also includes volatility cubes.
 *
 * @author Christian Fries
 * @author Roland Bachl
 *
 */
public interface VolatilityCubeModel extends AnalyticModel, Cloneable {

	/**
	 * Get a volatility cube by a given name.
	 *
	 * @param name The name of the volatility cube.
	 * @return The cube with the corresponding name, given that it is part of this model, otherwise null is return.
	 */
	VolatilityCube getVolatilityCube(String name);

	/**
	 * Add a reference to the given volatility cube to this model.
	 *
	 * @param volatilityCube The cube.
	 * @return A clone of this model, with the given cube added or overwritten.
	 */
	VolatilityCubeModel addVolatilityCube(VolatilityCube volatilityCube);

	/**
	 * Add a reference to the given volatility cube to this model under the name provided.
	 *
	 * @param volatilityCubeName The name under which this cube is to known in the model.
	 * @param volatilityCube The cube.
	 * @return A clone of this model, with the given cube added or overwritten under the name provided.
	 */
	VolatilityCubeModel addVolatilityCube(String volatilityCubeName, VolatilityCube volatilityCube);

	/**
	 * Return a Set view of all volatility cubes of this model.
	 *
	 * @return The set containing all names of volatility cubes referenced in this model.
	 */
	Set getVolatilityCubeNames();

	/**
	 * Returns an unmodifiable map of all volatility cubes in the model.
	 *
	 * @return Map of all volatility cubes.
	 */
	Map getVolatilityCubes();

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy