001/** 002 * 003 * Copyright 2003-2007 Jive Software. 004 * 005 * Licensed under the Apache License, Version 2.0 (the "License"); 006 * you may not use this file except in compliance with the License. 007 * You may obtain a copy of the License at 008 * 009 * http://www.apache.org/licenses/LICENSE-2.0 010 * 011 * Unless required by applicable law or agreed to in writing, software 012 * distributed under the License is distributed on an "AS IS" BASIS, 013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 014 * See the License for the specific language governing permissions and 015 * limitations under the License. 016 */ 017 018package org.jivesoftware.smackx.workgroup.ext.forms; 019 020import org.jivesoftware.smack.packet.SimpleIQ; 021import org.jivesoftware.smack.provider.IQProvider; 022import org.jivesoftware.smack.util.PacketParserUtils; 023 024import org.xmlpull.v1.XmlPullParser; 025 026public class WorkgroupForm extends SimpleIQ { 027 028 /** 029 * Element name of the stanza extension. 030 */ 031 public static final String ELEMENT_NAME = "workgroup-form"; 032 033 /** 034 * Namespace of the stanza extension. 035 */ 036 public static final String NAMESPACE = "http://jivesoftware.com/protocol/workgroup"; 037 038 public WorkgroupForm() { 039 super(ELEMENT_NAME, NAMESPACE); 040 } 041 042 /** 043 * An IQProvider for WebForm packets. 044 * 045 * @author Derek DeMoro 046 */ 047 public static class InternalProvider extends IQProvider<WorkgroupForm> { 048 049 @Override 050 public WorkgroupForm parse(XmlPullParser parser, int initialDepth) 051 throws Exception { 052 WorkgroupForm answer = new WorkgroupForm(); 053 054 boolean done = false; 055 while (!done) { 056 int eventType = parser.next(); 057 if (eventType == XmlPullParser.START_TAG) { 058 // Parse the packet extension 059 PacketParserUtils.addExtensionElement(answer, parser); 060 } 061 else if (eventType == XmlPullParser.END_TAG) { 062 if (parser.getName().equals(ELEMENT_NAME)) { 063 done = true; 064 } 065 } 066 } 067 068 return answer; 069 } 070 } 071}