<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_compositions_by_repositories(self, repository_ids):
 """Gets the list of ``Compositions`` corresponding to a list of ``Repository`` objects. arg: repository_ids (osid.id.IdList):
 list of repository ``Ids`` return: (osid.repository.CompositionList) - list of Compositions raise: NullArgument - ``repository_ids`` is ``null`` raise: OperationFailed - unable to complete request raise: PermissionDenied - authorization failure *compliance: mandatory -- This method must be implemented.* """

        # Implemented from template for
        # osid.resource.ResourceBinSession.get_resources_by_bins
        composition_list = []
        for repository_id in repository_ids:
            composition_list += list(
                self.get_compositions_by_repository(repository_id))
        return objects.CompositionList(composition_list)