/**
* Copyright (C) 2011 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.core.marketdatasnapshot;
import java.util.Map;
import org.threeten.bp.Instant;
import com.opengamma.util.PublicSPI;
/**
* A snapshot of market data taken at a particular instant, potentially altered by hand.
* <p>
* This snapshot differs from {@code ( LiveDataSnapshot + overrides )} in that market
* values can be overridden or updated separately for yield curves or other structured objects.
*/
@PublicSPI
public interface StructuredMarketDataSnapshot extends NamedSnapshot {
/**
* Gets the basis view name.
*
* @return the basis view name
*/
String getBasisViewName(); // TODO we need to record version information
/**
* Gets the global set of values.
*
* @return the override values
*/
UnstructuredMarketDataSnapshot getGlobalValues();
/**
* Gets the yield curves.
*
* @return the yield curves
*/
Map<YieldCurveKey, YieldCurveSnapshot> getYieldCurves();
/**
* Gets the yield curves.
*
* @return the yield curves
*/
Map<CurveKey, CurveSnapshot> getCurves();
/**
* Gets the volatility cubes.
*
* @return the volatility cubes
*/
Map<VolatilityCubeKey, VolatilityCubeSnapshot> getVolatilityCubes();
/**
* Gets the volatility surfaces.
*
* @return the volatility surfaces
*/
Map<VolatilitySurfaceKey, VolatilitySurfaceSnapshot> getVolatilitySurfaces();
/**
* Gets the surfaces.
*
* @return the surfaces
*/
Map<SurfaceKey, SurfaceSnapshot> getSurfaces();
/**
* Gets the valuation time of the snapshot
*
* @return the valuation time of the snapshot, or null if
* no valuation time could be inferred from the snapshot
*/
Instant getValuationTime();
}