def _generate_conversions_for_command(self, domain, command):
        lines = []
        if command.call_parameters:
            lines.append("")

        def in_param_expression(param_name, parameter):
            _type = parameter.type
            if isinstance(_type, AliasedType):
                _type = _type.aliased_type  # Fall through to enum or primitive.
            if isinstance(_type, EnumType):
                _type = _type.primitive_type  # Fall through to primitive.
            if isinstance(_type, PrimitiveType):
                if _type.raw_name() in ["array", "any", "object"]:
                    return "&%s" % param_name if not parameter.is_optional else param_name
                return "*%s" % param_name if parameter.is_optional else param_name
            return "&%s" % param_name if not parameter.is_optional else param_name

        for parameter in command.call_parameters:
            in_param_name = "in_%s" % parameter.parameter_name
            objc_in_param_name = "o_%s" % in_param_name
            objc_type = ObjCGenerator.objc_type_for_param(domain, command.command_name, parameter, False)
            param_expression = in_param_expression(in_param_name, parameter)
            import_expression = ObjCGenerator.objc_protocol_import_expression_for_parameter(
                param_expression, domain, command.command_name, parameter
            )
            if not parameter.is_optional:
                lines.append("    %s = %s;" % (join_type_and_name(objc_type, objc_in_param_name), import_expression))
            else:
                lines.append("    %s;" % join_type_and_name(objc_type, objc_in_param_name))
                lines.append("    if (%s)" % in_param_name)
                lines.append("        %s = %s;" % (objc_in_param_name, import_expression))

        if lines:
            lines.append("")
        return "\n".join(lines)
    def _generate_conversions_for_command(self, domain, command):
        lines = []
        if command.call_parameters:
            lines.append('')

        def in_param_expression(param_name, parameter):
            _type = parameter.type
            if isinstance(_type, AliasedType):
                _type = _type.aliased_type  # Fall through to enum or primitive.
            if isinstance(_type, EnumType):
                _type = _type.primitive_type  # Fall through to primitive.
            if isinstance(_type, PrimitiveType):
                return '*%s' % param_name if parameter.is_optional else param_name
            return '%s.copyRef()' % param_name

        for parameter in command.call_parameters:
            in_param_name = 'in_%s' % parameter.parameter_name
            objc_in_param_name = 'o_%s' % in_param_name
            objc_type = ObjCGenerator.objc_type_for_param(domain, command.command_name, parameter, False)
            param_expression = in_param_expression(in_param_name, parameter)
            import_expression = ObjCGenerator.objc_protocol_import_expression_for_parameter(param_expression, domain, command.command_name, parameter)
            if not parameter.is_optional:
                lines.append('    %s = %s;' % (join_type_and_name(objc_type, objc_in_param_name), import_expression))
            else:
                lines.append('    %s;' % join_type_and_name(objc_type, objc_in_param_name))
                lines.append('    if (%s)' % in_param_name)
                lines.append('        %s = %s;' % (objc_in_param_name, import_expression))

        if lines:
            lines.append('')
        return '\n'.join(lines)
    def _generate_conversions_for_command(self, domain, command):
        lines = []
        if command.call_parameters:
            lines.append('')

        for parameter in command.call_parameters:
            in_param_name = 'in_%s' % parameter.parameter_name
            objc_in_param_name = 'o_%s' % in_param_name
            objc_type = ObjCGenerator.objc_type_for_param(domain, command.command_name, parameter, False)
            in_param_optional_safe_name = '*%s' % in_param_name if parameter.is_optional else in_param_name
            import_expression = ObjCGenerator.objc_protocol_import_expression_for_parameter(in_param_optional_safe_name, domain, command.command_name, parameter)
            if not parameter.is_optional:
                lines.append('    %s = %s;' % (join_type_and_name(objc_type, objc_in_param_name), import_expression))
            else:
                lines.append('    %s;' % join_type_and_name(objc_type, objc_in_param_name))
                lines.append('    if (%s)' % in_param_name)
                lines.append('        %s = %s;' % (objc_in_param_name, import_expression))

        if lines:
            lines.append('')
        return '\n'.join(lines)
    def _generate_conversions_for_command(self, domain, command):
        lines = []
        if command.call_parameters:
            lines.append('')

        def in_param_expression(param_name, parameter):
            _type = parameter.type
            if isinstance(_type, AliasedType):
                _type = _type.aliased_type  # Fall through to enum or primitive.
            if isinstance(_type, EnumType):
                _type = _type.primitive_type  # Fall through to primitive.
            if isinstance(_type, PrimitiveType):
                if _type.raw_name() in ['array', 'any', 'object']:
                    return '&%s' % param_name if not parameter.is_optional else param_name
                return '*%s' % param_name if parameter.is_optional else param_name
            return '&%s' % param_name if not parameter.is_optional else param_name

        for parameter in command.call_parameters:
            in_param_name = 'in_%s' % parameter.parameter_name
            objc_in_param_name = 'o_%s' % in_param_name
            objc_type = ObjCGenerator.objc_type_for_param(
                domain, command.command_name, parameter, False)
            param_expression = in_param_expression(in_param_name, parameter)
            import_expression = ObjCGenerator.objc_protocol_import_expression_for_parameter(
                param_expression, domain, command.command_name, parameter)
            if not parameter.is_optional:
                lines.append('    %s = %s;' % (join_type_and_name(
                    objc_type, objc_in_param_name), import_expression))
            else:
                lines.append('    %s;' %
                             join_type_and_name(objc_type, objc_in_param_name))
                lines.append('    if (%s)' % in_param_name)
                lines.append('        %s = %s;' %
                             (objc_in_param_name, import_expression))

        if lines:
            lines.append('')
        return '\n'.join(lines)