From bcc1c55894f01f741712745573880dd6fee07332 Mon Sep 17 00:00:00 2001 From: guus Date: Thu, 25 Feb 2010 08:09:12 +0000 Subject: [PATCH] Adding support for XEP-0224: Attention (SMACK-296) git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/trunk@11655 b35dd754-fafc-0310-a699-88a17e54d16e --- build/resources/META-INF/smack.providers | 6 ++ .../smackx/packet/AttentionExtension.java | 100 ++++++++++++++++++ 2 files changed, 106 insertions(+) create mode 100644 source/org/jivesoftware/smackx/packet/AttentionExtension.java diff --git a/build/resources/META-INF/smack.providers b/build/resources/META-INF/smack.providers index 7fbbc982b..7092b8a61 100644 --- a/build/resources/META-INF/smack.providers +++ b/build/resources/META-INF/smack.providers @@ -621,4 +621,10 @@ org.jivesoftware.smackx.packet.Nick$Provider + + + attention + urn:xmpp:attention:0 + org.jivesoftware.smackx.packet.AttentionExtension$Provider + \ No newline at end of file diff --git a/source/org/jivesoftware/smackx/packet/AttentionExtension.java b/source/org/jivesoftware/smackx/packet/AttentionExtension.java new file mode 100644 index 000000000..d86fa419e --- /dev/null +++ b/source/org/jivesoftware/smackx/packet/AttentionExtension.java @@ -0,0 +1,100 @@ +/** + * $RCSfile$ + * $Revision$ + * $Date$ + * + * Copyright 2003-2010 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 PacketExtension that implements XEP-0224: Attention + * + * This extension is expected to be added to message stanzas of type 'headline.' + * Please refer to the XEP for more implementation guidelines. + * + * @author Guus der Kinderen, guus.der.kinderen@gmail.com + * @see XEP-0224: Attention + */ +public class AttentionExtension implements PacketExtension { + + /** + * The XML element name of an 'attention' extension. + */ + public static final String ELEMENT_NAME = "attention"; + + /** + * The namespace that qualifies the XML element of an 'attention' extension. + */ + public static final String NAMESPACE = "urn:xmpp:attention:0"; + + /* + * (non-Javadoc) + * + * @see org.jivesoftware.smack.packet.PacketExtension#getElementName() + */ + public String getElementName() { + return ELEMENT_NAME; + } + + /* + * (non-Javadoc) + * + * @see org.jivesoftware.smack.packet.PacketExtension#getNamespace() + */ + public String getNamespace() { + return NAMESPACE; + } + + /* + * (non-Javadoc) + * + * @see org.jivesoftware.smack.packet.PacketExtension#toXML() + */ + public String toXML() { + final StringBuilder sb = new StringBuilder(); + sb.append("<").append(getElementName()).append(" xmlns=\"").append( + getNamespace()).append("\"/>"); + return sb.toString(); + } + + /** + * A {@link PacketExtensionProvider} for the {@link AttentionExtension}. As + * Attention elements have no state/information other than the element name + * and namespace, this implementation simply returns new instances of + * {@link AttentionExtension}. + * + * @author Guus der Kinderen, guus.der.kinderen@gmail.com +s */ + public static class Provider implements PacketExtensionProvider { + + /* + * (non-Javadoc) + * + * @see + * org.jivesoftware.smack.provider.PacketExtensionProvider#parseExtension + * (org.xmlpull.v1.XmlPullParser) + */ + public PacketExtension parseExtension(XmlPullParser arg0) + throws Exception { + return new AttentionExtension(); + } + } +}