/** * Copyright (C) 2013 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.integration.copier.snapshot.writer; import java.util.Map; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.opengamma.core.marketdatasnapshot.CurveKey; import com.opengamma.core.marketdatasnapshot.CurveSnapshot; import com.opengamma.core.marketdatasnapshot.UnstructuredMarketDataSnapshot; import com.opengamma.core.marketdatasnapshot.VolatilitySurfaceKey; import com.opengamma.core.marketdatasnapshot.VolatilitySurfaceSnapshot; import com.opengamma.core.marketdatasnapshot.YieldCurveKey; import com.opengamma.core.marketdatasnapshot.YieldCurveSnapshot; import com.opengamma.core.marketdatasnapshot.impl.ManageableMarketDataSnapshot; import com.opengamma.core.marketdatasnapshot.impl.ManageableUnstructuredMarketDataSnapshot; import com.opengamma.master.marketdatasnapshot.MarketDataSnapshotDocument; import com.opengamma.master.marketdatasnapshot.MarketDataSnapshotMaster; /** * A class that writes securities and snapshot positions and trades to the OG masters */ public class MasterSnapshotWriter implements SnapshotWriter { private static final Logger s_logger = LoggerFactory.getLogger(MasterSnapshotWriter.class); private final MarketDataSnapshotMaster _snapshotMaster; private ManageableMarketDataSnapshot _snapshot; /** * Create a master snapshot writer * @param snapshotMaster The snapshot master to which to write the snapshot */ public MasterSnapshotWriter(MarketDataSnapshotMaster snapshotMaster) { _snapshotMaster = snapshotMaster; _snapshot = new ManageableMarketDataSnapshot(); } @Override public void flush() { //To change body of implemented methods use File | Settings | File Templates. } @Override public void writeCurves(Map<CurveKey, CurveSnapshot> curves) { if (curves != null) { _snapshot.setCurves(curves); } } @Override public void writeGlobalValues(UnstructuredMarketDataSnapshot globalValues) { if (globalValues != null) { _snapshot.setGlobalValues((ManageableUnstructuredMarketDataSnapshot) globalValues); } } @Override public void writeVolatilitySurface(Map<VolatilitySurfaceKey, VolatilitySurfaceSnapshot> volatilitySurface) { if (volatilitySurface != null) { _snapshot.setVolatilitySurfaces(volatilitySurface); } } @Override public void writeYieldCurves(Map<YieldCurveKey, YieldCurveSnapshot> yieldCurves) { if (yieldCurves != null) { _snapshot.setYieldCurves(yieldCurves); } } @Override public void writeName(String name) { if (name != null) { _snapshot.setName(name); } } @Override public void writeBasisViewName(String basisName) { if (basisName != null) { _snapshot.setBasisViewName(basisName); } } @Override public void close() { _snapshotMaster.add(new MarketDataSnapshotDocument(_snapshot)); } }