anchor.diff:     * every bundle that would be required to provide results for the [source].
      */
     bool hasResultsForSource(Source source);
  +}
  +
  +/**
  + * A concrete resynthesizer that serves summaries from [SummaryDataStore].
  + */
  +class StoreBasedSummaryResynthesizer extends SummaryResynthesizer {
  +  final SummaryDataStore _dataStore;
  +
  +  StoreBasedSummaryResynthesizer(AnalysisContext context,
  +      SourceFactory sourceFactory, bool strongMode, this._dataStore)
  +      : super(context, sourceFactory, strongMode);
  +
  +  @override
  +  LinkedLibrary getLinkedSummary(String uri) {
  +    return _dataStore.linkedMap[uri];
  +  }
  +
  +  @override
  +  UnlinkedUnit getUnlinkedSummary(String uri) {
  +    return _dataStore.unlinkedMap[uri];
  +  }
  +
  +  @override
  +  bool hasLibrarySummary(String uri) {
  +    LinkedLibrary linkedLibrary = _dataStore.linkedMap[uri];
  +    return linkedLibrary != null;
  +  }
   }
   
   /**
  
positive.code:    * Subclasses must call this method in their constructors.
     */
    void createResynthesizer() {
      _resynthesizer = new _FileBasedSummaryResynthesizer(context,
          context.sourceFactory, context.analysisOptions.strongMode, _dataStore);
    }
  
  
negative.code:     addBundle(path, bundle);
    }
  }
  