/** * 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 org.fudgemsg.FudgeContext; import org.threeten.bp.Instant; import com.opengamma.core.position.Portfolio; import com.opengamma.engine.view.helper.AvailableOutputs; import com.opengamma.engine.view.helper.AvailableOutputsProvider; import com.opengamma.id.UniqueId; import com.opengamma.util.ArgumentChecker; import com.opengamma.util.fudgemsg.OpenGammaFudgeContext; import com.opengamma.util.rest.AbstractRemoteClient; /** * Provides remote access to an {@link AvailableOutputsProvider}. */ public class RemoteAvailableOutputsProvider extends AbstractRemoteClient implements AvailableOutputsProvider { /** * Creates an instance. * * @param baseUri the base target URI for all RESTful web services, not null */ public RemoteAvailableOutputsProvider(final URI baseUri) { super(baseUri); } //------------------------------------------------------------------------- public FudgeContext getFudgeContext() { return OpenGammaFudgeContext.getInstance(); } //------------------------------------------------------------------------- @Override public AvailableOutputs getPortfolioOutputs(Portfolio portfolio, Instant instant) { return getPortfolioOutputs(portfolio, instant, null, null); } @Override public AvailableOutputs getPortfolioOutputs(Portfolio portfolio, Instant instant, Integer maxNodes, Integer maxPositions) { ArgumentChecker.notNull(portfolio, "portfolio"); URI uri = DataAvailablePortfolioOutputsResource.uri(getBaseUri(), instant, maxNodes, maxPositions, null); return accessRemote(uri).post(AvailableOutputs.class, portfolio); } @Override public AvailableOutputs getPortfolioOutputs(UniqueId portfolioId, Instant instant) { return getPortfolioOutputs(portfolioId, instant, null, null); } @Override public AvailableOutputs getPortfolioOutputs(UniqueId portfolioId, Instant instant, Integer maxNodes, Integer maxPositions) { ArgumentChecker.notNull(portfolioId, "portfolioId"); URI uri = DataAvailablePortfolioOutputsResource.uri(getBaseUri(), instant, maxNodes, maxPositions, portfolioId); return accessRemote(uri).get(AvailableOutputs.class); } }