<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def add_all(self, items):
 """ Adds all of the items in the specified collection to the end of this list. The order of new elements is determined by the specified collection's iterator. :param items: (Collection), the specified collection which includes the elements to be added to list. :return: (bool), ``true`` if this call changed the list, ``false`` otherwise. """

        check_not_none(items, "Value can't be None")
        data_items = []
        for item in items:
            check_not_none(item, "Value can't be None")
            data_items.append(self._to_data(item))
        return self._encode_invoke(list_add_all_codec, value_list=data_items)