1 package org
.asamk
.signal
.manager
.api
;
3 import org
.asamk
.signal
.manager
.groups
.GroupLinkState
;
4 import org
.asamk
.signal
.manager
.groups
.GroupPermission
;
9 public class UpdateGroup
{
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
;
27 private UpdateGroup(final Builder builder
) {
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
;
45 public static Builder
newBuilder() {
49 public static Builder
newBuilder(final UpdateGroup copy
) {
50 return new Builder(copy
.name
,
60 copy
.addMemberPermission
,
61 copy
.editDetailsPermission
,
64 copy
.isAnnouncementGroup
);
67 public static Builder
newBuilder(
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
84 return new Builder(name
,
95 editDetailsPermission
,
101 public String
getName() {
105 public String
getDescription() {
109 public Set
<RecipientIdentifier
.Single
> getMembers() {
113 public Set
<RecipientIdentifier
.Single
> getRemoveMembers() {
114 return removeMembers
;
117 public Set
<RecipientIdentifier
.Single
> getAdmins() {
121 public Set
<RecipientIdentifier
.Single
> getRemoveAdmins() {
125 public Set
<RecipientIdentifier
.Single
> getBanMembers() {
129 public Set
<RecipientIdentifier
.Single
> getUnbanMembers() {
133 public boolean isResetGroupLink() {
134 return resetGroupLink
;
137 public GroupLinkState
getGroupLinkState() {
138 return groupLinkState
;
141 public GroupPermission
getAddMemberPermission() {
142 return addMemberPermission
;
145 public GroupPermission
getEditDetailsPermission() {
146 return editDetailsPermission
;
149 public File
getAvatarFile() {
153 public Integer
getExpirationTimer() {
154 return expirationTimer
;
157 public Boolean
getIsAnnouncementGroup() {
158 return isAnnouncementGroup
;
161 public static final class Builder
{
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
;
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
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
;
216 public Builder
withName(final String val
) {
221 public Builder
withDescription(final String val
) {
226 public Builder
withMembers(final Set
<RecipientIdentifier
.Single
> val
) {
231 public Builder
withRemoveMembers(final Set
<RecipientIdentifier
.Single
> val
) {
236 public Builder
withAdmins(final Set
<RecipientIdentifier
.Single
> val
) {
241 public Builder
withRemoveAdmins(final Set
<RecipientIdentifier
.Single
> val
) {
246 public Builder
withBanMembers(final Set
<RecipientIdentifier
.Single
> val
) {
251 public Builder
withUnbanMembers(final Set
<RecipientIdentifier
.Single
> val
) {
256 public Builder
withResetGroupLink(final boolean val
) {
257 resetGroupLink
= val
;
261 public Builder
withGroupLinkState(final GroupLinkState val
) {
262 groupLinkState
= val
;
266 public Builder
withAddMemberPermission(final GroupPermission val
) {
267 addMemberPermission
= val
;
271 public Builder
withEditDetailsPermission(final GroupPermission val
) {
272 editDetailsPermission
= val
;
276 public Builder
withAvatarFile(final File val
) {
281 public Builder
withExpirationTimer(final Integer val
) {
282 expirationTimer
= val
;
286 public Builder
withIsAnnouncementGroup(final Boolean val
) {
287 isAnnouncementGroup
= val
;
291 public UpdateGroup
build() {
292 return new UpdateGroup(this);