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 Builder builder
= new Builder(copy
.name
,
60 copy
.addMemberPermission
,
61 copy
.editDetailsPermission
,
64 copy
.isAnnouncementGroup
);
68 public static Builder
newBuilder(
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
85 return new Builder(name
,
96 editDetailsPermission
,
102 public String
getName() {
106 public String
getDescription() {
110 public Set
<RecipientIdentifier
.Single
> getMembers() {
114 public Set
<RecipientIdentifier
.Single
> getRemoveMembers() {
115 return removeMembers
;
118 public Set
<RecipientIdentifier
.Single
> getAdmins() {
122 public Set
<RecipientIdentifier
.Single
> getRemoveAdmins() {
126 public Set
<RecipientIdentifier
.Single
> getBanMembers() {
130 public Set
<RecipientIdentifier
.Single
> getUnbanMembers() {
134 public boolean isResetGroupLink() {
135 return resetGroupLink
;
138 public GroupLinkState
getGroupLinkState() {
139 return groupLinkState
;
142 public GroupPermission
getAddMemberPermission() {
143 return addMemberPermission
;
146 public GroupPermission
getEditDetailsPermission() {
147 return editDetailsPermission
;
150 public File
getAvatarFile() {
154 public Integer
getExpirationTimer() {
155 return expirationTimer
;
158 public Boolean
getIsAnnouncementGroup() {
159 return isAnnouncementGroup
;
162 public static final class Builder
{
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
;
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
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
;
217 public Builder
withName(final String val
) {
222 public Builder
withDescription(final String val
) {
227 public Builder
withMembers(final Set
<RecipientIdentifier
.Single
> val
) {
232 public Builder
withRemoveMembers(final Set
<RecipientIdentifier
.Single
> val
) {
237 public Builder
withAdmins(final Set
<RecipientIdentifier
.Single
> val
) {
242 public Builder
withRemoveAdmins(final Set
<RecipientIdentifier
.Single
> val
) {
247 public Builder
withBanMembers(final Set
<RecipientIdentifier
.Single
> val
) {
252 public Builder
withUnbanMembers(final Set
<RecipientIdentifier
.Single
> val
) {
257 public Builder
withResetGroupLink(final boolean val
) {
258 resetGroupLink
= val
;
262 public Builder
withGroupLinkState(final GroupLinkState val
) {
263 groupLinkState
= val
;
267 public Builder
withAddMemberPermission(final GroupPermission val
) {
268 addMemberPermission
= val
;
272 public Builder
withEditDetailsPermission(final GroupPermission val
) {
273 editDetailsPermission
= val
;
277 public Builder
withAvatarFile(final File val
) {
282 public Builder
withExpirationTimer(final Integer val
) {
283 expirationTimer
= val
;
287 public Builder
withIsAnnouncementGroup(final Boolean val
) {
288 isAnnouncementGroup
= val
;
292 public UpdateGroup
build() {
293 return new UpdateGroup(this);