Keep MailboxUpdate immutable

This commit is contained in:
Daniel Lublin
2022-05-18 12:50:50 +02:00
parent 601ff50294
commit 7e215e7f84
3 changed files with 23 additions and 12 deletions

View File

@@ -9,23 +9,22 @@ import javax.annotation.concurrent.Immutable;
@Immutable
@NotNullByDefault
public class MailboxUpdate {
boolean hasMailbox;
private List<MailboxVersion> clientSupports;
private final boolean hasMailbox;
private final List<MailboxVersion> clientSupports;
public MailboxUpdate(List<MailboxVersion> clientSupports) {
this.hasMailbox = false;
this(clientSupports, false);
}
MailboxUpdate(List<MailboxVersion> clientSupports, boolean hasMailbox) {
this.clientSupports = clientSupports;
this.hasMailbox = hasMailbox;
}
public List<MailboxVersion> getClientSupports() {
return clientSupports;
}
public void setClientSupports(List<MailboxVersion> clientSupports) {
this.clientSupports = clientSupports;
}
public boolean hasMailbox() {
return hasMailbox;
}

View File

@@ -20,8 +20,7 @@ public class MailboxUpdateWithMailbox extends MailboxUpdate {
MailboxAuthToken authToken, MailboxFolderId inboxId,
MailboxFolderId outboxId
) {
super(clientSupports);
this.hasMailbox = true;
super(clientSupports, true);
this.serverSupports = serverSupports;
this.onion = onion;
this.authToken = authToken;
@@ -29,6 +28,12 @@ public class MailboxUpdateWithMailbox extends MailboxUpdate {
this.outboxId = outboxId;
}
public MailboxUpdateWithMailbox(MailboxUpdateWithMailbox o,
List<MailboxVersion> newClientSupports) {
this(newClientSupports, o.serverSupports, o.onion, o.authToken,
o.inboxId, o.outboxId);
}
public String getOnion() {
return onion;
}