/**
* Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.integration.tool.config;
import static com.opengamma.master.historicaltimeseries.impl.HistoricalTimeSeriesRatingFieldNames.DATA_PROVIDER_NAME;
import static com.opengamma.master.historicaltimeseries.impl.HistoricalTimeSeriesRatingFieldNames.DATA_SOURCE_NAME;
import static com.opengamma.master.historicaltimeseries.impl.HistoricalTimeSeriesRatingFieldNames.DEFAULT_CONFIG_NAME;
import static com.opengamma.master.historicaltimeseries.impl.HistoricalTimeSeriesRatingFieldNames.STAR_VALUE;
import java.util.ArrayList;
import java.util.List;
import com.opengamma.core.config.impl.ConfigItem;
import com.opengamma.master.config.ConfigDocument;
import com.opengamma.master.config.ConfigMaster;
import com.opengamma.master.config.ConfigSearchRequest;
import com.opengamma.master.config.ConfigSearchResult;
import com.opengamma.master.historicaltimeseries.impl.HistoricalTimeSeriesRating;
import com.opengamma.master.historicaltimeseries.impl.HistoricalTimeSeriesRatingRule;
/**
* Puts an entry in the TSS configuration for default MetaData lookup.
*/
public class TimeSeriesConfigDocumentLoader {
private static final HistoricalTimeSeriesRating DEFAULT_CONFIG = buildDefaultConfig();
private ConfigMaster _configMaster;
public TimeSeriesConfigDocumentLoader(final ConfigMaster configMaster) {
_configMaster = configMaster;
}
private static HistoricalTimeSeriesRating buildDefaultConfig() {
List<HistoricalTimeSeriesRatingRule> rules = new ArrayList<HistoricalTimeSeriesRatingRule>();
rules.add(HistoricalTimeSeriesRatingRule.of(DATA_SOURCE_NAME, "BLOOMBERG", 2));
rules.add(HistoricalTimeSeriesRatingRule.of(DATA_SOURCE_NAME, "REUTERS", 1));
rules.add(HistoricalTimeSeriesRatingRule.of(DATA_SOURCE_NAME, STAR_VALUE, 0));
rules.add(HistoricalTimeSeriesRatingRule.of(DATA_PROVIDER_NAME, "CMPL", 3));
rules.add(HistoricalTimeSeriesRatingRule.of(DATA_PROVIDER_NAME, "CMPN", 2));
rules.add(HistoricalTimeSeriesRatingRule.of(DATA_PROVIDER_NAME, "CMPT", 1));
rules.add(HistoricalTimeSeriesRatingRule.of(DATA_PROVIDER_NAME, STAR_VALUE, 0));
return HistoricalTimeSeriesRating.of(rules);
}
public ConfigMaster getConfigMaster() {
return _configMaster;
}
/**
* Runs the tool.
*/
public void run() {
final ConfigItem<HistoricalTimeSeriesRating> configItem = ConfigItem.of(DEFAULT_CONFIG, DEFAULT_CONFIG_NAME);
final ConfigSearchRequest<HistoricalTimeSeriesRating> req = new ConfigSearchRequest<HistoricalTimeSeriesRating>();
req.setName(configItem.getName());
final ConfigDocument configDocument = new ConfigDocument(configItem);
final ConfigSearchResult<HistoricalTimeSeriesRating> res = getConfigMaster().search(req);
if (res.getDocuments().isEmpty()) {
getConfigMaster().add(configDocument);
} else {
configDocument.setUniqueId(res.getDocuments().get(0).getUniqueId());
getConfigMaster().update(configDocument);
}
}
}