chromium/third_party/jni_zero/codegen/placeholder_gen_jni_java.py

# Copyright 2023 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.


def Generate(jni_objs, *, gen_jni_class, script_name):
  sb = []
  sb.append(f"""\
//
// This file is a placeholder. It was generated by {script_name}
//

package {gen_jni_class.package_with_dots};

public class {gen_jni_class.name} {{
  public static boolean TESTING_ENABLED;
  public static boolean REQUIRE_MOCK;
""")

  for jni_obj in jni_objs:
    for native in jni_obj.proxy_natives:
      sig_params = native.proxy_params.to_java_declaration()
      sb.append(f"""
  public static native {native.proxy_return_type.to_java()} {native.proxy_name}\
({sig_params});""")

  sb.append('\n}\n')
  return ''.join(sb)