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

Unified Diff: pkg/analysis_server/lib/src/computer/computer_overrides.dart

Issue 440743002: Update 'analysis.override' notification to the latest spec. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 4 months 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/analysis_server/test/analysis_notification_overrides_test.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/analysis_server/lib/src/computer/computer_overrides.dart
diff --git a/pkg/analysis_server/lib/src/computer/computer_overrides.dart b/pkg/analysis_server/lib/src/computer/computer_overrides.dart
index 429c7783f1b90278aaf467f78ae0fefb3febdb64..ad923864b3a1966a3e62596f991624f321108aa8 100644
--- a/pkg/analysis_server/lib/src/computer/computer_overrides.dart
+++ b/pkg/analysis_server/lib/src/computer/computer_overrides.dart
@@ -67,14 +67,13 @@ class DartUnitOverridesComputer {
}
// is there any override?
if (superEngineElement != null || interfaceEngineElements.isNotEmpty) {
- Element superElement = superEngineElement != null ?
- new Element.fromEngine(superEngineElement) : null;
- List<Element> interfaceElements = interfaceEngineElements.map(
- (engineElement) {
- return new Element.fromEngine(engineElement);
- }).toList();
- _overrides.add(new Override(offset, length, superElement,
- interfaceElements));
+ OverriddenMember superMember = superEngineElement != null ?
+ OverriddenMember.fromEngine(superEngineElement) :
+ null;
+ List<OverriddenMember> interfaceMembers =
+ interfaceEngineElements.map(OverriddenMember.fromEngine).toList();
+ _overrides.add(
+ new Override(offset, length, superMember, interfaceMembers));
}
}
@@ -105,56 +104,82 @@ class DartUnitOverridesComputer {
}
+class OverriddenMember implements HasToJson {
+ final Element element;
+ final String className;
+
+ OverriddenMember(this.element, this.className);
+
+ Map<String, Object> toJson() {
+ return {
+ ELEMENT: element.toJson(),
+ CLASS_NAME: className
+ };
+ }
+
+ @override
+ String toString() => toJson().toString();
+
+ static OverriddenMember fromEngine(engine.Element member) {
+ Element element = new Element.fromEngine(member);
+ String className = member.enclosingElement.displayName;
+ return new OverriddenMember(element, className);
+ }
+
+ static OverriddenMember fromJson(Map<String, Object> json) {
+ Map<String, Object> elementJson = json[ELEMENT];
+ Element element = new Element.fromJson(elementJson);
+ String className = json[CLASS_NAME];
+ return new OverriddenMember(element, className);
+ }
+}
+
+
class Override implements HasToJson {
final int offset;
final int length;
- final Element superclassElement;
- final List<Element> interfaceElements;
+ final OverriddenMember superclassMember;
+ final List<OverriddenMember> interfaceMembers;
- Override(this.offset, this.length, this.superclassElement,
- this.interfaceElements);
+ Override(this.offset, this.length, this.superclassMember,
+ this.interfaceMembers);
- factory Override.fromJson(Map<String, Object> map) {
+ Map<String, Object> toJson() {
+ Map<String, Object> json = <String, Object>{};
+ json[OFFSET] = offset;
+ json[LENGTH] = length;
+ if (superclassMember != null) {
+ json[SUPER_CLASS_MEMBER] = superclassMember.toJson();
+ }
+ if (interfaceMembers != null && interfaceMembers.isNotEmpty) {
+ json[INTERFACE_MEMBERS] = objectToJson(interfaceMembers);
+ }
+ return json;
+ }
+
+ @override
+ String toString() => toJson().toString();
+
+ static Override fromJson(Map<String, Object> map) {
int offset = map[OFFSET];
int length = map[LENGTH];
// super
- Element superclassElement = null;
+ OverriddenMember superclassMember = null;
{
- Map<String, Object> superJson = map[SUPER_CLASS_ELEMENT];
+ Map<String, Object> superJson = map[SUPER_CLASS_MEMBER];
if (superJson != null) {
- superclassElement = new Element.fromJson(superJson);
+ superclassMember = OverriddenMember.fromJson(superJson);
}
}
// interfaces
- List<Element> interfaceElements = null;
+ List<OverriddenMember> interfaceElements = null;
{
- List<Map<String, Object>> jsonList = map[INTERFACE_ELEMENTS];
+ List<Map<String, Object>> jsonList = map[INTERFACE_MEMBERS];
if (jsonList != null) {
- interfaceElements = <Element>[];
- for (Map<String, Object> json in jsonList) {
- interfaceElements.add(new Element.fromJson(json));
- }
+ interfaceElements = jsonList.map(OverriddenMember.fromJson).toList();
}
}
// done
- return new Override(offset, length, superclassElement, interfaceElements);
+ return new Override(offset, length, superclassMember, interfaceElements);
}
-
- Map<String, Object> toJson() {
- Map<String, Object> json = <String, Object>{};
- json[OFFSET] = offset;
- json[LENGTH] = length;
- if (superclassElement != null) {
- json[SUPER_CLASS_ELEMENT] = superclassElement.toJson();
- }
- if (interfaceElements != null && interfaceElements.isNotEmpty) {
- json[INTERFACE_ELEMENTS] = interfaceElements.map((element) {
- return element.toJson();
- }).toList();
- }
- return json;
- }
-
- @override
- String toString() => toJson().toString();
}
« no previous file with comments | « no previous file | pkg/analysis_server/test/analysis_notification_overrides_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698