Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1321)

Unified Diff: pkg/analyzer/lib/src/summary/format.dart

Issue 1540493003: Information about SDK libraries. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | pkg/analyzer/tool/summary/idl.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/analyzer/lib/src/summary/format.dart
diff --git a/pkg/analyzer/lib/src/summary/format.dart b/pkg/analyzer/lib/src/summary/format.dart
index d050d817553b82b54be3e6357999d97b036ca443..7f3babe145194bcb321661cf205b9c586f9da3ba 100644
--- a/pkg/analyzer/lib/src/summary/format.dart
+++ b/pkg/analyzer/lib/src/summary/format.dart
@@ -231,6 +231,108 @@ PrelinkedUnitBuilder encodePrelinkedUnit(builder.BuilderContext builderContext,
return builder;
}
+class SdkBundle {
+ List<SdkBundleLibrary> _libraries;
+
+ SdkBundle.fromJson(Map json)
+ : _libraries = json["libraries"]?.map((x) => new SdkBundleLibrary.fromJson(x))?.toList();
+
+ SdkBundle.fromBuffer(List<int> buffer) : this.fromJson(JSON.decode(UTF8.decode(buffer)));
+
+ List<SdkBundleLibrary> get libraries => _libraries ?? const <SdkBundleLibrary>[];
+}
+
+class SdkBundleBuilder {
+ final Map _json = {};
+
+ bool _finished = false;
+
+ SdkBundleBuilder(builder.BuilderContext context);
+
+ void set libraries(List<SdkBundleLibraryBuilder> _value) {
+ assert(!_finished);
+ assert(!_json.containsKey("libraries"));
+ if (_value != null || _value.isEmpty) {
+ _json["libraries"] = _value.map((b) => b.finish()).toList();
+ }
+ }
+
+ List<int> toBuffer() => UTF8.encode(JSON.encode(finish()));
+
+ Map finish() {
+ assert(!_finished);
+ _finished = true;
+ return _json;
+ }
+}
+
+SdkBundleBuilder encodeSdkBundle(builder.BuilderContext builderContext, {List<SdkBundleLibraryBuilder> libraries}) {
+ SdkBundleBuilder builder = new SdkBundleBuilder(builderContext);
+ builder.libraries = libraries;
+ return builder;
+}
+
+class SdkBundleLibrary {
+ String _uri;
+ PrelinkedLibrary _prelinked;
+ List<UnlinkedUnit> _unlinkedUnits;
+
+ SdkBundleLibrary.fromJson(Map json)
+ : _uri = json["uri"],
+ _prelinked = json["prelinked"] == null ? null : new PrelinkedLibrary.fromJson(json["prelinked"]),
+ _unlinkedUnits = json["unlinkedUnits"]?.map((x) => new UnlinkedUnit.fromJson(x))?.toList();
+
+ String get uri => _uri ?? '';
+ PrelinkedLibrary get prelinked => _prelinked;
+ List<UnlinkedUnit> get unlinkedUnits => _unlinkedUnits ?? const <UnlinkedUnit>[];
+}
+
+class SdkBundleLibraryBuilder {
+ final Map _json = {};
+
+ bool _finished = false;
+
+ SdkBundleLibraryBuilder(builder.BuilderContext context);
+
+ void set uri(String _value) {
+ assert(!_finished);
+ assert(!_json.containsKey("uri"));
+ if (_value != null) {
+ _json["uri"] = _value;
+ }
+ }
+
+ void set prelinked(PrelinkedLibraryBuilder _value) {
+ assert(!_finished);
+ assert(!_json.containsKey("prelinked"));
+ if (_value != null) {
+ _json["prelinked"] = _value.finish();
+ }
+ }
+
+ void set unlinkedUnits(List<UnlinkedUnitBuilder> _value) {
+ assert(!_finished);
+ assert(!_json.containsKey("unlinkedUnits"));
+ if (_value != null || _value.isEmpty) {
+ _json["unlinkedUnits"] = _value.map((b) => b.finish()).toList();
+ }
+ }
+
+ Map finish() {
+ assert(!_finished);
+ _finished = true;
+ return _json;
+ }
+}
+
+SdkBundleLibraryBuilder encodeSdkBundleLibrary(builder.BuilderContext builderContext, {String uri, PrelinkedLibraryBuilder prelinked, List<UnlinkedUnitBuilder> unlinkedUnits}) {
+ SdkBundleLibraryBuilder builder = new SdkBundleLibraryBuilder(builderContext);
+ builder.uri = uri;
+ builder.prelinked = prelinked;
+ builder.unlinkedUnits = unlinkedUnits;
+ return builder;
+}
+
class UnlinkedClass {
String _name;
List<UnlinkedTypeParam> _typeParameters;
« no previous file with comments | « no previous file | pkg/analyzer/tool/summary/idl.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698