// Add timeseries to data store
for (Entry<ExternalIdBundle, LocalDateDoubleTimeSeries> entry : tsMap.entrySet()) {
ExternalIdBundle identifers = entry.getKey();
LocalDateDoubleTimeSeries timeSeries = entry.getValue();
if (timeSeries != null && !timeSeries.isEmpty()) {
ManageableHistoricalTimeSeriesInfo info = new ManageableHistoricalTimeSeriesInfo();
ExternalIdBundleWithDates bundleWithDates = identifiersToBundleWithDates.get(identifers);
info.setExternalIdBundle(bundleWithDates);
info.setDataField(dataField);
info.setDataSource(BLOOMBERG_DATA_SOURCE_NAME);
ExternalIdBundle bundle = bundleWithDates.toBundle(LocalDate.now(OpenGammaClock.getInstance()));
String idStr = Objects.firstNonNull(
bundle.getValue(ExternalSchemes.BLOOMBERG_TICKER),
Objects.firstNonNull(
bundle.getExternalId(ExternalSchemes.BLOOMBERG_BUID),
bundle.getExternalIds().iterator().next())).toString();
info.setName(dataField + " " + idStr);
info.setDataProvider(dataProvider);
String resolvedObservationTime = BloombergDataUtils.resolveObservationTime(dataProvider);
if (resolvedObservationTime == null) {
throw new OpenGammaRuntimeException("Unable to resolve observation time from given dataProvider: " + dataProvider);
}
info.setObservationTime(resolvedObservationTime);
// get time-series creating if necessary
HistoricalTimeSeriesInfoSearchRequest request = new HistoricalTimeSeriesInfoSearchRequest();
request.setDataField(info.getDataField());
request.setDataSource(info.getDataSource());
request.setDataProvider(info.getDataProvider());
request.setObservationTime(info.getObservationTime());
request.setExternalIdSearch(new ExternalIdSearch(info.getExternalIdBundle().toBundle(), ExternalIdSearchType.EXACT));
HistoricalTimeSeriesInfoSearchResult searchResult = _htsMaster.search(request);
if (searchResult.getDocuments().size() == 0) {
// add new
HistoricalTimeSeriesInfoDocument doc = _htsMaster.add(new HistoricalTimeSeriesInfoDocument(info));
UniqueId uniqueId = _htsMaster.updateTimeSeriesDataPoints(doc.getInfo().getTimeSeriesObjectId(), timeSeries);