1 """Generate the org.chromium.mojo.bindings.Callbacks interface"""
6 CALLBACK_TEMPLATE
= ("""
8 * A generic %d-argument callback.
12 interface Callback%d<%s> {
20 INTERFACE_TEMPLATE
= (
21 """// Copyright 2014 The Chromium Authors. All rights reserved.
22 // Use of this source code is governed by a BSD-style license that can be
23 // found in the LICENSE file.
25 // This file was generated using
26 // mojo/tools/generate_java_callback_interfaces.py
28 package org.chromium.mojo.bindings;
31 * Contains a generic interface for callbacks.
33 public interface Callbacks {
47 def GenerateCallback(nb_args
):
48 params
= '\n * '.join(
49 ['@param <T%d> the type of argument %d.' % (i
+1, i
+1)
50 for i
in xrange(nb_args
)])
51 template_parameters
= ', '.join(['T%d' % (i
+1) for i
in xrange(nb_args
)])
52 callback_parameters
= ', '.join(['T%d arg%d' % ((i
+1), (i
+1))
53 for i
in xrange(nb_args
)])
54 return CALLBACK_TEMPLATE
% (nb_args
, params
, nb_args
, template_parameters
,
58 parser
= argparse
.ArgumentParser(
59 description
="Generate org.chromium.mojo.bindings.Callbacks")
60 parser
.add_argument("max_args", nargs
=1, type=int,
61 help="maximal number of arguments to generate callbacks for")
62 args
= parser
.parse_args()
63 max_args
= args
.max_args
[0]
64 print INTERFACE_TEMPLATE
% ''.join([GenerateCallback(i
+1)
65 for i
in xrange(max_args
)])
68 if __name__
== "__main__":