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
|
|
|
"""
|
2010-01-16 05:07:28 +00:00
|
|
|
|
2010-09-01 18:28:43 +00:00
|
|
|
from sleekxmpp.xmlstream.matcher.base import MatcherBase
|
2010-01-16 05:07:28 +00:00
|
|
|
|
2010-09-01 18:28:43 +00:00
|
|
|
|
|
|
|
class StanzaPath(MatcherBase):
|
|
|
|
|
|
|
|
"""
|
|
|
|
The StanzaPath matcher selects stanzas that match a given "stanza path",
|
|
|
|
which is similar to a normal XPath except that it uses the interfaces and
|
|
|
|
plugins of the stanza instead of the actual, underlying XML.
|
|
|
|
|
|
|
|
In most cases, the stanza path and XPath should be identical, but be
|
|
|
|
aware that differences may occur.
|
|
|
|
|
|
|
|
Methods:
|
|
|
|
match -- Overrides MatcherBase.match.
|
|
|
|
"""
|
|
|
|
|
|
|
|
def match(self, stanza):
|
|
|
|
"""
|
|
|
|
Compare a stanza against a "stanza path". A stanza path is similar to
|
|
|
|
an XPath expression, but uses the stanza's interfaces and plugins
|
|
|
|
instead of the underlying XML. For most cases, the stanza path and
|
|
|
|
XPath should be identical, but be aware that differences may occur.
|
|
|
|
|
|
|
|
Overrides MatcherBase.match.
|
|
|
|
|
|
|
|
Arguments:
|
|
|
|
stanza -- The stanza object to compare against.
|
|
|
|
"""
|
|
|
|
return stanza.match(self._criteria)
|