• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /**
2  * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License");
3  * you may not use this file except in compliance with the License.
4  * You may obtain a copy of the License at
5  *
6  *     http://www.apache.org/licenses/LICENSE-2.0
7  *
8  * Unless required by applicable law or agreed to in writing, software
9  * distributed under the License is distributed on an "AS IS" BASIS,
10  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11  * See the License for the specific language governing permissions and
12  * limitations under the License.
13  */
14 package org.jivesoftware.smackx.pubsub;
15 
16 import java.util.Collections;
17 import java.util.List;
18 
19 /**
20  * Represents the <b>affiliations</b> element of the reply to a request for affiliations.
21  * It is defined in the specification in section <a href="http://xmpp.org/extensions/xep-0060.html#entity-affiliations">5.7 Retrieve Affiliations</a>.
22  *
23  * @author Robin Collier
24  */
25 public class AffiliationsExtension extends NodeExtension
26 {
27 	protected List<Affiliation> items = Collections.EMPTY_LIST;
28 
AffiliationsExtension()29 	public AffiliationsExtension()
30 	{
31 		super(PubSubElementType.AFFILIATIONS);
32 	}
33 
AffiliationsExtension(List<Affiliation> affiliationList)34 	public AffiliationsExtension(List<Affiliation> affiliationList)
35 	{
36 		super(PubSubElementType.AFFILIATIONS);
37 
38 		if (affiliationList != null)
39 			items = affiliationList;
40 	}
41 
42 	/**
43 	 * Affiliations for the specified node.
44 	 *
45 	 * @param nodeId
46 	 * @param subList
47 	 */
AffiliationsExtension(String nodeId, List<Affiliation> affiliationList)48 	public AffiliationsExtension(String nodeId, List<Affiliation> affiliationList)
49 	{
50 		super(PubSubElementType.AFFILIATIONS, nodeId);
51 
52 		if (affiliationList != null)
53 			items = affiliationList;
54 	}
55 
getAffiliations()56 	public List<Affiliation> getAffiliations()
57 	{
58 		return items;
59 	}
60 
61 	@Override
toXML()62 	public String toXML()
63 	{
64 		if ((items == null) || (items.size() == 0))
65 		{
66 			return super.toXML();
67 		}
68 		else
69 		{
70 			StringBuilder builder = new StringBuilder("<");
71 			builder.append(getElementName());
72 			if (getNode() != null)
73 			{
74 				builder.append(" node='");
75 				builder.append(getNode());
76 				builder.append("'");
77 			}
78 			builder.append(">");
79 
80 			for (Affiliation item : items)
81 			{
82 				builder.append(item.toXML());
83 			}
84 
85 			builder.append("</");
86 			builder.append(getElementName());
87 			builder.append(">");
88 			return builder.toString();
89 		}
90 	}
91 }
92