1 /** 2 * $Revision$ 3 * $Date$ 4 * 5 * Copyright 2003-2007 Jive Software. 6 * 7 * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); 8 * you may not use this file except in compliance with the License. 9 * You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, software 14 * distributed under the License is distributed on an "AS IS" BASIS, 15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 * See the License for the specific language governing permissions and 17 * limitations under the License. 18 */ 19 20 package org.jivesoftware.smackx.workgroup.packet; 21 22 import org.jivesoftware.smack.packet.IQ; 23 import org.jivesoftware.smack.provider.IQProvider; 24 import org.jivesoftware.smack.util.PacketParserUtils; 25 import org.xmlpull.v1.XmlPullParser; 26 27 /** 28 * IQ packet for retrieving the transcript search form, submiting the completed search form 29 * or retrieving the answer of a transcript search. 30 * 31 * @author Gaston Dombiak 32 */ 33 public class TranscriptSearch extends IQ { 34 35 /** 36 * Element name of the packet extension. 37 */ 38 public static final String ELEMENT_NAME = "transcript-search"; 39 40 /** 41 * Namespace of the packet extension. 42 */ 43 public static final String NAMESPACE = "http://jivesoftware.com/protocol/workgroup"; 44 getChildElementXML()45 public String getChildElementXML() { 46 StringBuilder buf = new StringBuilder(); 47 48 buf.append("<").append(ELEMENT_NAME).append(" xmlns=\"").append(NAMESPACE).append("\">"); 49 // Add packet extensions, if any are defined. 50 buf.append(getExtensionsXML()); 51 buf.append("</").append(ELEMENT_NAME).append("> "); 52 53 return buf.toString(); 54 } 55 56 /** 57 * An IQProvider for TranscriptSearch packets. 58 * 59 * @author Gaston Dombiak 60 */ 61 public static class Provider implements IQProvider { 62 Provider()63 public Provider() { 64 super(); 65 } 66 parseIQ(XmlPullParser parser)67 public IQ parseIQ(XmlPullParser parser) throws Exception { 68 TranscriptSearch answer = new TranscriptSearch(); 69 70 boolean done = false; 71 while (!done) { 72 int eventType = parser.next(); 73 if (eventType == XmlPullParser.START_TAG) { 74 // Parse the packet extension 75 answer.addExtension(PacketParserUtils.parsePacketExtension(parser.getName(), parser.getNamespace(), parser)); 76 } 77 else if (eventType == XmlPullParser.END_TAG) { 78 if (parser.getName().equals(ELEMENT_NAME)) { 79 done = true; 80 } 81 } 82 } 83 84 return answer; 85 } 86 } 87 } 88