import org.whispersystems.signalservice.internal.util.Util;
-import java.util.Objects;
-
-public class Contact {
-
- private final String givenName;
-
- private final String familyName;
-
- private final String color;
-
- private final int messageExpirationTime;
-
- private final boolean blocked;
-
- private final boolean archived;
-
- private final boolean profileSharingEnabled;
-
- public Contact(
- final String givenName,
- final String familyName,
- final String color,
- final int messageExpirationTime,
- final boolean blocked,
- final boolean archived,
- final boolean profileSharingEnabled
- ) {
- this.givenName = givenName;
- this.familyName = familyName;
- this.color = color;
- this.messageExpirationTime = messageExpirationTime;
- this.blocked = blocked;
- this.archived = archived;
- this.profileSharingEnabled = profileSharingEnabled;
- }
+public record Contact(
+ String givenName,
+ String familyName,
+ String color,
+ int messageExpirationTime,
+ boolean isBlocked,
+ boolean isArchived,
+ boolean isProfileSharingEnabled
+) {
private Contact(final Builder builder) {
- givenName = builder.givenName;
- familyName = builder.familyName;
- color = builder.color;
- messageExpirationTime = builder.messageExpirationTime;
- blocked = builder.blocked;
- archived = builder.archived;
- profileSharingEnabled = builder.profileSharingEnabled;
+ this(builder.givenName,
+ builder.familyName,
+ builder.color,
+ builder.messageExpirationTime,
+ builder.blocked,
+ builder.archived,
+ builder.profileSharingEnabled);
}
public static Builder newBuilder() {
public static Builder newBuilder(final Contact copy) {
Builder builder = new Builder();
- builder.givenName = copy.getGivenName();
- builder.familyName = copy.getFamilyName();
- builder.color = copy.getColor();
- builder.messageExpirationTime = copy.getMessageExpirationTime();
+ builder.givenName = copy.givenName();
+ builder.familyName = copy.familyName();
+ builder.color = copy.color();
+ builder.messageExpirationTime = copy.messageExpirationTime();
builder.blocked = copy.isBlocked();
builder.archived = copy.isArchived();
builder.profileSharingEnabled = copy.isProfileSharingEnabled();
return givenName + " " + familyName;
}
- public String getGivenName() {
- return givenName;
- }
-
- public String getFamilyName() {
- return familyName;
- }
-
- public String getColor() {
- return color;
- }
-
- public int getMessageExpirationTime() {
- return messageExpirationTime;
- }
-
- public boolean isBlocked() {
- return blocked;
- }
-
- public boolean isArchived() {
- return archived;
- }
-
- public boolean isProfileSharingEnabled() {
- return profileSharingEnabled;
- }
-
- @Override
- public boolean equals(final Object o) {
- if (this == o) return true;
- if (o == null || getClass() != o.getClass()) return false;
- final Contact contact = (Contact) o;
- return messageExpirationTime == contact.messageExpirationTime
- && blocked == contact.blocked
- && archived == contact.archived
- && profileSharingEnabled == contact.profileSharingEnabled
- && Objects.equals(givenName, contact.givenName)
- && Objects.equals(familyName, contact.familyName)
- && Objects.equals(color, contact.color);
- }
-
- @Override
- public int hashCode() {
- return Objects.hash(givenName,
- familyName,
- color,
- messageExpirationTime,
- blocked,
- archived,
- profileSharingEnabled);
- }
-
public static final class Builder {
private String givenName;
"""
).formatted(TABLE_RECIPIENT);
try (final var statement = connection.prepareStatement(sql)) {
- statement.setString(1, contact == null ? null : contact.getGivenName());
- statement.setString(2, contact == null ? null : contact.getFamilyName());
- statement.setInt(3, contact == null ? 0 : contact.getMessageExpirationTime());
+ statement.setString(1, contact == null ? null : contact.givenName());
+ statement.setString(2, contact == null ? null : contact.familyName());
+ statement.setInt(3, contact == null ? 0 : contact.messageExpirationTime());
statement.setBoolean(4, contact != null && contact.isProfileSharingEnabled());
- statement.setString(5, contact == null ? null : contact.getColor());
+ statement.setString(5, contact == null ? null : contact.color());
statement.setBoolean(6, contact != null && contact.isBlocked());
statement.setBoolean(7, contact != null && contact.isArchived());
statement.setLong(8, recipientId.id());