/** * Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.financial.analytics.volatility.cube.rest; import java.net.URI; import com.opengamma.financial.analytics.volatility.cube.VolatilityCubeDefinition; import com.opengamma.financial.analytics.volatility.cube.VolatilityCubeDefinitionSource; import com.opengamma.id.VersionCorrection; import com.opengamma.util.ArgumentChecker; import com.opengamma.util.rest.AbstractRemoteClient; /** * Provides remote access to a {@link VolatilityCubeDefinitionSource}. */ public class RemoteVolatilityCubeDefinitionSource extends AbstractRemoteClient implements VolatilityCubeDefinitionSource { /** * Creates an instance. * * @param baseUri the base target URI for all RESTful web services, not null */ public RemoteVolatilityCubeDefinitionSource(final URI baseUri) { super(baseUri); } //------------------------------------------------------------------------- @Override public VolatilityCubeDefinition<?, ?, ?> getDefinition(final String name) { ArgumentChecker.notNull(name, "name"); final URI uri = DataVolatilityCubeDefinitionSourceResource.uriSearchSingle(getBaseUri(), name, null); return accessRemote(uri).get(VolatilityCubeDefinition.class); } @Override public VolatilityCubeDefinition<?, ?, ?> getDefinition(final String name, final VersionCorrection versionCorrection) { ArgumentChecker.notNull(name, "name"); final URI uri = DataVolatilityCubeDefinitionSourceResource.uriSearchSingle(getBaseUri(), name, versionCorrection.getVersionAsOf()); return accessRemote(uri).get(VolatilityCubeDefinition.class); } }