]> nmode's Git Repositories - signal-cli/blob - lib/src/main/java/org/asamk/signal/manager/storage/recipients/Contact.java
f2867c9f9a942257438dbea103094459c2df54b7
[signal-cli] / lib / src / main / java / org / asamk / signal / manager / storage / recipients / Contact.java
1 package org.asamk.signal.manager.storage.recipients;
2
3 public class Contact {
4
5 private final String name;
6
7 private final String color;
8
9 private final int messageExpirationTime;
10
11 private final boolean blocked;
12
13 private final boolean archived;
14
15 public Contact(
16 final String name,
17 final String color,
18 final int messageExpirationTime,
19 final boolean blocked,
20 final boolean archived
21 ) {
22 this.name = name;
23 this.color = color;
24 this.messageExpirationTime = messageExpirationTime;
25 this.blocked = blocked;
26 this.archived = archived;
27 }
28
29 private Contact(final Builder builder) {
30 name = builder.name;
31 color = builder.color;
32 messageExpirationTime = builder.messageExpirationTime;
33 blocked = builder.blocked;
34 archived = builder.archived;
35 }
36
37 public static Builder newBuilder() {
38 return new Builder();
39 }
40
41 public static Builder newBuilder(final Contact copy) {
42 Builder builder = new Builder();
43 builder.name = copy.getName();
44 builder.color = copy.getColor();
45 builder.messageExpirationTime = copy.getMessageExpirationTime();
46 builder.blocked = copy.isBlocked();
47 builder.archived = copy.isArchived();
48 return builder;
49 }
50
51 public String getName() {
52 return name;
53 }
54
55 public String getColor() {
56 return color;
57 }
58
59 public int getMessageExpirationTime() {
60 return messageExpirationTime;
61 }
62
63 public boolean isBlocked() {
64 return blocked;
65 }
66
67 public boolean isArchived() {
68 return archived;
69 }
70
71 public static final class Builder {
72
73 private String name;
74 private String color;
75 private int messageExpirationTime;
76 private boolean blocked;
77 private boolean archived;
78
79 private Builder() {
80 }
81
82 public Builder withName(final String val) {
83 name = val;
84 return this;
85 }
86
87 public Builder withColor(final String val) {
88 color = val;
89 return this;
90 }
91
92 public Builder withMessageExpirationTime(final int val) {
93 messageExpirationTime = val;
94 return this;
95 }
96
97 public Builder withBlocked(final boolean val) {
98 blocked = val;
99 return this;
100 }
101
102 public Builder withArchived(final boolean val) {
103 archived = val;
104 return this;
105 }
106
107 public Contact build() {
108 return new Contact(this);
109 }
110 }
111 }