def make_methods(typ): methods = '' func_start = '.. java:function:: ' cls = device.get_category() + device.get_camel_case_name() for packet in device.get_packets('function'): if packet.get_doc()[0] != typ: continue ret_type = java_common.get_return_type(packet, True) name = packet.get_headless_camel_case_name() params = java_common.make_parameter_list(packet) desc = format_doc(packet, 1) obj_desc = make_object_desc(packet) func = '{0}public {1} {2}::{3}({4})\n{5}{6}'.format(func_start, ret_type, cls, name, params, desc, obj_desc) methods += func + '\n' return methods
def make_methods(): methods = '' method = """ \t/** \t * {8} \t */ \tpublic {0} {1}({2}) {3} {{ \t\tByteBuffer bb = ipcon.createRequestPacket((byte){4}, FUNCTION_{5}, this); {6} {7} \t}} """ method_response = """\t\tbyte[] response = sendRequest(bb.array()); \t\tbb = ByteBuffer.wrap(response, 8, response.length - 8); \t\tbb.order(ByteOrder.LITTLE_ENDIAN); {1} \t\treturn {2};""" method_noresponse = """\t\tsendRequest(bb.array());""" loop = """\t\tfor(int i = 0; i < {0}; i++) {{ {1} \t\t}} """ string_loop = """\t\ttry {{ \t\t{0} \t\t\t}} catch(Exception e) {{ \t\t\t\tbb.put((byte)0); \t\t\t}}""" cls = device.get_camel_case_name() for packet in device.get_packets('function'): options = 0 ret = java_common.get_return_type(packet) name_lower = packet.get_headless_camel_case_name() parameter = java_common.make_parameter_list(packet) size = str(packet.get_request_length()) name_upper = packet.get_upper_case_name() doc = format_doc(packet) bbputs = '' bbput = '\t\tbb.put{0}({1}{2});' for element in packet.get_elements('in'): name = common.underscore_to_headless_camel_case(element[0]) if element[1] == 'bool': name = '({0} ? 1 : 0)'.format(name) cast = '' put_java_type = get_put_java_type(element[1]) if put_java_type != java_common.get_java_type(element[1]): cast = '({0})'.format(put_java_type) bbput_format = bbput.format(get_put_type(element[1]), cast, name) if element[2] > 1: if element[1] == 'string': bbput_format = bbput_format.replace(');', '.charAt(i));') bbput_format = string_loop.format(bbput_format) else: bbput_format = bbput_format.replace(');', '[i]);') bbput_format = loop.format(element[2], '\t' + bbput_format) bbputs += bbput_format + '\n' throw = 'throws TimeoutException, NotConnectedException' if len(packet.get_elements('out')) == 0: bbgets = '' bbret = '' elif len(packet.get_elements('out')) > 1: bbgets, bbret = make_bbgets(packet, True) obj_name = java_common.get_object_name(packet) obj = '\t\t{0} obj = new {0}();\n'.format(obj_name) bbgets = obj + bbgets bbret = 'obj' else: bbgets, bbret = make_bbgets(packet, False) if len(packet.get_elements('out')) == 0: response = method_noresponse.format(name_upper) else: response = method_response.format(name_upper, bbgets, bbret) methods += method.format(ret, name_lower, parameter, throw, size, name_upper, bbputs, response, doc) return methods