def _generate_route_method_decl(<EOL>self, namespace, route, arg_data_type, request_binary_body,<EOL>method_name_suffix='<STR_LIT>', extra_args=None):
args = ['<STR_LIT>']<EOL>if extra_args:<EOL><INDENT>args += extra_args<EOL><DEDENT>if request_binary_body:<EOL><INDENT>args.append('<STR_LIT:f>')<EOL><DEDENT>if is_struct_type(arg_data_type):<EOL><INDENT>for field in arg_data_type.all_fields:<EOL><INDENT>if is_nullable_type(field.data_type):<EOL><INDENT>args.append('<STR_LIT>'.format(field.name))<EOL><DEDENT>elif field.has_default:<EOL><INDENT>if is_user_defined_type(field.data_type):<EOL><INDENT>ns = field.data_type.namespace<EOL><DEDENT>else:<EOL><INDENT>ns = None<EOL><DEDENT>arg = '<STR_LIT>'.format(<EOL>field.name,<EOL>self._generate_python_value(ns, field.default))<EOL>args.append(arg)<EOL><DEDENT>else:<EOL><INDENT>args.append(field.name)<EOL><DEDENT><DEDENT><DEDENT>elif is_union_type(arg_data_type):<EOL><INDENT>args.append('<STR_LIT>')<EOL><DEDENT>elif not is_void_type(arg_data_type):<EOL><INDENT>raise AssertionError('<STR_LIT>' %<EOL>arg_data_type)<EOL><DEDENT>method_name = fmt_func(route.name + method_name_suffix, version=route.version)<EOL>namespace_name = fmt_underscores(namespace.name)<EOL>self.generate_multiline_list(args, '<STR_LIT>'.format(namespace_name, method_name), '<STR_LIT::>')<EOL>
Generates the method prototype for a route.