本文整理汇总了Java中org.jivesoftware.smackx.iqprivate.provider.PrivateDataProvider类的典型用法代码示例。如果您正苦于以下问题:Java PrivateDataProvider类的具体用法?Java PrivateDataProvider怎么用?Java PrivateDataProvider使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
PrivateDataProvider类属于org.jivesoftware.smackx.iqprivate.provider包,在下文中一共展示了PrivateDataProvider类的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: parse
import org.jivesoftware.smackx.iqprivate.provider.PrivateDataProvider; //导入依赖的package包/类
@Override
public PrivateDataIQ parse(XmlPullParser parser, int initialDepth)
throws XmlPullParserException, IOException, SmackException {
PrivateData privateData = null;
boolean done = false;
while (!done) {
int eventType = parser.next();
if (eventType == XmlPullParser.START_TAG) {
String elementName = parser.getName();
String namespace = parser.getNamespace();
// See if any objects are registered to handle this private data type.
PrivateDataProvider provider = getPrivateDataProvider(elementName, namespace);
// If there is a registered provider, use it.
if (provider != null) {
privateData = provider.parsePrivateData(parser);
}
// Otherwise, use a DefaultPrivateData instance to store the private data.
else {
DefaultPrivateData data = new DefaultPrivateData(elementName, namespace);
boolean finished = false;
while (!finished) {
int event = parser.next();
if (event == XmlPullParser.START_TAG) {
String name = parser.getName();
// If an empty element, set the value with the empty string.
if (parser.isEmptyElementTag()) {
data.setValue(name,"");
}
// Otherwise, get the the element text.
else {
event = parser.next();
if (event == XmlPullParser.TEXT) {
String value = parser.getText();
data.setValue(name, value);
}
}
}
else if (event == XmlPullParser.END_TAG) {
if (parser.getName().equals(elementName)) {
finished = true;
}
}
}
privateData = data;
}
}
else if (eventType == XmlPullParser.END_TAG) {
if (parser.getName().equals("query")) {
done = true;
}
}
}
return new PrivateDataIQ(privateData);
}
示例2: addPrivateDataProvider
import org.jivesoftware.smackx.iqprivate.provider.PrivateDataProvider; //导入依赖的package包/类
/**
* Adds a private data provider with the specified element name and name space. The provider
* will override any providers loaded through the classpath.
*
* @param elementName the XML element name.
* @param namespace the XML namespace.
* @param provider the private data provider.
*/
public static void addPrivateDataProvider(String elementName, String namespace,
PrivateDataProvider provider)
{
String key = getProviderKey(elementName, namespace);
privateDataProviders.put(key, provider);
}
示例3: getPrivateDataProvider
import org.jivesoftware.smackx.iqprivate.provider.PrivateDataProvider; //导入依赖的package包/类
/**
* Returns the private data provider registered to the specified XML element name and namespace.
* For example, if a provider was registered to the element name "prefs" and the
* namespace "http://www.xmppclient.com/prefs", then the following stanza(/packet) would trigger
* the provider:
*
* <pre>
* <iq type='result' to='[email protected]' from='[email protected]' id='time_1'>
* <query xmlns='jabber:iq:private'>
* <prefs xmlns='http://www.xmppclient.com/prefs'>
* <value1>ABC</value1>
* <value2>XYZ</value2>
* </prefs>
* </query>
* </iq></pre>
*
* <p>Note: this method is generally only called by the internal Smack classes.
*
* @param elementName the XML element name.
* @param namespace the XML namespace.
* @return the PrivateData provider.
*/
public static PrivateDataProvider getPrivateDataProvider(String elementName, String namespace) {
String key = getProviderKey(elementName, namespace);
return (PrivateDataProvider)privateDataProviders.get(key);
}