def add_entry_listener(self, include_value=False, key=None, predicate=None, added_func=None, removed_func=None, updated_func=None,<EOL>evicted_func=None, evict_all_func=None, clear_all_func=None, merged_func=None, expired_func=None):
flags = get_entry_listener_flags(added=added_func, removed=removed_func, updated=updated_func,<EOL>evicted=evicted_func, evict_all=evict_all_func, clear_all=clear_all_func, merged=merged_func,<EOL>expired=expired_func)<EOL>if key and predicate:<EOL><INDENT>key_data = self._to_data(key)<EOL>predicate_data = self._to_data(predicate)<EOL>request = map_add_entry_listener_to_key_with_predicate_codec.encode_request(self.name, key_data,<EOL>predicate_data, include_value,<EOL>flags, False)<EOL><DEDENT>elif key and not predicate:<EOL><INDENT>key_data = self._to_data(key)<EOL>request = map_add_entry_listener_to_key_codec.encode_request(self.name, key_data, include_value, flags,<EOL>False)<EOL><DEDENT>elif not key and predicate:<EOL><INDENT>predicate = self._to_data(predicate)<EOL>request = map_add_entry_listener_with_predicate_codec.encode_request(self.name, predicate, include_value,<EOL>flags, False)<EOL><DEDENT>else:<EOL><INDENT>request = map_add_entry_listener_codec.encode_request(self.name, include_value, flags, False)<EOL><DEDENT>def handle_event_entry(**_kwargs):<EOL><INDENT>event = EntryEvent(self._to_object, **_kwargs)<EOL>if event.event_type == EntryEventType.added:<EOL><INDENT>added_func(event)<EOL><DEDENT>elif event.event_type == EntryEventType.removed:<EOL><INDENT>removed_func(event)<EOL><DEDENT>elif event.event_type == EntryEventType.updated:<EOL><INDENT>updated_func(event)<EOL><DEDENT>elif event.event_type == EntryEventType.evicted:<EOL><INDENT>evicted_func(event)<EOL><DEDENT>elif event.event_type == EntryEventType.evict_all:<EOL><INDENT>evict_all_func(event)<EOL><DEDENT>elif event.event_type == EntryEventType.clear_all:<EOL><INDENT>clear_all_func(event)<EOL><DEDENT>elif event.event_type == EntryEventType.merged:<EOL><INDENT>merged_func(event)<EOL><DEDENT>elif event.event_type == EntryEventType.expired:<EOL><INDENT>expired_func(event)<EOL><DEDENT><DEDENT>return self._start_listening(request, lambda m: map_add_entry_listener_codec.handle(m, handle_event_entry),<EOL>lambda r: map_add_entry_listener_codec.decode_response(r)['<STR_LIT>'])<EOL>
Adds a continuous entry listener for this map. Listener will get notified for map events filtered with given
parameters.

:param include_value: (bool), whether received event should include the value or not (optional).
:param key: (object), key for filtering the events (optional).
:param predicate: (Predicate), predicate for filtering the events (optional).
:param added_func: Function to be called when an entry is added to map (optional).
:param removed_func: Function to be called when an entry is removed from map (optional).
:param updated_func: Function to be called when an entry is updated (optional).
:param evicted_func: Function to be called when an entry is evicted from map (optional).
:param evict_all_func: Function to be called when entries are evicted from map (optional).
:param clear_all_func: Function to be called when entries are cleared from map (optional).
:param merged_func: Function to be called when WAN replicated entry is merged_func (optional).
:param expired_func: Function to be called when an entry's live time is expired (optional).
:return: (str), a registration id which is used as a key to remove the listener.

.. seealso:: :class:`~hazelcast.serialization.predicate.Predicate` for more info about predicates.