diff --git a/build/resources/META-INF/smack.providers b/build/resources/META-INF/smack.providers index 6b2e96e03..7fbbc982b 100644 --- a/build/resources/META-INF/smack.providers +++ b/build/resources/META-INF/smack.providers @@ -613,5 +613,12 @@ http://jabber.org/protocol/pubsub#event org.jivesoftware.smackx.pubsub.provider.SimpleNodeProvider + + + + nick + http://jabber.org/protocol/nick + org.jivesoftware.smackx.packet.Nick$Provider + \ No newline at end of file diff --git a/source/org/jivesoftware/smackx/packet/Nick.java b/source/org/jivesoftware/smackx/packet/Nick.java new file mode 100644 index 000000000..451284a6e --- /dev/null +++ b/source/org/jivesoftware/smackx/packet/Nick.java @@ -0,0 +1,115 @@ +/** + * $Revision$ + * $Date$ + * + * Copyright 2003-2007 Jive Software. + * + * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.jivesoftware.smackx.packet; + +import org.jivesoftware.smack.packet.PacketExtension; +import org.jivesoftware.smack.provider.PacketExtensionProvider; +import org.xmlpull.v1.XmlPullParser; + +/** + * A minimalistic implementation of a {@link PacketExtension} for nicknames. + * + * @author Guus der Kinderen, guus.der.kinderen@gmail.com + * + */ +public class Nick implements PacketExtension { + + public static final String NAMESPACE = "http://jabber.org/protocol/nick"; + + public static final String ELEMENT_NAME = "nick"; + + private String name = null; + + public Nick(String name) { + this.name = name; + } + + /** + * The value of this nickname + * + * @return the nickname + */ + public String getName() { + return name; + } + + /** + * Sets the value of this nickname + * + * @param name + * the name to set + */ + public void setName(String name) { + this.name = name; + } + + /* + * (non-Javadoc) + * + * @see org.jivesoftware.smack.packet.PacketExtension#getElementName() + */ + @Override + public String getElementName() { + return ELEMENT_NAME; + } + + /* + * (non-Javadoc) + * + * @see org.jivesoftware.smack.packet.PacketExtension#getNamespace() + */ + @Override + public String getNamespace() { + return NAMESPACE; + } + + /* + * (non-Javadoc) + * + * @see org.jivesoftware.smack.packet.PacketExtension#toXML() + */ + @Override + public String toXML() { + final StringBuilder buf = new StringBuilder(); + + buf.append("<").append(ELEMENT_NAME).append(" xmlns=\"").append( + NAMESPACE).append("\">"); + buf.append(getName()); + buf.append("'); + + return buf.toString(); + } + + public static class Provider implements PacketExtensionProvider { + + public PacketExtension parseExtension(XmlPullParser parser) + throws Exception { + + parser.next(); + final String name = parser.getText(); + + // Advance to end of extension. + while(parser.getEventType() != XmlPullParser.END_TAG) { + parser.next(); + } + + return new Nick(name); + } + } +}