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

Unified Diff: mojo/public/tools/bindings/generators/java_templates/java_macros.tmpl

Issue 291903003: Generate java bindings for constants. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add private constructor to constants class. Created 6 years, 7 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
Index: mojo/public/tools/bindings/generators/java_templates/java_macros.tmpl
diff --git a/mojo/public/tools/bindings/generators/java_templates/java_macros.tmpl b/mojo/public/tools/bindings/generators/java_templates/java_macros.tmpl
new file mode 100644
index 0000000000000000000000000000000000000000..c677ed8f9472079924b53729a4b35317524bb37a
--- /dev/null
+++ b/mojo/public/tools/bindings/generators/java_templates/java_macros.tmpl
@@ -0,0 +1,23 @@
+{% macro build_default(module, kind, value) %}
+{% if kind|is_string_kind %}
+{{value|expression_to_text(module)}}
+{% elif kind|is_array_kind %}
+{% set _ = value|verify_token_type("ARRAY") %}
+new {{kind.kind|java_type}}[] {
+{% for element in value[1] %}
+ {{build_default(module, kind.kind, element)|indent(4)}}{%- if not loop.last %}, {% endif %}
+
+{% endfor %}
+}
+{% elif kind|is_object_kind %}
+{% set _ = value|verify_token_type("OBJECT") %}
+ {{kind|java_type}}.newBuilder()
+{% for element in value[1] %}
+{% set subfield = kind.fields[loop.index0] %}
+ .set{{subfield.name|camelcase|capitalize_first}}({{build_default(module, subfield.kind, element)|indent(8)}})
+{% endfor %}
+ .build()
+{% else %}
+({{kind|java_type}}) {{value|expression_to_text(module)}}
+{% endif %}
+{% endmacro %}

Powered by Google App Engine
This is Rietveld 408576698