<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _restore_port_binding(self, switch_ip, pvlan_ids, port, native_vlan):
 """Restores a set of vlans for a given port."""


        intf_type, nexus_port = nexus_help.split_interface_name(port)

        # If native_vlan is configured, this is isolated since
        # two configs (native + trunk) must be sent for this vlan only.
        if native_vlan != 0:
            self.driver.send_enable_vlan_on_trunk_int(
                switch_ip, native_vlan,
                intf_type, nexus_port, True)
            # If this is the only vlan
            if len(pvlan_ids) == 1:
                return

        concat_vlans = ''
        compressed_vlans = self._get_compressed_vlan_list(pvlan_ids)
        for pvlan in compressed_vlans:

            if concat_vlans == '':
                concat_vlans = "%s" % pvlan
            else:
                concat_vlans += ",%s" % pvlan

            # if string starts getting a bit long, send it.
            if len(concat_vlans) >= const.CREATE_PORT_VLAN_LENGTH:
                self.driver.send_enable_vlan_on_trunk_int(
                    switch_ip, concat_vlans,
                    intf_type, nexus_port, False)
                concat_vlans = ''

        # Send remaining vlans if any
        if len(concat_vlans):
            self.driver.send_enable_vlan_on_trunk_int(
                    switch_ip, concat_vlans,
                    intf_type, nexus_port, False)