2010-03-26 21:32:16 +00:00
|
|
|
"""
|
|
|
|
SleekXMPP: The Sleek XMPP Library
|
|
|
|
Copyright (C) 2010 Nathanael C. Fritz
|
|
|
|
This file is part of SleekXMPP.
|
|
|
|
|
2010-07-20 15:19:49 +00:00
|
|
|
See the file LICENSE for copying permission.
|
2010-03-26 21:32:16 +00:00
|
|
|
"""
|
2009-06-03 22:56:51 +00:00
|
|
|
|
2010-09-01 18:28:43 +00:00
|
|
|
from sleekxmpp.xmlstream.matcher.base import MatcherBase
|
2009-06-03 22:56:51 +00:00
|
|
|
|
2010-09-01 18:28:43 +00:00
|
|
|
|
|
|
|
class MatchMany(MatcherBase):
|
|
|
|
|
|
|
|
"""
|
|
|
|
The MatchMany matcher may compare a stanza against multiple
|
|
|
|
criteria. It is essentially an OR relation combining multiple
|
|
|
|
matchers.
|
|
|
|
|
|
|
|
Each of the criteria must implement a match() method.
|
|
|
|
|
|
|
|
Methods:
|
|
|
|
match -- Overrides MatcherBase.match.
|
|
|
|
"""
|
|
|
|
|
|
|
|
def match(self, xml):
|
|
|
|
"""
|
|
|
|
Match a stanza against multiple criteria. The match is successful
|
|
|
|
if one of the criteria matches.
|
|
|
|
|
|
|
|
Each of the criteria must implement a match() method.
|
|
|
|
|
|
|
|
Overrides MatcherBase.match.
|
|
|
|
|
|
|
|
Arguments:
|
|
|
|
xml -- The stanza object to compare against.
|
|
|
|
"""
|
|
|
|
for m in self._criteria:
|
|
|
|
if m.match(xml):
|
|
|
|
return True
|
|
|
|
return False
|