]> nmode's Git Repositories - signal-cli/blob - lib/src/main/java/org/asamk/signal/manager/api/UpdateProfile.java
Refactor manager update profile method
[signal-cli] / lib / src / main / java / org / asamk / signal / manager / api / UpdateProfile.java
1 package org.asamk.signal.manager.api;
2
3 import java.io.File;
4
5 public class UpdateProfile {
6
7 private final String givenName;
8 private final String familyName;
9 private final String about;
10 private final String aboutEmoji;
11 private final File avatar;
12 private final boolean deleteAvatar;
13
14 private UpdateProfile(final Builder builder) {
15 givenName = builder.givenName;
16 familyName = builder.familyName;
17 about = builder.about;
18 aboutEmoji = builder.aboutEmoji;
19 avatar = builder.avatar;
20 deleteAvatar = builder.deleteAvatar;
21 }
22
23 public static Builder newBuilder() {
24 return new Builder();
25 }
26
27 public static Builder newBuilder(final UpdateProfile copy) {
28 Builder builder = new Builder();
29 builder.givenName = copy.getGivenName();
30 builder.familyName = copy.getFamilyName();
31 builder.about = copy.getAbout();
32 builder.aboutEmoji = copy.getAboutEmoji();
33 builder.avatar = copy.getAvatar();
34 builder.deleteAvatar = copy.isDeleteAvatar();
35 return builder;
36 }
37
38 public String getGivenName() {
39 return givenName;
40 }
41
42 public String getFamilyName() {
43 return familyName;
44 }
45
46 public String getAbout() {
47 return about;
48 }
49
50 public String getAboutEmoji() {
51 return aboutEmoji;
52 }
53
54 public File getAvatar() {
55 return avatar;
56 }
57
58 public boolean isDeleteAvatar() {
59 return deleteAvatar;
60 }
61
62 public static final class Builder {
63
64 private String givenName;
65 private String familyName;
66 private String about;
67 private String aboutEmoji;
68 private File avatar;
69 private boolean deleteAvatar;
70
71 private Builder() {
72 }
73
74 public Builder withGivenName(final String val) {
75 givenName = val;
76 return this;
77 }
78
79 public Builder withFamilyName(final String val) {
80 familyName = val;
81 return this;
82 }
83
84 public Builder withAbout(final String val) {
85 about = val;
86 return this;
87 }
88
89 public Builder withAboutEmoji(final String val) {
90 aboutEmoji = val;
91 return this;
92 }
93
94 public Builder withAvatar(final File val) {
95 avatar = val;
96 return this;
97 }
98
99 public Builder withDeleteAvatar(final boolean val) {
100 deleteAvatar = val;
101 return this;
102 }
103
104 public UpdateProfile build() {
105 return new UpdateProfile(this);
106 }
107 }
108 }