Package com.opengamma.bbg.referencedata

Examples of com.opengamma.bbg.referencedata.ReferenceData


   
    getUnitProvider().addAcceptableRequest(securities, fields);
    ReferenceDataProviderGetResult result = getProvider().getReferenceData(
        ReferenceDataProviderGetRequest.createGet(securities, fields, true));
    assertNotNull(result);
    ReferenceData aaplResult = result.getReferenceData(AAPL_TICKER);
    assertNotNull(aaplResult);
    ReferenceData ciscoResult = result.getReferenceData(CISCO_TICKER);
    assertNotNull(ciscoResult);
   
    getUnitProvider().clearAcceptableRequests();
    result = getProvider().getReferenceData(
        ReferenceDataProviderGetRequest.createGet(securities, fields, true));
    assertNotNull(result);
    ReferenceData aaplCachedResult = result.getReferenceData(AAPL_TICKER);
    ReferenceData ciscoCachedResult = result.getReferenceData(CISCO_TICKER);
   
    assertNotNull(aaplCachedResult);
    assertEquals(aaplResult.getIdentifier(), aaplCachedResult.getIdentifier());
    assertEquals(aaplResult.getFieldValues(), aaplCachedResult.getFieldValues());
   
    assertNotNull(ciscoCachedResult);
    assertEquals(ciscoResult.getIdentifier(), ciscoCachedResult.getIdentifier());
    assertEquals(ciscoResult.getFieldValues(), ciscoCachedResult.getFieldValues());
  }
View Full Code Here


  @Override
  protected Map<String, ReferenceData> loadFieldValues(Set<String> identifiers) {
    Map<String, ReferenceData> result = Maps.newTreeMap();
    FudgeSerializer serializer = new FudgeSerializer(getFudgeContext());
    for (String identifier : identifiers) {
      ReferenceData cachedResult = loadStateFromCache(serializer, identifier);
      if (cachedResult != null) {
        result.put(identifier, cachedResult);
      }
    }
    return result;
View Full Code Here

   * @param fromCache  the data from the cache, not null
   * @return the result, not null
   */
  protected ReferenceData parseCachedObject(Object fromCache) {
    CachedReferenceData rd = (CachedReferenceData) fromCache;
    return new ReferenceData(rd.getSecurity(), rd.getFieldDataMsg(getFudgeContext()));
  }
View Full Code Here

  //-------------------------------------------------------------------------
  @Override
  protected ReferenceData parseCachedObject(Object fromCache) {
    CachedReferenceDataForDisk rd = (CachedReferenceDataForDisk) fromCache;
    FudgeMsg fieldValues = getFudgeContext().deserialize(rd._fieldData).getMessage();
    return new ReferenceData(rd._identifier, fieldValues);
  }
View Full Code Here

  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

      }
      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);
      }
    }
    return result;
View Full Code Here

    for (String notAvailableField : notAvaliableFields) {
      unionFieldData.add(FIELD_NOT_AVAILABLE_NAME, notAvailableField);
    }
   
    // create combined result
    ReferenceData resolvedResult = new ReferenceData(freshResult.getIdentifier(), unionFieldData);
    for (ReferenceDataError error : freshResult.getErrors()) {
      if (resolvedResult.getErrors().contains(error) == false) {
        resolvedResult.getErrors().add(error);         
      }
    }
    return resolvedResult;
  }
View Full Code Here

   */
  protected Map<Set<String>, Set<String>> buildUnderlyingRequestGroups(ReferenceDataProviderGetRequest request, Map<String, ReferenceData> cachedResults) {
    Map<Set<String>, Set<String>> result = Maps.newHashMap();
    for (String identifier : request.getIdentifiers()) {
      // select known invalid fields for the identifier
      ReferenceData cachedResult = cachedResults.get(identifier);
     
      // calculate the missing fields that must be queried from the underlying
      Set<String> missingFields = null;
      if (cachedResult == null) {
        missingFields = Sets.newHashSet(request.getFields());
      } else {
        missingFields = Sets.newHashSet(Sets.difference(request.getFields(), cachedResult.getFieldValues().getAllFieldNames()));
        // remove known not available fields from missingFields
        List<String> notAvailableFieldNames = getNotAvailableFields(cachedResult);
        for (String field : notAvailableFieldNames) {
          missingFields.remove(field);
        }
View Full Code Here

    Map<String, ReferenceData> cachedResults = loadFieldValues(identifiers);
   
    Map<Set<String>, Set<String>> identifiersByFields = Maps.newHashMap();
   
    for (String identifier : identifiers) {
      ReferenceData cachedResult = cachedResults.get(identifier);
      if (cachedResult == null) {
        continue; // nothing to refresh
      }
      Set<String> fields = new HashSet<String>();
      fields.addAll(cachedResult.getFieldValues().getAllFieldNames());
      fields.addAll(getNotAvailableFields(cachedResult));
      fields.remove(FIELD_NOT_AVAILABLE_NAME);
      Set<String> secsForTheseFields = identifiersByFields.get(fields);
      if (secsForTheseFields == null) {
        secsForTheseFields = new HashSet<String>();
        identifiersByFields.put(fields, secsForTheseFields);
      }
      secsForTheseFields.add(identifier);
    }
   
    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

    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);
View Full Code Here

TOP

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

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.