Package com.opengamma.bbg.referencedata

Examples of com.opengamma.bbg.referencedata.ReferenceDataProviderGetResult


    resolvedResults = stripUnwantedFields(resolvedResults, request.getFields());
    return resolvedResults;
  }

  protected ReferenceDataProviderGetResult stripUnwantedFields(final ReferenceDataProviderGetResult resolvedResults, final Set<String> fields) {
    ReferenceDataProviderGetResult result = new ReferenceDataProviderGetResult();
    for (ReferenceData unstippedDataResult : resolvedResults.getReferenceData()) {
      String identifier = unstippedDataResult.getIdentifier();
      ReferenceData strippedDataResult = new ReferenceData(identifier);
      strippedDataResult.getErrors().addAll(unstippedDataResult.getErrors());
      MutableFudgeMsg strippedFields = getFudgeContext().newMessage();
      FudgeMsg unstrippedFieldData = unstippedDataResult.getFieldValues();
      // check requested fields
      for (String requestField : fields) {
        List<FudgeField> fudgeFields = unstrippedFieldData.getAllByName(requestField);
        for (FudgeField fudgeField : fudgeFields) {
          strippedFields.add(requestField, fudgeField.getValue());
        }
      }
      strippedDataResult.setFieldValues(strippedFields);
      result.addReferenceData(strippedDataResult);
    }
    return result;
  }
View Full Code Here


  protected ReferenceDataProviderGetResult loadAndPersistUnknownFields(
      Map<String, ReferenceData> cachedResults,
      Map<Set<String>, Set<String>> identifiersByFields) {
   
    // TODO kirk 2009-10-23 -- Also need to maintain securities we don't need to put back in the database.
    ReferenceDataProviderGetResult result = new ReferenceDataProviderGetResult();
    // REVIEW kirk 2009-10-23 -- Candidate for scatter/gather.
    for (Map.Entry<Set<String>, Set<String>> entry : identifiersByFields.entrySet()) {
      Set<String> requestedIdentifiers = entry.getValue();
      Set<String> requestedFields = entry.getKey();
      assert !requestedIdentifiers.isEmpty();
      if (entry.getKey().isEmpty()) {
        s_logger.debug("Satisfied entire request for securities {} from cache", requestedIdentifiers);
        for (String securityKey : requestedIdentifiers) {
          result.addReferenceData(cachedResults.get(securityKey));
        }
        continue;
      }
      s_logger.info("Loading {} fields for {} securities from underlying", entry.getKey().size(), requestedIdentifiers.size());
      final ReferenceDataProviderGetRequest underlyingRequest = ReferenceDataProviderGetRequest.createGet(requestedIdentifiers, requestedFields, false);
      ReferenceDataProviderGetResult loadedResult = getUnderlying().getReferenceData(underlyingRequest);
      for (String identifier : requestedIdentifiers) {
        ReferenceData cachedResult = cachedResults.get(identifier);
        ReferenceData freshResult = loadedResult.getReferenceDataOrNull(identifier);
        freshResult = (freshResult != null ? freshResult : new ReferenceData(identifier));
       
        ReferenceData resolvedResult = getCombinedResult(requestedFields, cachedResult, freshResult);
        saveFieldValues(resolvedResult);
        result.addReferenceData(resolvedResult);
View Full Code Here

    for (Entry<Set<String>, Set<String>> entry : identifiersByFields.entrySet()) {
      Set<String> identifiersForTheseFields = entry.getValue();
      Set<String> fields = entry.getKey();
     
      ReferenceDataProviderGetRequest underlyingRequest = ReferenceDataProviderGetRequest.createGet(identifiersForTheseFields, fields, false);
      ReferenceDataProviderGetResult underlyingResult = _underlying.getReferenceData(underlyingRequest);
      for (ReferenceData refData : underlyingResult.getReferenceData()) {
        ReferenceData previousResult = cachedResults.get(refData.getIdentifier());
        ReferenceData resolvedResult = getCombinedResult(fields, new ReferenceData(refData.getIdentifier()), refData);
        if (differentCachedResult(previousResult, resolvedResult)) {
          saveFieldValues(resolvedResult);
        }
View Full Code Here

   
    // filter the request removing known invalid fields
    final Map<Set<String>, Set<String>> requiredFields = buildUnderlyingRequestGroups(request, cachedErrorsMap);
   
    // process everything that remains
    final ReferenceDataProviderGetResult result = new ReferenceDataProviderGetResult();
    for (Entry<Set<String>, Set<String>> group : requiredFields.entrySet()) {
      if (group.getKey().isEmpty()) {
        // all fields for these identifiers are invalid
        for (String identifier : group.getValue()) {
          result.addReferenceData(new ReferenceData(identifier));
        }
      } else {
        // call the underlying with the filtered subset of identifiers and fields
        final ReferenceDataProviderGetRequest underlyingRequest = ReferenceDataProviderGetRequest.createGet(group.getValue(), group.getKey(), false);
        final ReferenceDataProviderGetResult underlyingResult = getUnderlying().getReferenceData(underlyingRequest);
        for (ReferenceData refData : underlyingResult.getReferenceData()) {
          String identifier = refData.getIdentifier();
          checkAndSaveInvalidFields(refData, cachedErrorsMap.get(identifier));
          result.addReferenceData(refData);
        }
      }
View Full Code Here

TOP

Related Classes of com.opengamma.bbg.referencedata.ReferenceDataProviderGetResult

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.