]> nmode's Git Repositories - signal-cli/blob - lib/src/main/java/org/asamk/signal/manager/api/UpdateGroup.java
Rotate profile key after blocking a contact/group
[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 Builder builder = 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 return builder;
66 }
67
68 public static Builder newBuilder(
69 final String name,
70 final String description,
71 final Set<RecipientIdentifier.Single> members,
72 final Set<RecipientIdentifier.Single> removeMembers,
73 final Set<RecipientIdentifier.Single> admins,
74 final Set<RecipientIdentifier.Single> removeAdmins,
75 final Set<RecipientIdentifier.Single> banMembers,
76 final Set<RecipientIdentifier.Single> unbanMembers,
77 final boolean resetGroupLink,
78 final GroupLinkState groupLinkState,
79 final GroupPermission addMemberPermission,
80 final GroupPermission editDetailsPermission,
81 final File avatarFile,
82 final Integer expirationTimer,
83 final Boolean isAnnouncementGroup
84 ) {
85 return new Builder(name,
86 description,
87 members,
88 removeMembers,
89 admins,
90 removeAdmins,
91 banMembers,
92 unbanMembers,
93 resetGroupLink,
94 groupLinkState,
95 addMemberPermission,
96 editDetailsPermission,
97 avatarFile,
98 expirationTimer,
99 isAnnouncementGroup);
100 }
101
102 public String getName() {
103 return name;
104 }
105
106 public String getDescription() {
107 return description;
108 }
109
110 public Set<RecipientIdentifier.Single> getMembers() {
111 return members;
112 }
113
114 public Set<RecipientIdentifier.Single> getRemoveMembers() {
115 return removeMembers;
116 }
117
118 public Set<RecipientIdentifier.Single> getAdmins() {
119 return admins;
120 }
121
122 public Set<RecipientIdentifier.Single> getRemoveAdmins() {
123 return removeAdmins;
124 }
125
126 public Set<RecipientIdentifier.Single> getBanMembers() {
127 return banMembers;
128 }
129
130 public Set<RecipientIdentifier.Single> getUnbanMembers() {
131 return unbanMembers;
132 }
133
134 public boolean isResetGroupLink() {
135 return resetGroupLink;
136 }
137
138 public GroupLinkState getGroupLinkState() {
139 return groupLinkState;
140 }
141
142 public GroupPermission getAddMemberPermission() {
143 return addMemberPermission;
144 }
145
146 public GroupPermission getEditDetailsPermission() {
147 return editDetailsPermission;
148 }
149
150 public File getAvatarFile() {
151 return avatarFile;
152 }
153
154 public Integer getExpirationTimer() {
155 return expirationTimer;
156 }
157
158 public Boolean getIsAnnouncementGroup() {
159 return isAnnouncementGroup;
160 }
161
162 public static final class Builder {
163
164 private String name;
165 private String description;
166 private Set<RecipientIdentifier.Single> members;
167 private Set<RecipientIdentifier.Single> removeMembers;
168 private Set<RecipientIdentifier.Single> admins;
169 private Set<RecipientIdentifier.Single> removeAdmins;
170 private Set<RecipientIdentifier.Single> banMembers;
171 private Set<RecipientIdentifier.Single> unbanMembers;
172 private boolean resetGroupLink;
173 private GroupLinkState groupLinkState;
174 private GroupPermission addMemberPermission;
175 private GroupPermission editDetailsPermission;
176 private File avatarFile;
177 private Integer expirationTimer;
178 private Boolean isAnnouncementGroup;
179
180 private Builder() {
181 }
182
183 private Builder(
184 final String name,
185 final String description,
186 final Set<RecipientIdentifier.Single> members,
187 final Set<RecipientIdentifier.Single> removeMembers,
188 final Set<RecipientIdentifier.Single> admins,
189 final Set<RecipientIdentifier.Single> removeAdmins,
190 final Set<RecipientIdentifier.Single> banMembers,
191 final Set<RecipientIdentifier.Single> unbanMembers,
192 final boolean resetGroupLink,
193 final GroupLinkState groupLinkState,
194 final GroupPermission addMemberPermission,
195 final GroupPermission editDetailsPermission,
196 final File avatarFile,
197 final Integer expirationTimer,
198 final Boolean isAnnouncementGroup
199 ) {
200 this.name = name;
201 this.description = description;
202 this.members = members;
203 this.removeMembers = removeMembers;
204 this.admins = admins;
205 this.removeAdmins = removeAdmins;
206 this.banMembers = banMembers;
207 this.unbanMembers = unbanMembers;
208 this.resetGroupLink = resetGroupLink;
209 this.groupLinkState = groupLinkState;
210 this.addMemberPermission = addMemberPermission;
211 this.editDetailsPermission = editDetailsPermission;
212 this.avatarFile = avatarFile;
213 this.expirationTimer = expirationTimer;
214 this.isAnnouncementGroup = isAnnouncementGroup;
215 }
216
217 public Builder withName(final String val) {
218 name = val;
219 return this;
220 }
221
222 public Builder withDescription(final String val) {
223 description = val;
224 return this;
225 }
226
227 public Builder withMembers(final Set<RecipientIdentifier.Single> val) {
228 members = val;
229 return this;
230 }
231
232 public Builder withRemoveMembers(final Set<RecipientIdentifier.Single> val) {
233 removeMembers = val;
234 return this;
235 }
236
237 public Builder withAdmins(final Set<RecipientIdentifier.Single> val) {
238 admins = val;
239 return this;
240 }
241
242 public Builder withRemoveAdmins(final Set<RecipientIdentifier.Single> val) {
243 removeAdmins = val;
244 return this;
245 }
246
247 public Builder withBanMembers(final Set<RecipientIdentifier.Single> val) {
248 banMembers = val;
249 return this;
250 }
251
252 public Builder withUnbanMembers(final Set<RecipientIdentifier.Single> val) {
253 unbanMembers = val;
254 return this;
255 }
256
257 public Builder withResetGroupLink(final boolean val) {
258 resetGroupLink = val;
259 return this;
260 }
261
262 public Builder withGroupLinkState(final GroupLinkState val) {
263 groupLinkState = val;
264 return this;
265 }
266
267 public Builder withAddMemberPermission(final GroupPermission val) {
268 addMemberPermission = val;
269 return this;
270 }
271
272 public Builder withEditDetailsPermission(final GroupPermission val) {
273 editDetailsPermission = val;
274 return this;
275 }
276
277 public Builder withAvatarFile(final File val) {
278 avatarFile = val;
279 return this;
280 }
281
282 public Builder withExpirationTimer(final Integer val) {
283 expirationTimer = val;
284 return this;
285 }
286
287 public Builder withIsAnnouncementGroup(final Boolean val) {
288 isAnnouncementGroup = val;
289 return this;
290 }
291
292 public UpdateGroup build() {
293 return new UpdateGroup(this);
294 }
295 }
296 }