/** * Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.financial.view.rest; import java.net.URI; import java.util.Map; import com.opengamma.core.marketdatasnapshot.StructuredMarketDataSnapshot; import com.opengamma.core.marketdatasnapshot.YieldCurveKey; import com.opengamma.engine.marketdata.snapshot.MarketDataSnapshotter; import com.opengamma.engine.value.ValueRequirement; import com.opengamma.engine.view.client.ViewClient; import com.opengamma.engine.view.cycle.ViewCycle; import com.opengamma.util.ArgumentChecker; import com.opengamma.util.rest.AbstractRemoteClient; import com.opengamma.util.rest.FudgeRestClient; /** * Provides access to a remote {@link com.opengamma.engine.marketdata.snapshot.MarketDataSnapshotter}. */ public class RemoteMarketDataSnapshotter extends AbstractRemoteClient implements MarketDataSnapshotter { public RemoteMarketDataSnapshotter(URI baseUri) { super(baseUri); } public RemoteMarketDataSnapshotter(URI baseUri, FudgeRestClient client) { super(baseUri, client); } @Override public StructuredMarketDataSnapshot createSnapshot(ViewClient client, ViewCycle cycle) { ArgumentChecker.notNull(client, "client"); ArgumentChecker.notNull(cycle, "cycle"); URI uri = DataMarketDataSnapshotterResource.uriCreateSnapshot(getBaseUri(), client.getUniqueId(), cycle.getUniqueId()); return accessRemote(uri).get(StructuredMarketDataSnapshot.class); } @Override public Map<YieldCurveKey, Map<String, ValueRequirement>> getYieldCurveSpecifications(ViewClient client, ViewCycle cycle) { ArgumentChecker.notNull(client, "client"); ArgumentChecker.notNull(cycle, "cycle"); URI uri = DataMarketDataSnapshotterResource.uriGetYieldCurveSpecs(getBaseUri(), client.getUniqueId(), cycle.getUniqueId()); return accessRemote(uri).get(Map.class); } }