1 20 21 package org.jivesoftware.smackx.packet; 22 23 import org.jivesoftware.smack.packet.PacketExtension; 24 import org.jivesoftware.smack.provider.PacketExtensionProvider; 25 import org.xmlpull.v1.XmlPullParser; 26 27 35 public class OfflineMessageInfo implements PacketExtension { 36 37 private String node = null; 38 39 45 public String getElementName() { 46 return "offline"; 47 } 48 49 55 public String getNamespace() { 56 return "http://jabber.org/protocol/offline"; 57 } 58 59 66 public String getNode() { 67 return node; 68 } 69 70 77 public void setNode(String node) { 78 this.node = node; 79 } 80 81 public String toXML() { 82 StringBuffer buf = new StringBuffer (); 83 buf.append("<").append(getElementName()).append(" xmlns=\"").append(getNamespace()).append( 84 "\">"); 85 if (getNode() != null) 86 buf.append("<item node=\"").append(getNode()).append("\"/>"); 87 buf.append("</").append(getElementName()).append(">"); 88 return buf.toString(); 89 } 90 91 public static class Provider implements PacketExtensionProvider { 92 93 98 public Provider() { 99 } 100 101 108 public PacketExtension parseExtension(XmlPullParser parser) 109 throws Exception { 110 OfflineMessageInfo info = new OfflineMessageInfo(); 111 boolean done = false; 112 while (!done) { 113 int eventType = parser.next(); 114 if (eventType == XmlPullParser.START_TAG) { 115 if (parser.getName().equals("item")) 116 info.setNode(parser.getAttributeValue("", "node")); 117 } else if (eventType == XmlPullParser.END_TAG) { 118 if (parser.getName().equals("offline")) { 119 done = true; 120 } 121 } 122 } 123 124 return info; 125 } 126 127 } 128 } 129 | Popular Tags |