/** * Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.master.historicaltimeseries.impl; import java.net.URI; import java.util.Map; import java.util.Set; import org.threeten.bp.LocalDate; import com.opengamma.id.ExternalId; import com.opengamma.id.UniqueId; import com.opengamma.master.historicaltimeseries.HistoricalTimeSeriesLoader; import com.opengamma.master.historicaltimeseries.HistoricalTimeSeriesLoaderRequest; import com.opengamma.master.historicaltimeseries.HistoricalTimeSeriesLoaderResult; import com.opengamma.util.ArgumentChecker; import com.opengamma.util.rest.AbstractRemoteClient; /** * Provides access to a remote time-series loader. * <p> * This is a client that connects to a time-series loader at a remote URI. */ public class RemoteHistoricalTimeSeriesLoader extends AbstractRemoteClient implements HistoricalTimeSeriesLoader { /** * Creates an instance. * * @param baseUri the base target URI for all RESTful web services, not null */ public RemoteHistoricalTimeSeriesLoader(final URI baseUri) { super(baseUri); } //------------------------------------------------------------------------- // delegate convenience methods to request/result method // code copied from AbstractHistoricalTimeSeriesLoader due to lack of multiple inheritance @Override public Map<ExternalId, UniqueId> loadTimeSeries( Set<ExternalId> identifiers, String dataProvider, String dataField, LocalDate startDate, LocalDate endDate) { HistoricalTimeSeriesLoaderRequest request = HistoricalTimeSeriesLoaderRequest.create(identifiers, dataProvider, dataField, startDate, endDate); HistoricalTimeSeriesLoaderResult result = loadTimeSeries(request); return result.getResultMap(); } //------------------------------------------------------------------------- @Override public HistoricalTimeSeriesLoaderResult loadTimeSeries(HistoricalTimeSeriesLoaderRequest request) { ArgumentChecker.notNull(request, "request"); URI uri = DataHistoricalTimeSeriesLoaderResource.uriGet(getBaseUri()); return accessRemote(uri).post(HistoricalTimeSeriesLoaderResult.class, request); } @Override public boolean updateTimeSeries(UniqueId uniqueId) { ArgumentChecker.notNull(uniqueId, "uniqueId"); URI uri = DataHistoricalTimeSeriesLoaderResource.uriUpdate(getBaseUri(), uniqueId); return accessRemote(uri).post(Boolean.class); } }