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

📄 streaminitiationprovider.java

📁 网站即时通讯系统
💻 JAVA
字号:
package com.valhalla.jbother.jabber.smack.provider;import com.valhalla.jbother.jabber.smack.*;import org.jivesoftware.smack.provider.IQProvider;import org.jivesoftware.smack.packet.IQ;import org.jivesoftware.smackx.packet.DataForm;import org.xmlpull.v1.XmlPullParser;import com.valhalla.jbother.jabber.smack.*;import org.jivesoftware.smackx.provider.*;/** * Created by luke on Feb 10, 2005 3:11:38 PM *//** * Implementation of provider class for StreamInitiation objects. * It will parse XML code for <si> messages and return StreamInitiation object. */public class StreamInitiationProvider implements IQProvider{  private static String fId = "$Id$";  public StreamInitiationProvider()  { }  public IQ parseIQ(XmlPullParser parser) throws Exception  {    StreamInitiation si = new StreamInitiation();    boolean done = false;    String fileName = "";    long fileSize = -1;    String fileHash = null;    String description = "";    String featureNS = "";    StreamInitiation.Feature feature = null;    String profile = profile = parser.getAttributeValue("","profile");    String id = parser.getAttributeValue("","id");    while (!done) {      int eventType = parser.next();      String elementName = parser.getName();      String namespace = parser.getNamespace();      if (eventType == XmlPullParser.START_TAG)      {        if (elementName.equals("file"))        {          fileSize = Long.parseLong(parser.getAttributeValue("","size"));          fileName = parser.getAttributeValue("","name");          fileHash = parser.getAttributeValue("","hash");        }        else if (elementName.equals("desc"))        {          int eType = parser.next();		  if( eType == XmlPullParser.END_TAG )		  {			  description = "";		  }		  else {			  description = parser.getText();			  // @todo there is probably better way to do it...			  if(description.equals("<desc/>")) {				description="";			  }		  }        }        else if (elementName.equals("feature"))        {          featureNS = parser.getNamespace();        }        else if (elementName.equals("x") && namespace.equals("jabber:x:data"))        {          DataFormProvider dataFormProvider = new DataFormProvider();          DataForm dataForm = (DataForm)dataFormProvider.parseExtension(parser);          feature = new StreamInitiation.Feature(dataForm.getType());          feature.setDataForm(dataForm);        }      }      else if (eventType == XmlPullParser.END_TAG && elementName.equals("si")) {          done = true;      }    }    if( fileName.length() > 0 && fileSize > -1 )    {      StreamInitiation.FileDetails fd = new StreamInitiation.FileDetails(fileName);      fd.setFileSize(fileSize);      fd.setDescription(description);      fd.setHash(fileHash);      si.setFileDetails(fd);    }    si.setFeature(feature);    si.setId(id);    return si;  }}

⌨️ 快捷键说明

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