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

Unified Diff: mojo/public/tools/bindings/generators/dart_templates/module_definition.tmpl

Issue 1433183002: Generate Mojom Types for Dart (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Simplify identifier_store for Go and Dart Created 5 years, 1 month 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
Index: mojo/public/tools/bindings/generators/dart_templates/module_definition.tmpl
diff --git a/mojo/public/tools/bindings/generators/dart_templates/module_definition.tmpl b/mojo/public/tools/bindings/generators/dart_templates/module_definition.tmpl
index c1669785120e7a7396f13051e0630082a2f1f164..8ea413694c152aba12f035688937bc5651faae7f 100644
--- a/mojo/public/tools/bindings/generators/dart_templates/module_definition.tmpl
+++ b/mojo/public/tools/bindings/generators/dart_templates/module_definition.tmpl
@@ -6,22 +6,63 @@ const {{constant.name}} = {{constant.value|expression_to_text}};
{#--- Enums #}
{%- from "enum_definition.tmpl" import enum_def %}
{%- for enum in enums %}
-{{ enum_def(enum) }}
+{{ enum_def(enum, typepkg, package) }}
{%- endfor %}
{#--- Struct definitions #}
{%- from "struct_definition.tmpl" import struct_def %}
{% for struct in structs %}
-{{ struct_def(struct) }}
+{{ struct_def(struct, typepkg, package) }}
{%- endfor -%}
{#--- Union definitions #}
{%- from "union_definition.tmpl" import union_def %}
{% for union in unions %}
-{{ union_def(union) }}
+{{ union_def(union, typepkg, package) }}
{%- endfor -%}
{#--- Interface definitions #}
+{% import "mojom_type_macros.tmpl" as mojom_type_macros %}
{%- for interface in interfaces -%}
{%- include "interface_definition.tmpl" %}
{%- endfor %}
+
+{% if should_gen_mojom_types -%}
+
+{% import "mojom_reference_macros.tmpl" as mojom_reference_macros %}
+
+
+{% set mapping = '_MojomDesc__' %}
zra 2015/11/24 17:34:44 Trailing underscores are a bit unusual in Dart cod
alexfandrianto 2015/12/18 01:53:19 Removed trailing underscores
+{% set temp_mapping = 'map' %}
+
+var {{mapping}} = _initDescriptions();
zra 2015/11/24 17:34:44 I find it a bit easier to read when globals like t
alexfandrianto 2015/12/18 01:53:19 Done.
+
+Map<String, {{typepkg}}UserDefinedType> _initDescriptions() {
zra 2015/11/24 17:34:44 In the generated code for this function there's a
alexfandrianto 2015/12/18 01:53:19 I've somehow reduced it a lot. More -'s help.
+ var {{temp_mapping}} = new Map<String, {{typepkg}}UserDefinedType>();
zra 2015/11/24 17:34:44 If it is not necessary to preserve iteration order
alexfandrianto 2015/12/18 01:53:19 I switched this to HashMap. To use it, I am now co
+
+{%- for enum in enums %}
+ {{mojom_reference_macros.registerType(temp_mapping, typepkg, package, enum)}}
+{%- endfor %}
+{%- for struct in structs %}
+ {{mojom_reference_macros.registerType(temp_mapping, typepkg, package, struct)}}
+{%- endfor %}
+{%- for union in unions %}
+ {{mojom_reference_macros.registerType(temp_mapping, typepkg, package, union)}}
+{%- endfor %}
+{%- for interface in interfaces %}
+ {{mojom_reference_macros.registerType(temp_mapping, typepkg, package, interface)}}
+{%- endfor %}
+
+{%- for import in imports %}
+{{import.unique_name}}.getAllMojomTypeDefinitions().forEach((String s, {{typepkg}}UserDefinedType udt) {
+ {{temp_mapping}}[s] = udt;
+});
+{%- endfor %}
+ return {{temp_mapping}};
+}
+
+Map<String, {{typepkg}}UserDefinedType> getAllMojomTypeDefinitions() {
+ return {{mapping}};
+}
+{%- endif %}
+

Powered by Google App Engine
This is Rietveld 408576698