| Index: Source/bindings/scripts/idl_types.py
|
| diff --git a/Source/bindings/scripts/idl_types.py b/Source/bindings/scripts/idl_types.py
|
| index fa7d00b7f434737f3a2c60d5178752a41ac1962f..e4be490a95c46eb30a6161e8b1ed0453f7895ecf 100644
|
| --- a/Source/bindings/scripts/idl_types.py
|
| +++ b/Source/bindings/scripts/idl_types.py
|
| @@ -273,6 +273,28 @@ class IdlUnionType(IdlTypeBase):
|
| def is_union_type(self):
|
| return True
|
|
|
| + def single_matching_member_type(self, predicate):
|
| + matching_types = filter(predicate, self.member_types)
|
| + if len(matching_types) > 1:
|
| + raise "%s is ambigious." % self.name
|
| + return matching_types[0] if matching_types else None
|
| +
|
| + @property
|
| + def string_member_type(self):
|
| + return self.single_matching_member_type(
|
| + lambda member_type: (member_type.is_string_type or
|
| + member_type.is_enum))
|
| +
|
| + @property
|
| + def numeric_member_type(self):
|
| + return self.single_matching_member_type(
|
| + lambda member_type: member_type.is_numeric_type)
|
| +
|
| + @property
|
| + def boolean_member_type(self):
|
| + return self.single_matching_member_type(
|
| + lambda member_type: member_type.base_type == 'boolean')
|
| +
|
| @property
|
| def as_union_type(self):
|
| # Note: Use this to "look through" a possible IdlNullableType wrapper.
|
|
|