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.xmlpull.v1.XmlPullParser; 25 26 /** 27 * IQ packet for retrieving and changing the Agent personal information. 28 */ 29 public class AgentInfo extends IQ { 30 31 /** 32 * Element name of the packet extension. 33 */ 34 public static final String ELEMENT_NAME = "agent-info"; 35 36 /** 37 * Namespace of the packet extension. 38 */ 39 public static final String NAMESPACE = "http://jivesoftware.com/protocol/workgroup"; 40 41 private String jid; 42 private String name; 43 44 /** 45 * Returns the Agent's jid. 46 * 47 * @return the Agent's jid. 48 */ 49 public String getJid() { 50 return jid; 51 } 52 53 /** 54 * Sets the Agent's jid. 55 * 56 * @param jid the jid of the agent. 57 */ 58 public void setJid(String jid) { 59 this.jid = jid; 60 } 61 62 /** 63 * Returns the Agent's name. The name of the agent may be different than the user's name. 64 * This property may be shown in the webchat client. 65 * 66 * @return the Agent's name. 67 */ 68 public String getName() { 69 return name; 70 } 71 72 /** 73 * Sets the Agent's name. The name of the agent may be different than the user's name. 74 * This property may be shown in the webchat client. 75 * 76 * @param name the new name of the agent. 77 */ 78 public void setName(String name) { 79 this.name = name; 80 } 81 82 public String getChildElementXML() { 83 StringBuilder buf = new StringBuilder(); 84 85 buf.append("<").append(ELEMENT_NAME).append(" xmlns=\"").append(NAMESPACE).append("\">"); 86 if (jid != null) { 87 buf.append("<jid>").append(getJid()).append("</jid>"); 88 } 89 if (name != null) { 90 buf.append("<name>").append(getName()).append("</name>"); 91 } 92 buf.append("</").append(ELEMENT_NAME).append("> "); 93 94 return buf.toString(); 95 } 96 97 /** 98 * An IQProvider for AgentInfo packets. 99 * 100 * @author Gaston Dombiak 101 */ 102 public static class Provider implements IQProvider { 103 104 public Provider() { 105 super(); 106 } 107 108 public IQ parseIQ(XmlPullParser parser) throws Exception { 109 AgentInfo answer = new AgentInfo(); 110 111 boolean done = false; 112 while (!done) { 113 int eventType = parser.next(); 114 if (eventType == XmlPullParser.START_TAG) { 115 if (parser.getName().equals("jid")) { 116 answer.setJid(parser.nextText()); 117 } 118 else if (parser.getName().equals("name")) { 119 answer.setName(parser.nextText()); 120 } 121 } 122 else if (eventType == XmlPullParser.END_TAG) { 123 if (parser.getName().equals(ELEMENT_NAME)) { 124 done = true; 125 } 126 } 127 } 128 129 return answer; 130 } 131 } 132 } 133