1 package org
.asamk
.signal
.manager
.api
;
3 import org
.asamk
.signal
.manager
.groups
.GroupLinkState
;
4 import org
.asamk
.signal
.manager
.groups
.GroupPermission
;
8 public class UpdateGroup
{
10 private final String name
;
11 private final String description
;
12 private final Set
<RecipientIdentifier
.Single
> members
;
13 private final Set
<RecipientIdentifier
.Single
> removeMembers
;
14 private final Set
<RecipientIdentifier
.Single
> admins
;
15 private final Set
<RecipientIdentifier
.Single
> removeAdmins
;
16 private final Set
<RecipientIdentifier
.Single
> banMembers
;
17 private final Set
<RecipientIdentifier
.Single
> unbanMembers
;
18 private final boolean resetGroupLink
;
19 private final GroupLinkState groupLinkState
;
20 private final GroupPermission addMemberPermission
;
21 private final GroupPermission editDetailsPermission
;
22 private final String avatarFile
;
23 private final Integer expirationTimer
;
24 private final Boolean isAnnouncementGroup
;
26 private UpdateGroup(final Builder builder
) {
28 description
= builder
.description
;
29 members
= builder
.members
;
30 removeMembers
= builder
.removeMembers
;
31 admins
= builder
.admins
;
32 removeAdmins
= builder
.removeAdmins
;
33 banMembers
= builder
.banMembers
;
34 unbanMembers
= builder
.unbanMembers
;
35 resetGroupLink
= builder
.resetGroupLink
;
36 groupLinkState
= builder
.groupLinkState
;
37 addMemberPermission
= builder
.addMemberPermission
;
38 editDetailsPermission
= builder
.editDetailsPermission
;
39 avatarFile
= builder
.avatarFile
;
40 expirationTimer
= builder
.expirationTimer
;
41 isAnnouncementGroup
= builder
.isAnnouncementGroup
;
44 public static Builder
newBuilder() {
48 public static Builder
newBuilder(final UpdateGroup copy
) {
49 return new Builder(copy
.name
,
59 copy
.addMemberPermission
,
60 copy
.editDetailsPermission
,
63 copy
.isAnnouncementGroup
);
66 public static Builder
newBuilder(
68 final String description
,
69 final Set
<RecipientIdentifier
.Single
> members
,
70 final Set
<RecipientIdentifier
.Single
> removeMembers
,
71 final Set
<RecipientIdentifier
.Single
> admins
,
72 final Set
<RecipientIdentifier
.Single
> removeAdmins
,
73 final Set
<RecipientIdentifier
.Single
> banMembers
,
74 final Set
<RecipientIdentifier
.Single
> unbanMembers
,
75 final boolean resetGroupLink
,
76 final GroupLinkState groupLinkState
,
77 final GroupPermission addMemberPermission
,
78 final GroupPermission editDetailsPermission
,
79 final String avatarFile
,
80 final Integer expirationTimer
,
81 final Boolean isAnnouncementGroup
83 return new Builder(name
,
94 editDetailsPermission
,
100 public String
getName() {
104 public String
getDescription() {
108 public Set
<RecipientIdentifier
.Single
> getMembers() {
112 public Set
<RecipientIdentifier
.Single
> getRemoveMembers() {
113 return removeMembers
;
116 public Set
<RecipientIdentifier
.Single
> getAdmins() {
120 public Set
<RecipientIdentifier
.Single
> getRemoveAdmins() {
124 public Set
<RecipientIdentifier
.Single
> getBanMembers() {
128 public Set
<RecipientIdentifier
.Single
> getUnbanMembers() {
132 public boolean isResetGroupLink() {
133 return resetGroupLink
;
136 public GroupLinkState
getGroupLinkState() {
137 return groupLinkState
;
140 public GroupPermission
getAddMemberPermission() {
141 return addMemberPermission
;
144 public GroupPermission
getEditDetailsPermission() {
145 return editDetailsPermission
;
148 public String
getAvatarFile() {
152 public Integer
getExpirationTimer() {
153 return expirationTimer
;
156 public Boolean
getIsAnnouncementGroup() {
157 return isAnnouncementGroup
;
160 public static final class Builder
{
163 private String description
;
164 private Set
<RecipientIdentifier
.Single
> members
;
165 private Set
<RecipientIdentifier
.Single
> removeMembers
;
166 private Set
<RecipientIdentifier
.Single
> admins
;
167 private Set
<RecipientIdentifier
.Single
> removeAdmins
;
168 private Set
<RecipientIdentifier
.Single
> banMembers
;
169 private Set
<RecipientIdentifier
.Single
> unbanMembers
;
170 private boolean resetGroupLink
;
171 private GroupLinkState groupLinkState
;
172 private GroupPermission addMemberPermission
;
173 private GroupPermission editDetailsPermission
;
174 private String avatarFile
;
175 private Integer expirationTimer
;
176 private Boolean isAnnouncementGroup
;
183 final String description
,
184 final Set
<RecipientIdentifier
.Single
> members
,
185 final Set
<RecipientIdentifier
.Single
> removeMembers
,
186 final Set
<RecipientIdentifier
.Single
> admins
,
187 final Set
<RecipientIdentifier
.Single
> removeAdmins
,
188 final Set
<RecipientIdentifier
.Single
> banMembers
,
189 final Set
<RecipientIdentifier
.Single
> unbanMembers
,
190 final boolean resetGroupLink
,
191 final GroupLinkState groupLinkState
,
192 final GroupPermission addMemberPermission
,
193 final GroupPermission editDetailsPermission
,
194 final String avatarFile
,
195 final Integer expirationTimer
,
196 final Boolean isAnnouncementGroup
199 this.description
= description
;
200 this.members
= members
;
201 this.removeMembers
= removeMembers
;
202 this.admins
= admins
;
203 this.removeAdmins
= removeAdmins
;
204 this.banMembers
= banMembers
;
205 this.unbanMembers
= unbanMembers
;
206 this.resetGroupLink
= resetGroupLink
;
207 this.groupLinkState
= groupLinkState
;
208 this.addMemberPermission
= addMemberPermission
;
209 this.editDetailsPermission
= editDetailsPermission
;
210 this.avatarFile
= avatarFile
;
211 this.expirationTimer
= expirationTimer
;
212 this.isAnnouncementGroup
= isAnnouncementGroup
;
215 public Builder
withName(final String val
) {
220 public Builder
withDescription(final String val
) {
225 public Builder
withMembers(final Set
<RecipientIdentifier
.Single
> val
) {
230 public Builder
withRemoveMembers(final Set
<RecipientIdentifier
.Single
> val
) {
235 public Builder
withAdmins(final Set
<RecipientIdentifier
.Single
> val
) {
240 public Builder
withRemoveAdmins(final Set
<RecipientIdentifier
.Single
> val
) {
245 public Builder
withBanMembers(final Set
<RecipientIdentifier
.Single
> val
) {
250 public Builder
withUnbanMembers(final Set
<RecipientIdentifier
.Single
> val
) {
255 public Builder
withResetGroupLink(final boolean val
) {
256 resetGroupLink
= val
;
260 public Builder
withGroupLinkState(final GroupLinkState val
) {
261 groupLinkState
= val
;
265 public Builder
withAddMemberPermission(final GroupPermission val
) {
266 addMemberPermission
= val
;
270 public Builder
withEditDetailsPermission(final GroupPermission val
) {
271 editDetailsPermission
= val
;
275 public Builder
withAvatarFile(final String val
) {
280 public Builder
withExpirationTimer(final Integer val
) {
281 expirationTimer
= val
;
285 public Builder
withIsAnnouncementGroup(final Boolean val
) {
286 isAnnouncementGroup
= val
;
290 public UpdateGroup
build() {
291 return new UpdateGroup(this);