Map<Element, Set<ModelElement>> modelElementsMap

Source

Map<Element, Set<ModelElement>> get modelElementsMap {
  if (_modelElementsMap == null) {
    final Set<ModelElement> results = new Set();
    results
      ..addAll(library.allClasses)
      ..addAll(library.constants)
      ..addAll(library.enums)
      ..addAll(library.functions)
      ..addAll(library.properties)
      ..addAll(library.typedefs);

    library.allClasses.forEach((c) {
      results.addAll(c.allModelElements);
      results.add(c);
    });

    _modelElementsMap = new Map<Element, Set<ModelElement>>();
    results.forEach((modelElement) {
      _modelElementsMap.putIfAbsent(modelElement.element, () => new Set());
      _modelElementsMap[modelElement.element].add(modelElement);
    });
    _modelElementsMap.putIfAbsent(element, () => new Set());
    _modelElementsMap[element].add(this);
  }
  return _modelElementsMap;
}