/**
* Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.engine.calcnode.stats;
import java.net.URI;
import org.threeten.bp.Instant;
import com.opengamma.util.ArgumentChecker;
import com.opengamma.util.rest.AbstractRemoteClient;
import com.opengamma.util.rest.UniformInterfaceException404NotFound;
/**
* Provides access to a remote {@link FunctionCostsMaster}.
*/
public class RemoteFunctionCostsMaster extends AbstractRemoteClient implements FunctionCostsMaster {
/**
* Creates an instance.
*
* @param baseUri the base target URI for all RESTful web services, not null
*/
public RemoteFunctionCostsMaster(final URI baseUri) {
super(baseUri);
}
//-------------------------------------------------------------------------
@Override
public FunctionCostsDocument load(String configurationName, String functionId, Instant versionAsOf) {
ArgumentChecker.notNull(configurationName, "configurationName");
ArgumentChecker.notNull(functionId, "functionId");
URI uri = DataFunctionCostsMasterResource.uriLoad(getBaseUri(), configurationName, functionId, versionAsOf);
try {
return accessRemote(uri).get(FunctionCostsDocument.class);
} catch (UniformInterfaceException404NotFound ex) {
return null;
}
}
@Override
public FunctionCostsDocument store(FunctionCostsDocument costs) {
ArgumentChecker.notNull(costs, "costs");
URI uri = DataFunctionCostsMasterResource.uriStore(getBaseUri());
return accessRemote(uri).post(FunctionCostsDocument.class, costs);
}
}