#!/usr/bin/env python
"""Generate annotated_java_files.bp from a jaif file."""
import os
PACKAGE_STRING = 'package '
CLASS_STRING = 'class '
SRC_PREFIX = 'ojluni/src/main/java/'
BP_TEMPLATE = '''filegroup {
name: "annotated_ojluni_files",
export_to_make_var: "annotated_ojluni_files",
srcs: [
%s
],
}'''
srcs_list = set()
current_package = None
with open(os.sys.argv[1], 'r') as jaif_file:
for line in jaif_file:
if line.startswith(PACKAGE_STRING):
current_package = line[len(PACKAGE_STRING): line.find(':')]
if line.startswith(CLASS_STRING) and current_package is not None:
current_class = line[len(CLASS_STRING): line.find(':')]
# In case of nested classes, discard substring after nested class name separator
nested_class_separator_index = current_class.find('$')
if nested_class_separator_index != -1:
current_class = current_class[:nested_class_separator_index]
srcs_list.add(SRC_PREFIX + current_package.replace('.', '/') + '/' + current_class + '.java')
print '// Do not edit; generated using libcore/annotations/generate_annotated_java_files.py'
print BP_TEMPLATE % ('\n'.join([' "' + src_entry + '",' for src_entry in sorted(srcs_list)]),)
os.sys.exit(0)