OLD | NEW |
1 # Copyright 2014 The Chromium Authors. All rights reserved. | 1 # Copyright 2014 The Chromium Authors. All rights reserved. |
2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 """IDL type handling. | 4 """IDL type handling. |
5 | 5 |
6 Classes: | 6 Classes: |
7 IdlTypeBase | 7 IdlTypeBase |
8 IdlType | 8 IdlType |
9 IdlUnionType | 9 IdlUnionType |
10 IdlArrayOrSequenceType | 10 IdlArrayOrSequenceType |
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
173 return self.base_type in IdlType.dictionaries | 173 return self.base_type in IdlType.dictionaries |
174 | 174 |
175 @property | 175 @property |
176 def is_enum(self): | 176 def is_enum(self): |
177 # FIXME: add an IdlEnumType class and a resolve_enums step at end of | 177 # FIXME: add an IdlEnumType class and a resolve_enums step at end of |
178 # IdlDefinitions constructor | 178 # IdlDefinitions constructor |
179 return self.name in IdlType.enums | 179 return self.name in IdlType.enums |
180 | 180 |
181 @property | 181 @property |
182 def enum_values(self): | 182 def enum_values(self): |
183 return IdlType.enums[self.name] | 183 return IdlType.enums.get(self.name) |
184 | 184 |
185 @property | 185 @property |
186 def is_integer_type(self): | 186 def is_integer_type(self): |
187 return self.base_type in INTEGER_TYPES | 187 return self.base_type in INTEGER_TYPES |
188 | 188 |
189 @property | 189 @property |
190 def is_numeric_type(self): | 190 def is_numeric_type(self): |
191 return self.base_type in NUMERIC_TYPES | 191 return self.base_type in NUMERIC_TYPES |
192 | 192 |
193 @property | 193 @property |
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
338 self.element_type = state['element_type'] | 338 self.element_type = state['element_type'] |
339 | 339 |
340 def resolve_typedefs(self, typedefs): | 340 def resolve_typedefs(self, typedefs): |
341 self.element_type = self.element_type.resolve_typedefs(typedefs) | 341 self.element_type = self.element_type.resolve_typedefs(typedefs) |
342 return self | 342 return self |
343 | 343 |
344 @property | 344 @property |
345 def is_array_or_sequence_type(self): | 345 def is_array_or_sequence_type(self): |
346 return True | 346 return True |
347 | 347 |
| 348 @property |
| 349 def enum_values(self): |
| 350 return self.element_type.enum_values |
| 351 |
348 | 352 |
349 class IdlArrayType(IdlArrayOrSequenceType): | 353 class IdlArrayType(IdlArrayOrSequenceType): |
350 def __init__(self, element_type): | 354 def __init__(self, element_type): |
351 super(IdlArrayType, self).__init__(element_type) | 355 super(IdlArrayType, self).__init__(element_type) |
352 | 356 |
353 def __str__(self): | 357 def __str__(self): |
354 return '%s[]' % self.element_type | 358 return '%s[]' % self.element_type |
355 | 359 |
356 @property | 360 @property |
357 def name(self): | 361 def name(self): |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
402 def is_nullable(self): | 406 def is_nullable(self): |
403 return True | 407 return True |
404 | 408 |
405 @property | 409 @property |
406 def name(self): | 410 def name(self): |
407 return self.inner_type.name + 'OrNull' | 411 return self.inner_type.name + 'OrNull' |
408 | 412 |
409 def resolve_typedefs(self, typedefs): | 413 def resolve_typedefs(self, typedefs): |
410 self.inner_type = self.inner_type.resolve_typedefs(typedefs) | 414 self.inner_type = self.inner_type.resolve_typedefs(typedefs) |
411 return self | 415 return self |
OLD | NEW |