1#!/usr/bin/env python
2
3"""Generate annotated_java_files.bp from a jaif file."""
4import os
5
6PACKAGE_STRING = 'package '
7CLASS_STRING = 'class '
8SRC_PREFIX = 'ojluni/src/main/java/'
9
10BP_TEMPLATE = '''filegroup {
11    name: "annotated_ojluni_files",
12    export_to_make_var: "annotated_ojluni_files",
13    srcs: [
14%s
15    ],
16}'''
17
18srcs_list = set()
19current_package = None
20with open(os.sys.argv[1], 'r') as jaif_file:
21  for line in jaif_file:
22    if line.startswith(PACKAGE_STRING):
23      current_package = line[len(PACKAGE_STRING): line.find(':')]
24    if line.startswith(CLASS_STRING) and current_package is not None:
25      current_class = line[len(CLASS_STRING): line.find(':')]
26
27      # In case of nested classes, discard substring after nested class name separator
28      nested_class_separator_index = current_class.find('$')
29      if nested_class_separator_index != -1:
30        current_class = current_class[:nested_class_separator_index]
31
32      srcs_list.add(SRC_PREFIX + current_package.replace('.', '/') + '/' + current_class + '.java')
33
34print '// Do not edit; generated using libcore/annotations/generate_annotated_java_files.py'
35print BP_TEMPLATE % ('\n'.join(['        "' + src_entry + '",' for src_entry in sorted(srcs_list)]),)
36os.sys.exit(0)
37