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

Unified Diff: packages/analyzer/tool/summary/idl_model.dart

Issue 2990843002: Removed fixed dependencies (Closed)
Patch Set: Created 3 years, 5 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 | « packages/analyzer/tool/summary/generate.dart ('k') | packages/analyzer/tool/summary/inspect.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: packages/analyzer/tool/summary/idl_model.dart
diff --git a/packages/analyzer/tool/summary/idl_model.dart b/packages/analyzer/tool/summary/idl_model.dart
new file mode 100644
index 0000000000000000000000000000000000000000..375dcb259f1ecf59db0da82e4cc74e0d5e6e7797
--- /dev/null
+++ b/packages/analyzer/tool/summary/idl_model.dart
@@ -0,0 +1,144 @@
+// Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/**
+ * This file contains a set of concrete classes representing an in-memory
+ * semantic model of the IDL used to code generate summary serialization and
+ * deserialization code.
+ */
+library analyzer.tool.summary.idl_model;
+
+/**
+ * Information about a single class defined in the IDL.
+ */
+class ClassDeclaration extends Declaration {
+ /**
+ * All fields defined in the class, including deprecated ones.
+ */
+ final List<FieldDeclaration> allFields = <FieldDeclaration>[];
+
+ /**
+ * Indicates whether the class has the `topLevel` annotation.
+ */
+ final bool isTopLevel;
+
+ /**
+ * If [isTopLevel] is `true` and a file identifier was specified for this
+ * class, the file identifier string. Otherwise `null`.
+ */
+ final String fileIdentifier;
+
+ ClassDeclaration(
+ String documentation, String name, this.isTopLevel, this.fileIdentifier)
+ : super(documentation, name);
+
+ /**
+ * Get the non-deprecated fields defined in the class.
+ */
+ Iterable<FieldDeclaration> get fields =>
+ allFields.where((FieldDeclaration field) => !field.isDeprecated);
+}
+
+/**
+ * Information about a declaration in the IDL.
+ */
+class Declaration {
+ /**
+ * The optional documentation, may be `null`.
+ */
+ final String documentation;
+
+ /**
+ * The name of the declaration.
+ */
+ final String name;
+
+ Declaration(this.documentation, this.name);
+}
+
+/**
+ * Information about a single enum defined in the IDL.
+ */
+class EnumDeclaration extends Declaration {
+ /**
+ * List of enumerated values.
+ */
+ final List<EnumValueDeclaration> values = <EnumValueDeclaration>[];
+
+ EnumDeclaration(String documentation, String name)
+ : super(documentation, name);
+}
+
+/**
+ * Information about a single enum value defined in the IDL.
+ */
+class EnumValueDeclaration extends Declaration {
+ EnumValueDeclaration(String documentation, String name)
+ : super(documentation, name);
+}
+
+/**
+ * Information about a single class field defined in the IDL.
+ */
+class FieldDeclaration extends Declaration {
+ /**
+ * The file of the field.
+ */
+ final FieldType type;
+
+ /**
+ * The id of the field.
+ */
+ final int id;
+
+ /**
+ * Indicates whether the field is deprecated.
+ */
+ final bool isDeprecated;
+
+ /**
+ * Indicates whether the field is informative.
+ */
+ final bool isInformative;
+
+ FieldDeclaration(String documentation, String name, this.type, this.id,
+ this.isDeprecated, this.isInformative)
+ : super(documentation, name);
+}
+
+/**
+ * Information about the type of a class field defined in the IDL.
+ */
+class FieldType {
+ /**
+ * Type of the field (e.g. 'int').
+ */
+ final String typeName;
+
+ /**
+ * Indicates whether this field contains a list of the type specified in
+ * [typeName].
+ */
+ final bool isList;
+
+ FieldType(this.typeName, this.isList);
+
+ @override
+ String toString() => isList ? 'List<$typeName>' : typeName;
+}
+
+/**
+ * Top level representation of the summary IDL.
+ */
+class Idl {
+ /**
+ * Classes defined in the IDL.
+ */
+ final Map<String, ClassDeclaration> classes = <String, ClassDeclaration>{};
+
+ /**
+ * Enums defined in the IDL.
+ */
+ final Map<String, EnumDeclaration> enums = <String, EnumDeclaration>{};
+}
« no previous file with comments | « packages/analyzer/tool/summary/generate.dart ('k') | packages/analyzer/tool/summary/inspect.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698