/**
* Copyright (C) 2012 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.web.analytics.rest;
import java.util.List;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import org.json.JSONArray;
import com.google.common.collect.Lists;
import com.opengamma.engine.marketdata.spec.HistoricalMarketDataSpecification;
import com.opengamma.master.config.ConfigDocument;
import com.opengamma.master.config.ConfigMaster;
import com.opengamma.master.config.ConfigSearchRequest;
import com.opengamma.master.config.impl.ConfigSearchIterator;
import com.opengamma.master.historicaltimeseries.impl.HistoricalTimeSeriesRating;
import com.opengamma.util.ArgumentChecker;
/**
* REST resource for looking up a list of valid values for time series resolver keys to use in a
* {@link HistoricalMarketDataSpecification}. These correspond to the names of {@link HistoricalTimeSeriesRating}
* instances stored in the configuration database.
* @see com.opengamma.web.analytics.MarketDataSpecificationJsonReader
*/
@Path("timeseriesresolverkeys")
public class TimeSeriesResolverKeysResource {
/**
* The config master.
*/
private final ConfigMaster _configMaster;
/**
* Creates an instance.
*
* @param configMaster the config master, not null
*/
public TimeSeriesResolverKeysResource(ConfigMaster configMaster) {
ArgumentChecker.notNull(configMaster, "configMaster");
_configMaster = configMaster;
}
/**
* @return JSON array of resolver keys: {@code ["KEY1", "KEY2", ...]}
*/
@GET
public String getResolverKeys() {
ConfigSearchRequest<HistoricalTimeSeriesRating> request =
new ConfigSearchRequest<HistoricalTimeSeriesRating>(HistoricalTimeSeriesRating.class);
List<String> keyNames = Lists.newArrayList();
for (ConfigDocument doc : ConfigSearchIterator.iterable(_configMaster, request)) {
keyNames.add(doc.getName());
}
return new JSONArray(keyNames).toString();
}
}