⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 searchprovider.java

📁 网站即时通讯系统
💻 JAVA
字号:
package com.valhalla.jbother.jabber.smack.provider;import org.jivesoftware.smack.packet.IQ;import org.jivesoftware.smack.packet.PacketExtension;import org.jivesoftware.smack.provider.IQProvider;import com.valhalla.jbother.jabber.smack.*;import org.jivesoftware.smackx.packet.DataForm;import org.jivesoftware.smackx.provider.*;import org.xmlpull.v1.XmlPullParser;import com.valhalla.jbother.jabber.smack.*;import java.util.HashMap;/** * Created by luke on Apr 1, 2005 1:11:23 PM *//** * provider class for parsing Search packages */public class SearchProvider implements IQProvider{  private static String fId = "$Id$";  public static final String NAMESPACE = "jabber:iq:search";  public IQ parseIQ(XmlPullParser parser) throws Exception  {    Search search = new Search();    boolean done = false;    HashMap searchFields = new HashMap();    while(!done)    {      int eventType = parser.next();      String elementName = parser.getName();      String namespace = parser.getNamespace();      if (eventType == XmlPullParser.START_TAG)      {        if(elementName.equals("instructions")) {          search.setInstructions( parser.nextText() );        }        else if(elementName.equals("item")) {          search.addItem(parseItem(parser));        }        else if(elementName.equals("x") && namespace.equals("jabber:x:data")) {          DataFormProvider dataFormProvider = new DataFormProvider();          search.setSearchDataForm((DataForm)dataFormProvider.parseExtension(parser));        }        else        {          if( ! searchFields.containsKey(elementName)) {            searchFields.put(elementName,parser.nextText());          }        }      }      else if (eventType == XmlPullParser.END_TAG && elementName.equals("query")) {          done = true;      }    }    if(searchFields.size() > 0) {      search.setSearchFields(searchFields);    }    return search;  }  /**   * tries to parse <code><item></code> messages and return Saech.Item objects   * @param parser XmlPullParser providing the XML data   * @return @link{String.Item} object representing search result   */  private Search.Item parseItem(XmlPullParser parser) throws Exception  {    boolean done = false;    HashMap attributes = new HashMap();    Search.Item item = new Search.Item(parser.getAttributeValue("","jid"));    while (!done) {        int eventType = parser.next();        if (eventType == XmlPullParser.START_TAG) {          attributes.put(parser.getName(),parser.nextText());        }        else if (eventType == XmlPullParser.END_TAG) {            if (parser.getName().equals("item")) {                done = true;            }        }    }    item.setAttributes(attributes);    return item;  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -