| OLD | NEW |
| 1 # Copyright 2014 The Chromium Authors. All rights reserved. | 1 # Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 | 4 |
| 5 """Generates java source files from a mojom.Module.""" | 5 """Generates java source files from a mojom.Module.""" |
| 6 | 6 |
| 7 import argparse | 7 import argparse |
| 8 import ast | 8 import ast |
| 9 import contextlib | 9 import contextlib |
| 10 import os | 10 import os |
| (...skipping 479 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 490 self.Write(self.GenerateInterfaceInternalSource(interface), | 490 self.Write(self.GenerateInterfaceInternalSource(interface), |
| 491 '%s_Internal.java' % GetNameForElement(interface)) | 491 '%s_Internal.java' % GetNameForElement(interface)) |
| 492 | 492 |
| 493 if self.module.constants: | 493 if self.module.constants: |
| 494 self.Write(self.GenerateConstantsSource(self.module), | 494 self.Write(self.GenerateConstantsSource(self.module), |
| 495 '%s.java' % GetConstantsMainEntityName(self.module)) | 495 '%s.java' % GetConstantsMainEntityName(self.module)) |
| 496 | 496 |
| 497 def GenerateFiles(self, unparsed_args): | 497 def GenerateFiles(self, unparsed_args): |
| 498 parser = argparse.ArgumentParser() | 498 parser = argparse.ArgumentParser() |
| 499 parser.add_argument('--java_output_directory', dest='java_output_directory') | 499 parser.add_argument('--java_output_directory', dest='java_output_directory') |
| 500 parser.add_argument('--generate_type_info', dest='generate_type_info', |
| 501 action="store_true") |
| 500 args = parser.parse_args(unparsed_args) | 502 args = parser.parse_args(unparsed_args) |
| 501 package_path = GetPackage(self.module).replace('.', '/') | 503 package_path = GetPackage(self.module).replace('.', '/') |
| 502 | 504 |
| 503 # Generate the java files in a temporary directory and place a single | 505 # Generate the java files in a temporary directory and place a single |
| 504 # srcjar in the output directory. | 506 # srcjar in the output directory. |
| 505 basename = self.MatchMojomFilePath("%s.srcjar" % self.module.name) | 507 basename = self.MatchMojomFilePath("%s.srcjar" % self.module.name) |
| 506 zip_filename = os.path.join(self.output_dir, basename) | 508 zip_filename = os.path.join(self.output_dir, basename) |
| 507 with TempDir() as temp_java_root: | 509 with TempDir() as temp_java_root: |
| 508 self.output_dir = os.path.join(temp_java_root, package_path) | 510 self.output_dir = os.path.join(temp_java_root, package_path) |
| 509 self.DoGenerateFiles(); | 511 self.DoGenerateFiles(); |
| 510 ZipContentInto(temp_java_root, zip_filename) | 512 ZipContentInto(temp_java_root, zip_filename) |
| 511 | 513 |
| 512 if args.java_output_directory: | 514 if args.java_output_directory: |
| 513 # If requested, generate the java files directly into indicated directory. | 515 # If requested, generate the java files directly into indicated directory. |
| 514 self.output_dir = os.path.join(args.java_output_directory, package_path) | 516 self.output_dir = os.path.join(args.java_output_directory, package_path) |
| 515 self.DoGenerateFiles(); | 517 self.DoGenerateFiles(); |
| 516 | 518 |
| 517 def GetJinjaParameters(self): | 519 def GetJinjaParameters(self): |
| 518 return { | 520 return { |
| 519 'lstrip_blocks': True, | 521 'lstrip_blocks': True, |
| 520 'trim_blocks': True, | 522 'trim_blocks': True, |
| 521 } | 523 } |
| 522 | 524 |
| 523 def GetGlobals(self): | 525 def GetGlobals(self): |
| 524 return { | 526 return { |
| 525 'namespace': self.module.namespace, | 527 'namespace': self.module.namespace, |
| 526 'module': self.module, | 528 'module': self.module, |
| 527 } | 529 } |
| OLD | NEW |