]> nmode's Git Repositories - signal-cli/blob - lib/src/main/java/org/asamk/signal/manager/api/UpdateGroup.java
71b18a676aa84d3d5c831d8fc3d8d29377df3ac6
[signal-cli] / lib / src / main / java / org / asamk / signal / manager / api / UpdateGroup.java
1 package org.asamk.signal.manager.api;
2
3 import org.asamk.signal.manager.groups.GroupLinkState;
4 import org.asamk.signal.manager.groups.GroupPermission;
5
6 import java.io.File;
7 import java.util.Set;
8
9 public class UpdateGroup {
10
11 private final String name;
12 private final String description;
13 private final Set<RecipientIdentifier.Single> members;
14 private final Set<RecipientIdentifier.Single> removeMembers;
15 private final Set<RecipientIdentifier.Single> admins;
16 private final Set<RecipientIdentifier.Single> removeAdmins;
17 private final Set<RecipientIdentifier.Single> banMembers;
18 private final Set<RecipientIdentifier.Single> unbanMembers;
19 private final boolean resetGroupLink;
20 private final GroupLinkState groupLinkState;
21 private final GroupPermission addMemberPermission;
22 private final GroupPermission editDetailsPermission;
23 private final File avatarFile;
24 private final Integer expirationTimer;
25 private final Boolean isAnnouncementGroup;
26
27 private UpdateGroup(final Builder builder) {
28 name = builder.name;
29 description = builder.description;
30 members = builder.members;
31 removeMembers = builder.removeMembers;
32 admins = builder.admins;
33 removeAdmins = builder.removeAdmins;
34 banMembers = builder.banMembers;
35 unbanMembers = builder.unbanMembers;
36 resetGroupLink = builder.resetGroupLink;
37 groupLinkState = builder.groupLinkState;
38 addMemberPermission = builder.addMemberPermission;
39 editDetailsPermission = builder.editDetailsPermission;
40 avatarFile = builder.avatarFile;
41 expirationTimer = builder.expirationTimer;
42 isAnnouncementGroup = builder.isAnnouncementGroup;
43 }
44
45 public static Builder newBuilder() {
46 return new Builder();
47 }
48
49 public static Builder newBuilder(final UpdateGroup copy) {
50 return new Builder(copy.name,
51 copy.description,
52 copy.members,
53 copy.removeMembers,
54 copy.admins,
55 copy.removeAdmins,
56 copy.banMembers,
57 copy.unbanMembers,
58 copy.resetGroupLink,
59 copy.groupLinkState,
60 copy.addMemberPermission,
61 copy.editDetailsPermission,
62 copy.avatarFile,
63 copy.expirationTimer,
64 copy.isAnnouncementGroup);
65 }
66
67 public static Builder newBuilder(
68 final String name,
69 final String description,
70 final Set<RecipientIdentifier.Single> members,
71 final Set<RecipientIdentifier.Single> removeMembers,
72 final Set<RecipientIdentifier.Single> admins,
73 final Set<RecipientIdentifier.Single> removeAdmins,
74 final Set<RecipientIdentifier.Single> banMembers,
75 final Set<RecipientIdentifier.Single> unbanMembers,
76 final boolean resetGroupLink,
77 final GroupLinkState groupLinkState,
78 final GroupPermission addMemberPermission,
79 final GroupPermission editDetailsPermission,
80 final File avatarFile,
81 final Integer expirationTimer,
82 final Boolean isAnnouncementGroup
83 ) {
84 return new Builder(name,
85 description,
86 members,
87 removeMembers,
88 admins,
89 removeAdmins,
90 banMembers,
91 unbanMembers,
92 resetGroupLink,
93 groupLinkState,
94 addMemberPermission,
95 editDetailsPermission,
96 avatarFile,
97 expirationTimer,
98 isAnnouncementGroup);
99 }
100
101 public String getName() {
102 return name;
103 }
104
105 public String getDescription() {
106 return description;
107 }
108
109 public Set<RecipientIdentifier.Single> getMembers() {
110 return members;
111 }
112
113 public Set<RecipientIdentifier.Single> getRemoveMembers() {
114 return removeMembers;
115 }
116
117 public Set<RecipientIdentifier.Single> getAdmins() {
118 return admins;
119 }
120
121 public Set<RecipientIdentifier.Single> getRemoveAdmins() {
122 return removeAdmins;
123 }
124
125 public Set<RecipientIdentifier.Single> getBanMembers() {
126 return banMembers;
127 }
128
129 public Set<RecipientIdentifier.Single> getUnbanMembers() {
130 return unbanMembers;
131 }
132
133 public boolean isResetGroupLink() {
134 return resetGroupLink;
135 }
136
137 public GroupLinkState getGroupLinkState() {
138 return groupLinkState;
139 }
140
141 public GroupPermission getAddMemberPermission() {
142 return addMemberPermission;
143 }
144
145 public GroupPermission getEditDetailsPermission() {
146 return editDetailsPermission;
147 }
148
149 public File getAvatarFile() {
150 return avatarFile;
151 }
152
153 public Integer getExpirationTimer() {
154 return expirationTimer;
155 }
156
157 public Boolean getIsAnnouncementGroup() {
158 return isAnnouncementGroup;
159 }
160
161 public static final class Builder {
162
163 private String name;
164 private String description;
165 private Set<RecipientIdentifier.Single> members;
166 private Set<RecipientIdentifier.Single> removeMembers;
167 private Set<RecipientIdentifier.Single> admins;
168 private Set<RecipientIdentifier.Single> removeAdmins;
169 private Set<RecipientIdentifier.Single> banMembers;
170 private Set<RecipientIdentifier.Single> unbanMembers;
171 private boolean resetGroupLink;
172 private GroupLinkState groupLinkState;
173 private GroupPermission addMemberPermission;
174 private GroupPermission editDetailsPermission;
175 private File avatarFile;
176 private Integer expirationTimer;
177 private Boolean isAnnouncementGroup;
178
179 private Builder() {
180 }
181
182 private Builder(
183 final String name,
184 final String description,
185 final Set<RecipientIdentifier.Single> members,
186 final Set<RecipientIdentifier.Single> removeMembers,
187 final Set<RecipientIdentifier.Single> admins,
188 final Set<RecipientIdentifier.Single> removeAdmins,
189 final Set<RecipientIdentifier.Single> banMembers,
190 final Set<RecipientIdentifier.Single> unbanMembers,
191 final boolean resetGroupLink,
192 final GroupLinkState groupLinkState,
193 final GroupPermission addMemberPermission,
194 final GroupPermission editDetailsPermission,
195 final File avatarFile,
196 final Integer expirationTimer,
197 final Boolean isAnnouncementGroup
198 ) {
199 this.name = name;
200 this.description = description;
201 this.members = members;
202 this.removeMembers = removeMembers;
203 this.admins = admins;
204 this.removeAdmins = removeAdmins;
205 this.banMembers = banMembers;
206 this.unbanMembers = unbanMembers;
207 this.resetGroupLink = resetGroupLink;
208 this.groupLinkState = groupLinkState;
209 this.addMemberPermission = addMemberPermission;
210 this.editDetailsPermission = editDetailsPermission;
211 this.avatarFile = avatarFile;
212 this.expirationTimer = expirationTimer;
213 this.isAnnouncementGroup = isAnnouncementGroup;
214 }
215
216 public Builder withName(final String val) {
217 name = val;
218 return this;
219 }
220
221 public Builder withDescription(final String val) {
222 description = val;
223 return this;
224 }
225
226 public Builder withMembers(final Set<RecipientIdentifier.Single> val) {
227 members = val;
228 return this;
229 }
230
231 public Builder withRemoveMembers(final Set<RecipientIdentifier.Single> val) {
232 removeMembers = val;
233 return this;
234 }
235
236 public Builder withAdmins(final Set<RecipientIdentifier.Single> val) {
237 admins = val;
238 return this;
239 }
240
241 public Builder withRemoveAdmins(final Set<RecipientIdentifier.Single> val) {
242 removeAdmins = val;
243 return this;
244 }
245
246 public Builder withBanMembers(final Set<RecipientIdentifier.Single> val) {
247 banMembers = val;
248 return this;
249 }
250
251 public Builder withUnbanMembers(final Set<RecipientIdentifier.Single> val) {
252 unbanMembers = val;
253 return this;
254 }
255
256 public Builder withResetGroupLink(final boolean val) {
257 resetGroupLink = val;
258 return this;
259 }
260
261 public Builder withGroupLinkState(final GroupLinkState val) {
262 groupLinkState = val;
263 return this;
264 }
265
266 public Builder withAddMemberPermission(final GroupPermission val) {
267 addMemberPermission = val;
268 return this;
269 }
270
271 public Builder withEditDetailsPermission(final GroupPermission val) {
272 editDetailsPermission = val;
273 return this;
274 }
275
276 public Builder withAvatarFile(final File val) {
277 avatarFile = val;
278 return this;
279 }
280
281 public Builder withExpirationTimer(final Integer val) {
282 expirationTimer = val;
283 return this;
284 }
285
286 public Builder withIsAnnouncementGroup(final Boolean val) {
287 isAnnouncementGroup = val;
288 return this;
289 }
290
291 public UpdateGroup build() {
292 return new UpdateGroup(this);
293 }
294 }
295 }