OLD | NEW |
1 {% from "constant_definition.tmpl" import constant_def %} | 1 {% from "constant_definition.tmpl" import constant_def %} |
2 {% from "enum_definition.tmpl" import enum_def %} | 2 {% from "enum_definition.tmpl" import enum_def %} |
3 | 3 |
4 {%- macro inequality(kind, v1, v2) -%} | |
5 {%- if kind|is_reference_kind -%} | |
6 {%- if kind|is_array_kind -%} | |
7 {%- if kind.kind|is_reference_kind -%} | |
8 !java.util.Arrays.deepEquals({{v1}}, {{v2}}) | |
9 {%- else -%} | |
10 !java.util.Arrays.equals({{v1}}, {{v2}}) | |
11 {%- endif -%} | |
12 {%- else -%} | |
13 !org.chromium.mojo.bindings.BindingsHelper.equals({{v1}}, {{v2}}) | |
14 {%- endif -%} | |
15 {%- else -%} | |
16 {{v1}} != {{v2}} | |
17 {%- endif -%} | |
18 {%- endmacro -%} | |
19 | |
20 {%- macro hash(kind, v) -%} | |
21 {%- if kind|is_array_kind -%} | |
22 {%- if kind.kind|is_reference_kind -%} | |
23 java.util.Arrays.deepHashCode({{v}}) | |
24 {%- else -%} | |
25 java.util.Arrays.hashCode({{v}}) | |
26 {%- endif -%} | |
27 {%- else -%} | |
28 org.chromium.mojo.bindings.BindingsHelper.hashCode({{v}}) | |
29 {%- endif -%} | |
30 {%- endmacro -%} | |
31 | |
32 {% macro encode(variable, kind, offset, bit, level=0, check_for_null=True) %} | 4 {% macro encode(variable, kind, offset, bit, level=0, check_for_null=True) %} |
33 {% if kind|is_pointer_array_kind %} | 5 {% if kind|is_pointer_array_kind %} |
34 {% set sub_kind = kind.kind %} | 6 {% set sub_kind = kind.kind %} |
35 {% if check_for_null %} | 7 {% if check_for_null %} |
36 if ({{variable}} == null) { | 8 if ({{variable}} == null) { |
37 encoder{{level}}.encodeNullPointer({{offset}}, {{kind|is_nullable_kind|java_
true_false}}); | 9 encoder{{level}}.encodeNullPointer({{offset}}, {{kind|is_nullable_kind|java_
true_false}}); |
38 } else { | 10 } else { |
39 {% else %} | 11 {% else %} |
40 { | 12 { |
41 {% endif %} | 13 {% endif %} |
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
168 encoder.getEncoderAtDataOffset(DEFAULT_STRUCT_INFO); | 140 encoder.getEncoderAtDataOffset(DEFAULT_STRUCT_INFO); |
169 {% else %} | 141 {% else %} |
170 org.chromium.mojo.bindings.Encoder encoder0 = encoder.getEncoderAtDataOf
fset(DEFAULT_STRUCT_INFO); | 142 org.chromium.mojo.bindings.Encoder encoder0 = encoder.getEncoderAtDataOf
fset(DEFAULT_STRUCT_INFO); |
171 {% endif %} | 143 {% endif %} |
172 {% for byte in struct.bytes %} | 144 {% for byte in struct.bytes %} |
173 {% for packed_field in byte.packed_fields %} | 145 {% for packed_field in byte.packed_fields %} |
174 {{encode(packed_field.field|name, packed_field.field.kind, 8+packed_fiel
d.offset, packed_field.bit)|indent(8)}} | 146 {{encode(packed_field.field|name, packed_field.field.kind, 8+packed_fiel
d.offset, packed_field.bit)|indent(8)}} |
175 {% endfor %} | 147 {% endfor %} |
176 {% endfor %} | 148 {% endfor %} |
177 } | 149 } |
178 | |
179 /** | |
180 * @see Object#equals(Object) | |
181 */ | |
182 @Override | |
183 public boolean equals(Object object) { | |
184 if (object == this) | |
185 return true; | |
186 if (object == null) | |
187 return false; | |
188 if (getClass() != object.getClass()) | |
189 return false; | |
190 {{struct|name}} other = ({{struct|name}}) object; | |
191 {% for field in struct.fields %} | |
192 if ({{inequality(field.kind, field|name, 'other.'~field|name)}}) | |
193 return false; | |
194 {% endfor %} | |
195 return true; | |
196 } | |
197 | |
198 /** | |
199 * @see Object#hashCode() | |
200 */ | |
201 @Override | |
202 public int hashCode() { | |
203 final int prime = 31; | |
204 int result = 1; | |
205 {% for field in struct.fields %} | |
206 result = prime * result + {{hash(field.kind, field|name)}}; | |
207 {% endfor %} | |
208 return result; | |
209 } | |
210 } | 150 } |
211 {% endmacro %} | 151 {% endmacro %} |
OLD | NEW |