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 boolean resetGroupLink
;
18 private final GroupLinkState groupLinkState
;
19 private final GroupPermission addMemberPermission
;
20 private final GroupPermission editDetailsPermission
;
21 private final File avatarFile
;
22 private final Integer expirationTimer
;
23 private final Boolean isAnnouncementGroup
;
25 private UpdateGroup(final Builder builder
) {
27 description
= builder
.description
;
28 members
= builder
.members
;
29 removeMembers
= builder
.removeMembers
;
30 admins
= builder
.admins
;
31 removeAdmins
= builder
.removeAdmins
;
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
;
41 public static Builder
newBuilder() {
45 public static Builder
newBuilder(final UpdateGroup copy
) {
46 Builder builder
= new Builder();
47 builder
.name
= copy
.getName();
48 builder
.description
= copy
.getDescription();
49 builder
.members
= copy
.getMembers();
50 builder
.removeMembers
= copy
.getRemoveMembers();
51 builder
.admins
= copy
.getAdmins();
52 builder
.removeAdmins
= copy
.getRemoveAdmins();
53 builder
.resetGroupLink
= copy
.isResetGroupLink();
54 builder
.groupLinkState
= copy
.getGroupLinkState();
55 builder
.addMemberPermission
= copy
.getAddMemberPermission();
56 builder
.editDetailsPermission
= copy
.getEditDetailsPermission();
57 builder
.avatarFile
= copy
.getAvatarFile();
58 builder
.expirationTimer
= copy
.getExpirationTimer();
59 builder
.isAnnouncementGroup
= copy
.getIsAnnouncementGroup();
63 public String
getName() {
67 public String
getDescription() {
71 public Set
<RecipientIdentifier
.Single
> getMembers() {
75 public Set
<RecipientIdentifier
.Single
> getRemoveMembers() {
79 public Set
<RecipientIdentifier
.Single
> getAdmins() {
83 public Set
<RecipientIdentifier
.Single
> getRemoveAdmins() {
87 public boolean isResetGroupLink() {
88 return resetGroupLink
;
91 public GroupLinkState
getGroupLinkState() {
92 return groupLinkState
;
95 public GroupPermission
getAddMemberPermission() {
96 return addMemberPermission
;
99 public GroupPermission
getEditDetailsPermission() {
100 return editDetailsPermission
;
103 public File
getAvatarFile() {
107 public Integer
getExpirationTimer() {
108 return expirationTimer
;
111 public Boolean
getIsAnnouncementGroup() {
112 return isAnnouncementGroup
;
115 public static final class Builder
{
118 private String description
;
119 private Set
<RecipientIdentifier
.Single
> members
;
120 private Set
<RecipientIdentifier
.Single
> removeMembers
;
121 private Set
<RecipientIdentifier
.Single
> admins
;
122 private Set
<RecipientIdentifier
.Single
> removeAdmins
;
123 private boolean resetGroupLink
;
124 private GroupLinkState groupLinkState
;
125 private GroupPermission addMemberPermission
;
126 private GroupPermission editDetailsPermission
;
127 private File avatarFile
;
128 private Integer expirationTimer
;
129 private Boolean isAnnouncementGroup
;
134 public Builder
withName(final String val
) {
139 public Builder
withDescription(final String val
) {
144 public Builder
withMembers(final Set
<RecipientIdentifier
.Single
> val
) {
149 public Builder
withRemoveMembers(final Set
<RecipientIdentifier
.Single
> val
) {
154 public Builder
withAdmins(final Set
<RecipientIdentifier
.Single
> val
) {
159 public Builder
withRemoveAdmins(final Set
<RecipientIdentifier
.Single
> val
) {
164 public Builder
withResetGroupLink(final boolean val
) {
165 resetGroupLink
= val
;
169 public Builder
withGroupLinkState(final GroupLinkState val
) {
170 groupLinkState
= val
;
174 public Builder
withAddMemberPermission(final GroupPermission val
) {
175 addMemberPermission
= val
;
179 public Builder
withEditDetailsPermission(final GroupPermission val
) {
180 editDetailsPermission
= val
;
184 public Builder
withAvatarFile(final File val
) {
189 public Builder
withExpirationTimer(final Integer val
) {
190 expirationTimer
= val
;
194 public Builder
withIsAnnouncementGroup(final Boolean val
) {
195 isAnnouncementGroup
= val
;
199 public UpdateGroup
build() {
200 return new UpdateGroup(this);