]> nmode's Git Repositories - signal-cli/blob - lib/src/main/java/org/asamk/signal/manager/api/UpdateGroup.java
Reexport dbus objects when self number changes
[signal-cli] / lib / src / main / java / org / asamk / signal / manager / api / UpdateGroup.java
1 package org.asamk.signal.manager.api;
2
3 import org.asamk.signal.manager.groups.GroupLinkState;
4 import org.asamk.signal.manager.groups.GroupPermission;
5
6 import java.io.File;
7 import java.util.Set;
8
9 public class UpdateGroup {
10
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;
24
25 private UpdateGroup(final Builder builder) {
26 name = builder.name;
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;
39 }
40
41 public static Builder newBuilder() {
42 return new Builder();
43 }
44
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();
60 return builder;
61 }
62
63 public String getName() {
64 return name;
65 }
66
67 public String getDescription() {
68 return description;
69 }
70
71 public Set<RecipientIdentifier.Single> getMembers() {
72 return members;
73 }
74
75 public Set<RecipientIdentifier.Single> getRemoveMembers() {
76 return removeMembers;
77 }
78
79 public Set<RecipientIdentifier.Single> getAdmins() {
80 return admins;
81 }
82
83 public Set<RecipientIdentifier.Single> getRemoveAdmins() {
84 return removeAdmins;
85 }
86
87 public boolean isResetGroupLink() {
88 return resetGroupLink;
89 }
90
91 public GroupLinkState getGroupLinkState() {
92 return groupLinkState;
93 }
94
95 public GroupPermission getAddMemberPermission() {
96 return addMemberPermission;
97 }
98
99 public GroupPermission getEditDetailsPermission() {
100 return editDetailsPermission;
101 }
102
103 public File getAvatarFile() {
104 return avatarFile;
105 }
106
107 public Integer getExpirationTimer() {
108 return expirationTimer;
109 }
110
111 public Boolean getIsAnnouncementGroup() {
112 return isAnnouncementGroup;
113 }
114
115 public static final class Builder {
116
117 private String name;
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;
130
131 private Builder() {
132 }
133
134 public Builder withName(final String val) {
135 name = val;
136 return this;
137 }
138
139 public Builder withDescription(final String val) {
140 description = val;
141 return this;
142 }
143
144 public Builder withMembers(final Set<RecipientIdentifier.Single> val) {
145 members = val;
146 return this;
147 }
148
149 public Builder withRemoveMembers(final Set<RecipientIdentifier.Single> val) {
150 removeMembers = val;
151 return this;
152 }
153
154 public Builder withAdmins(final Set<RecipientIdentifier.Single> val) {
155 admins = val;
156 return this;
157 }
158
159 public Builder withRemoveAdmins(final Set<RecipientIdentifier.Single> val) {
160 removeAdmins = val;
161 return this;
162 }
163
164 public Builder withResetGroupLink(final boolean val) {
165 resetGroupLink = val;
166 return this;
167 }
168
169 public Builder withGroupLinkState(final GroupLinkState val) {
170 groupLinkState = val;
171 return this;
172 }
173
174 public Builder withAddMemberPermission(final GroupPermission val) {
175 addMemberPermission = val;
176 return this;
177 }
178
179 public Builder withEditDetailsPermission(final GroupPermission val) {
180 editDetailsPermission = val;
181 return this;
182 }
183
184 public Builder withAvatarFile(final File val) {
185 avatarFile = val;
186 return this;
187 }
188
189 public Builder withExpirationTimer(final Integer val) {
190 expirationTimer = val;
191 return this;
192 }
193
194 public Builder withIsAnnouncementGroup(final Boolean val) {
195 isAnnouncementGroup = val;
196 return this;
197 }
198
199 public UpdateGroup build() {
200 return new UpdateGroup(this);
201 }
202 }
203 }