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

Side by Side 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: 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 {% macro set_default(variable, module, kind, value, depth=0) %}
2 {% if kind|is_string_kind %}
3 {{variable}} = {{value|expression_to_text(module)}};
4 {% elif kind|is_array_kind %}
5 {% set _ = value|verify_token_type("ARRAY") %}
6 {{variable}} = {{kind|new_array(value[1]|length)}};
7 {% for element in value[1] -%}
8 {{set_default(variable~'['~loop.index0~']', module, kind.kind, element, depth+1) }}
9 {%- endfor %}
10 {% elif kind|is_object_kind %}
11 {% set _ = value|verify_token_type("OBJECT") %}
12 {{kind|java_type}}.Builder tmp{{depth}} = {{kind|java_type}}.newBuilder();
13 {% for element in value[1] %}
14 {% set subfield = kind.fields[loop.index0] %}
15 {
16 {{subfield.kind|java_type}} tmp{{depth+1}};
17 {{set_default('tmp'~(depth+1), module, subfield.kind, element, depth+2)|inde nt(4)}}
18 tmp{{depth}}.set{{subfield.name|camelcase|capitalize_first}}(tmp{{depth+1}}) ;
19 }
20 {% endfor %}
21 {{variable}} = tmp{{depth}}.build();
22 {% else %}
23 {{variable}} = ({{kind|java_type}}) {{value|expression_to_text(module)}};
24 {% endif %}
25 {% endmacro %}
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698