summaryrefslogtreecommitdiffstats
blob: a94040fbcb8c71694f00327b72879cc50369ba37 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
/*
 * Copyright (c) 2011 Jan Kaluza
 * Licensed under the Simplified BSD license.
 * See Documentation/Licenses/BSD-simplified.txt for more information.
 */
/*
 * Copyright (c) 2015 Tarun Gupta.
 * Licensed under the simplified BSD license.
 * See Documentation/Licenses/BSD-simplified.txt for more information.
 */

package com.isode.stroke.elements;

import com.isode.stroke.elements.Payload;
import com.isode.stroke.jid.JID;
import com.isode.stroke.base.NotNull;
import java.util.Vector;

public class RosterItemExchangePayload extends Payload {

	public static class Item {

		public enum Action { 
			Add, Modify, Delete 
		};

		private Action action;
		private JID jid = new JID();
		private String name = "";
		private Vector<String> groups = new Vector<String>();

		/**
		* Default Constructor.
		*/
		public Item() {
			this(Item.Action.Add);
		}

		/**
		* Parameterized Constructor.
		* @param action, Not Null.
		*/
		public Item(Action action) {
			NotNull.exceptIfNull(action, "action");
			this.action = action;
		}

		/**
		* @return action, Not Null.
		*/
		public Action getAction() {
			return action;
		}

		/**
		* @param action, Not Null.
		*/
		public void setAction(Action action) {
			NotNull.exceptIfNull(action, "action");
			this.action = action;
		}

		/**
		* @return jid, Not Null.
		*/
		public JID getJID() {
			return jid;
		}

		/**
		* @param jid, Not Null.
		*/
		public void setJID(JID jid) {
			NotNull.exceptIfNull(jid, "jid");
			this.jid = jid;
		}

		/**
		* @return name, Not Null.
		*/
		public String getName() {
			return name;
		}

		/**
		* @param name, Not Null.
		*/
		public void setName(String name) {
			NotNull.exceptIfNull(name, "name");
			this.name = name;
		}

		/**
		* @return groups, Not Null.
		*/
		public Vector<String> getGroups() {
			return groups;
		}

		/**
		* @param groups, Not Null.
		*/
		public void setGroups(Vector<String> groups) {
			NotNull.exceptIfNull(groups, "groups");
			this.groups = groups;
		}

		/**
		* @param group, Not Null.
		*/
		public void addGroup(String group) {
			NotNull.exceptIfNull(group, "group");
			groups.add(group);
		}
	}

	private Vector<RosterItemExchangePayload.Item> items_ = new Vector<RosterItemExchangePayload.Item>();

	public RosterItemExchangePayload() {

	}

	/**
	* @param item, Not Null.
	*/
	public void addItem(RosterItemExchangePayload.Item item) {
		NotNull.exceptIfNull(item, "item");
		items_.add(item);
	}

	/**
	* @return items, Not Null.
	*/
	public Vector<RosterItemExchangePayload.Item> getItems() {
		return items_;
	}
}