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 extends EmbeddedExtensionProvider
ItemProvider extends EmbeddedExtensionProvider
and
AtomProvider extends ExtensionElementProvider
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() |
| Modifier and Type | Method and Description |
|---|---|
protected abstract PE |
createReturnExtension(String currentElement,
String currentNamespace,
Map<String,String> attributeMap,
List<? extends ExtensionElement> content) |
PE |
parse(org.xmlpull.v1.XmlPullParser parser,
int initialDepth) |
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.XmlPullParserExceptionIOExceptionSmackExceptionCopyright © 2025. All rights reserved.