1d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen/**
2d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License");
3d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * you may not use this file except in compliance with the License.
4d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * You may obtain a copy of the License at
5d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen *
6d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen *     http://www.apache.org/licenses/LICENSE-2.0
7d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen *
8d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * Unless required by applicable law or agreed to in writing, software
9d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * distributed under the License is distributed on an "AS IS" BASIS,
10d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * See the License for the specific language governing permissions and
12d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * limitations under the License.
13d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen */
14d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chenpackage org.jivesoftware.smackx.pubsub;
15d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
16d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen/**
17d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * Represents a request to subscribe to a node.
18d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen *
19d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen * @author Robin Collier
20d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen */
21d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chenpublic class SubscribeExtension extends NodeExtension
22d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen{
23d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen	protected String jid;
24d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
25d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen	public SubscribeExtension(String subscribeJid)
26d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen	{
27d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen		super(PubSubElementType.SUBSCRIBE);
28d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen		jid = subscribeJid;
29d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen	}
30d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
31d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen	public SubscribeExtension(String subscribeJid, String nodeId)
32d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen	{
33d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen		super(PubSubElementType.SUBSCRIBE, nodeId);
34d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen		jid = subscribeJid;
35d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen	}
36d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
37d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen	public String getJid()
38d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen	{
39d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen		return jid;
40d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen	}
41d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
42d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen	@Override
43d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen	public String toXML()
44d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen	{
45d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen		StringBuilder builder = new StringBuilder("<");
46d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen		builder.append(getElementName());
47d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
48d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen		if (getNode() != null)
49d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen		{
50d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen			builder.append(" node='");
51d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen			builder.append(getNode());
52d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen			builder.append("'");
53d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen		}
54d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen		builder.append(" jid='");
55d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen		builder.append(getJid());
56d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen		builder.append("'/>");
57d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen
58d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen		return builder.toString();
59d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen	}
60d7955ce24d294fb2014c59d11fca184471056f44Shuyi Chen}
61