| // Copyright 2015 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // WARNING: Do not edit - generated code. |
| part of dart.sky; |
| |
| {% macro args_macro(args) -%} |
| {%- for arg in args -%} |
| {%- if arg.is_optional and (loop.first or not args[arg.index-1].is_optional) -%} |
| {{ '{' if arg.is_named else '[' }} |
| {%- endif -%} |
| {{ arg.dart_type }} {{ arg.name }} |
| {%- if arg.is_optional %} {{ ':' if arg.is_named else '='}} {{ arg.dart_default_value }} |
| {#- TODO(eseidel): This does not support having both optional and named arguments! -#} |
| {%- if loop.last -%}{{ '}' if arg.is_named else ']' }}{%- endif -%} |
| {%- endif -%} |
| {%- if not loop.last %}, {% endif %} |
| {%- endfor -%} |
| {%- endmacro -%} |
| |
| {% if not constructors and not custom_constructors %}abstract {% endif -%} |
| class {{interface_name}} extends {{ parent_interface if parent_interface else 'NativeFieldWrapperClass2' }} { |
| // Constructors |
| {# TODO(eseidel): We only ever have one constructor. #} |
| {%- for constructor in constructors + custom_constructors %} |
| void _constructor( |
| {%- for arg in constructor.arguments -%} |
| {{ arg.dart_type }} {{ arg.name }}{% if not loop.last %}, {% endif %} |
| {%- endfor -%} |
| ) native "{{interface_name}}_constructorCallback"; |
| {{interface_name}}({{ args_macro(constructor.arguments) }}) { _constructor( |
| {%- for arg in constructor.arguments -%} |
| {{ arg.name }}{% if not loop.last %}, {% endif %} |
| {%- endfor -%} |
| ); } |
| {% endfor %} |
| |
| // Attributes |
| {% for attribute in attributes %} |
| {{ attribute.dart_type }} get {{ attribute.name }} native "{{interface_name}}_{{ attribute.name }}_Getter"; |
| {% if not attribute.is_read_only %} |
| void set {{ attribute.name }}({{ attribute.dart_type }} value) native "{{interface_name}}_{{ attribute.name }}_Setter"; |
| {% endif %} |
| {% endfor %} |
| |
| // Methods |
| {% for method in methods %} |
| {{method.dart_type}} {{method.name}}({{ args_macro(method.arguments)}}) native "{{interface_name}}_{{ method.name }}_Callback"; |
| {% endfor %} |
| |
| // Operators |
| {% if named_property_getter %} |
| String operator[](String name) native "{{interface_name}}___getter___Callback"; |
| {% endif %} |
| {% if named_property_setter %} |
| void operator[]=(String name, String value) native "{{interface_name}}___setter___Callback"; |
| {% endif %} |
| } |