addLibraryToGraph method
Adds resolvedLibrary to the package graph, adding it to _allLibraries,
and to the Package which is created from the PackageMeta for the
library.
Call during initialization to add a library to this PackageGraph.
Libraries added in this manner are assumed to be part of documented packages, even if 'includes' or 'embedder.yaml' files cause these to span packages.
Implementation
void addLibraryToGraph(DartDocResolvedLibrary resolvedLibrary) {
assert(!allLibrariesAdded);
var libraryElement2 = resolvedLibrary.element;
var packageMeta =
packageMetaProvider.fromElement(libraryElement2, config.sdkDir);
if (packageMeta == null) {
var libraryPath = libraryElement2.firstFragment.source.fullName;
var dartOrFlutter = config.flutterRoot == null ? 'dart' : 'flutter';
throw DartdocFailure(
"Unknown package for library: '$libraryPath'. Consider "
'`$dartOrFlutter pub get` and/or '
'`$dartOrFlutter pub global deactivate dartdoc` followed by '
'`$dartOrFlutter pub global activate dartdoc` to fix. Also, be sure '
'that `$dartOrFlutter analyze` completes without errors.');
}
var package = Package.fromPackageMeta(packageMeta, this);
var library = Library.fromLibraryResult(resolvedLibrary, this, package);
if (_shouldIncludeLibrary(resolvedLibrary.element)) {
package.libraries.add(library);
}
_allLibraries[libraryElement2.firstFragment.source.fullName] = library;
}