Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(119)

Side by Side Diff: base/android/jni_generator/jni_generator.py

Issue 12255042: [Android] Introduce a Java wrapper for TemplateUrlService. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: bulach again Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | chrome/android/java/src/org/chromium/chrome/browser/search_engines/TemplateUrlService.java » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 """Extracts native methods from a Java file and generates the JNI bindings. 6 """Extracts native methods from a Java file and generates the JNI bindings.
7 If you change this, please run and update the tests.""" 7 If you change this, please run and update the tests."""
8 8
9 import collections 9 import collections
10 import optparse 10 import optparse
(...skipping 405 matching lines...) Expand 10 before | Expand all | Expand 10 after
416 line1, line2) 416 line1, line2)
417 return MangleCalledByNatives(called_by_natives) 417 return MangleCalledByNatives(called_by_natives)
418 418
419 419
420 class JNIFromJavaP(object): 420 class JNIFromJavaP(object):
421 """Uses 'javap' to parse a .class file and generate the JNI header file.""" 421 """Uses 'javap' to parse a .class file and generate the JNI header file."""
422 422
423 def __init__(self, contents, namespace): 423 def __init__(self, contents, namespace):
424 self.contents = contents 424 self.contents = contents
425 self.namespace = namespace 425 self.namespace = namespace
426 self.fully_qualified_class = re.match('.*?class (?P<class_name>.*?) ', 426 self.fully_qualified_class = re.match(
427 contents[1]).group('class_name') 427 '.*?(class|interface) (?P<class_name>.*?)( |{)',
428 contents[1]).group('class_name')
428 self.fully_qualified_class = self.fully_qualified_class.replace('.', '/') 429 self.fully_qualified_class = self.fully_qualified_class.replace('.', '/')
429 JniParams.SetFullyQualifiedClass(self.fully_qualified_class) 430 JniParams.SetFullyQualifiedClass(self.fully_qualified_class)
430 self.java_class_name = self.fully_qualified_class.split('/')[-1] 431 self.java_class_name = self.fully_qualified_class.split('/')[-1]
431 if not self.namespace: 432 if not self.namespace:
432 self.namespace = 'JNI_' + self.java_class_name 433 self.namespace = 'JNI_' + self.java_class_name
433 re_method = re.compile('(?P<prefix>.*?)(?P<return_type>\S+?) (?P<name>\w+?)' 434 re_method = re.compile('(?P<prefix>.*?)(?P<return_type>\S+?) (?P<name>\w+?)'
434 '\((?P<params>.*?)\)') 435 '\((?P<params>.*?)\)')
435 self.called_by_natives = [] 436 self.called_by_natives = []
436 for content in contents[2:]: 437 for content in contents[2:]:
437 match = re.match(re_method, content) 438 match = re.match(re_method, content)
(...skipping 580 matching lines...) Expand 10 before | Expand all | Expand 10 after
1018 output_file = None 1019 output_file = None
1019 if options.output_dir: 1020 if options.output_dir:
1020 root_name = os.path.splitext(os.path.basename(input_file))[0] 1021 root_name = os.path.splitext(os.path.basename(input_file))[0]
1021 output_file = os.path.join(options.output_dir, root_name) + '_jni.h' 1022 output_file = os.path.join(options.output_dir, root_name) + '_jni.h'
1022 GenerateJNIHeader(input_file, output_file, options.namespace, 1023 GenerateJNIHeader(input_file, output_file, options.namespace,
1023 options.optimize_generation) 1024 options.optimize_generation)
1024 1025
1025 1026
1026 if __name__ == '__main__': 1027 if __name__ == '__main__':
1027 sys.exit(main(sys.argv)) 1028 sys.exit(main(sys.argv))
OLDNEW
« no previous file with comments | « no previous file | chrome/android/java/src/org/chromium/chrome/browser/search_engines/TemplateUrlService.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698