3 # Copyright (c) 2014 Intel Corporation. All rights reserved.
4 # Use of this source code is governed by a BSD-style license that can be
5 # found in the LICENSE file.
7 from string import Template
9 from code_generator import CodeGenerator
11 class InterfaceGenerator(CodeGenerator):
12 """Generator class that generates interfade code in wrapper layer"""
13 def __init__(self, java_data, class_loader):
14 super(InterfaceGenerator, self).__init__(java_data, class_loader)
17 self._generated_class_name = self._java_data.wrapper_name
18 self._generated_code = self.GenerateInterface()
20 def GenerateDoc(self, doc):
21 return self._class_loader.GenerateDoc(doc)
23 def GenerateInterface(self):
24 interface_template = Template("""
29 public interface ${INTERFACE_NAME} {
33 package_section = 'package %s;' % \
34 (self._java_data.package_name.replace('.internal', ''))
35 import_section = self.GenerateImportRules()
36 method_section = self.GenerateMethods()
37 interface_name = self._generated_class_name
38 value = {'PACKAGE_SECTION': package_section,
39 'IMPORT_SECTION': import_section,
40 'DOC': self.GenerateDoc(self._java_data.class_doc),
41 'INTERFACE_NAME': interface_name,
42 'METHOD_SECTION': method_section}
43 interface_code = interface_template.substitute(value)
46 def GenerateMethods(self):
48 for method in self._java_data.methods:
49 methods_string += method.GenerateMethodsStringForInterface()