def has_role_collective(self, identifiers, role_s, logical_operator):
self.assert_realms_configured()<EOL>interim_results = self.has_role(identifiers, role_s, log_results=False)<EOL>results = logical_operator(has_role for role, has_role<EOL>in interim_results)<EOL>if results:<EOL><INDENT>self.notify_event(identifiers,<EOL>list(role_s),<EOL>'<STR_LIT>',<EOL>logical_operator)<EOL><DEDENT>else:<EOL><INDENT>self.notify_event(identifiers,<EOL>list(role_s),<EOL>'<STR_LIT>',<EOL>logical_operator)<EOL><DEDENT>return results<EOL>
:param identifiers: a collection of identifiers
:type identifiers:  subject_abcs.IdentifierCollection

:param role_s: a collection of 1..N Role identifiers
:type role_s: Set of String(s)

:param logical_operator:  indicates whether all or at least one
                          permission check is true (any)
:type: any OR all (from python standard library)

:returns: a Boolean