blob: d2afbf828e5ba4567c1708a8663054f484aef5ca [file] [log] [blame]
Shuyi Chend7955ce2013-05-22 14:51:55 -07001/**
2 * $RCSfile$
3 * $Revision$
4 * $Date$
5 *
6 * Copyright 2003-2007 Jive Software.
7 *
8 * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
11 *
12 * http://www.apache.org/licenses/LICENSE-2.0
13 *
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
19 */
20
21package org.jivesoftware.smack.packet;
22
23/**
24 * Interface to represent packet extensions. A packet extension is an XML subdocument
25 * with a root element name and namespace. Packet extensions are used to provide
26 * extended functionality beyond what is in the base XMPP specification. Examples of
27 * packet extensions include message events, message properties, and extra presence data.
28 * IQ packets cannot contain packet extensions.
29 *
30 * @see DefaultPacketExtension
31 * @see org.jivesoftware.smack.provider.PacketExtensionProvider
32 * @author Matt Tucker
33 */
34public interface PacketExtension {
35
36 /**
37 * Returns the root element name.
38 *
39 * @return the element name.
40 */
41 public String getElementName();
42
43 /**
44 * Returns the root element XML namespace.
45 *
46 * @return the namespace.
47 */
48 public String getNamespace();
49
50 /**
51 * Returns the XML representation of the PacketExtension.
52 *
53 * @return the packet extension as XML.
54 */
55 public String toXML();
56}