public abstract class EmbeddedExtensionProvider<PE extends ExtensionElement> extends ExtensionElementProvider<PE>
createReturnExtension(String, String, Map, List)
is called. Subclasses
then override this method to create the specific return type.
To use this class, you simply register your subclasses as extension providers in the smack.properties file. Then they will be automatically picked up and used to parse any child elements.
For example, given the following message <message from='pubsub.shakespeare.lit' to='francisco@denmark.lit' id='foo> <event xmlns='http://jabber.org/protocol/pubsub#event> <items node='princely_musings'> <item id='asdjkwei3i34234n356'> <entry xmlns='http://www.w3.org/2005/Atom'> <title>Soliloquy</title> <link rel='alternative' type='text/html'/> <id>tag:denmark.lit,2003:entry-32397</id> </entry> </item> </items> </event> </message> I would have a classes ItemsProvider extendsEmbeddedExtensionProvider
ItemProvider extendsEmbeddedExtensionProvider
and AtomProvider extendsExtensionElementProvider
These classes are then registered in the meta-inf/smack.providers file as follows. <extensionProvider> <elementName>items</elementName> <namespace>http://jabber.org/protocol/pubsub#event</namespace> <className>org.jivesoftware.smackx.provider.ItemsEventProvider</className> </extensionProvider> <extensionProvider> <elementName>item</elementName> <namespace>http://jabber.org/protocol/pubsub#event</namespace> <className>org.jivesoftware.smackx.provider.ItemProvider</className> </extensionProvider>
Constructor and Description |
---|
EmbeddedExtensionProvider() |
public EmbeddedExtensionProvider()
public final PE parse(org.xmlpull.v1.XmlPullParser parser, int initialDepth) throws org.xmlpull.v1.XmlPullParserException, IOException, SmackException
parse
in class Provider<PE extends ExtensionElement>
org.xmlpull.v1.XmlPullParserException
IOException
SmackException
protected abstract PE createReturnExtension(String currentElement, String currentNamespace, Map<String,String> attributeMap, List<? extends ExtensionElement> content)