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