| Index: mojo/public/tools/bindings/generators/mojom_java_generator.py
|
| diff --git a/mojo/public/tools/bindings/generators/mojom_java_generator.py b/mojo/public/tools/bindings/generators/mojom_java_generator.py
|
| index 2320dbaf983cb7431fa54599e638a65b6e8f5162..554db742aa085fca26985b6b01b841c7a5bb76c2 100644
|
| --- a/mojo/public/tools/bindings/generators/mojom_java_generator.py
|
| +++ b/mojo/public/tools/bindings/generators/mojom_java_generator.py
|
| @@ -346,7 +346,13 @@ def IsPointerArrayKind(kind):
|
| if not mojom.IsArrayKind(kind):
|
| return False
|
| sub_kind = kind.kind
|
| - return mojom.IsObjectKind(sub_kind)
|
| + return mojom.IsObjectKind(sub_kind) and not mojom.IsUnionKind(sub_kind)
|
| +
|
| +def IsUnionArrayKind(kind):
|
| + if not mojom.IsArrayKind(kind):
|
| + return False
|
| + sub_kind = kind.kind
|
| + return mojom.IsUnionKind(sub_kind)
|
|
|
| def GetConstantsMainEntityName(module):
|
| if module.attributes and 'JavaConstantsClassName' in module.attributes:
|
| @@ -408,12 +414,14 @@ class Generator(generator.Generator):
|
| 'is_pointer_array_kind': IsPointerArrayKind,
|
| 'is_reference_kind': mojom.IsReferenceKind,
|
| 'is_struct_kind': mojom.IsStructKind,
|
| + 'is_union_array_kind': IsUnionArrayKind,
|
| 'is_union_kind': mojom.IsUnionKind,
|
| 'java_true_false': GetJavaTrueFalse,
|
| 'java_type': GetJavaType,
|
| 'method_ordinal_name': GetMethodOrdinalName,
|
| 'name': GetNameForElement,
|
| 'new_array': NewArray,
|
| + 'ucc': lambda x: UpperCamelCase(x.name),
|
| }
|
|
|
| def GetJinjaExports(self):
|
| @@ -438,6 +446,12 @@ class Generator(generator.Generator):
|
| exports.update({'struct': struct})
|
| return exports
|
|
|
| + @UseJinja('java_templates/union.java.tmpl', filters=java_filters)
|
| + def GenerateUnionSource(self, union):
|
| + exports = self.GetJinjaExports()
|
| + exports.update({'union': union})
|
| + return exports
|
| +
|
| @UseJinja('java_templates/interface.java.tmpl', filters=java_filters)
|
| def GenerateInterfaceSource(self, interface):
|
| return self.GetJinjaExportsForInterface(interface)
|
| @@ -462,6 +476,10 @@ class Generator(generator.Generator):
|
| self.Write(self.GenerateStructSource(struct),
|
| '%s.java' % GetNameForElement(struct))
|
|
|
| + for union in self.module.unions:
|
| + self.Write(self.GenerateUnionSource(union),
|
| + '%s.java' % GetNameForElement(union))
|
| +
|
| for enum in self.module.enums:
|
| self.Write(self.GenerateEnumSource(enum),
|
| '%s.java' % GetNameForElement(enum))
|
|
|