Unify all private message responses in one PrivateResponse class

This also adds `Shareable`s to invitation response
which is a precondition for #561
This commit is contained in:
Torsten Grote
2018-09-05 15:22:12 -03:00
parent ffeca8817f
commit 61e18f104e
37 changed files with 357 additions and 307 deletions

View File

@@ -4,15 +4,15 @@ import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.bramble.api.sync.GroupId;
import org.briarproject.bramble.api.sync.MessageId;
import org.briarproject.briar.api.client.SessionId;
import org.briarproject.briar.api.sharing.InvitationResponse;
import org.briarproject.briar.api.messaging.PrivateResponse;
@NotNullByDefault
public class BlogInvitationResponse extends InvitationResponse {
public class BlogInvitationResponse extends PrivateResponse<Blog> {
public BlogInvitationResponse(MessageId id, GroupId groupId, long time,
boolean local, boolean sent, boolean seen, boolean read,
SessionId sessionId, GroupId blogId, boolean accept) {
super(id, groupId, time, local, sent, seen, read, sessionId, blogId,
SessionId sessionId, Blog blog, boolean accept) {
super(id, groupId, time, local, sent, seen, read, sessionId, blog,
accept);
}

View File

@@ -2,6 +2,7 @@ package org.briarproject.briar.api.blog.event;
import org.briarproject.bramble.api.contact.ContactId;
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.briar.api.blog.Blog;
import org.briarproject.briar.api.blog.BlogInvitationResponse;
import org.briarproject.briar.api.sharing.event.InvitationResponseReceivedEvent;
@@ -10,7 +11,7 @@ import javax.annotation.concurrent.Immutable;
@Immutable
@NotNullByDefault
public class BlogInvitationResponseReceivedEvent
extends InvitationResponseReceivedEvent {
extends InvitationResponseReceivedEvent<Blog> {
public BlogInvitationResponseReceivedEvent(ContactId contactId,
BlogInvitationResponse response) {

View File

@@ -4,18 +4,18 @@ import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.bramble.api.sync.GroupId;
import org.briarproject.bramble.api.sync.MessageId;
import org.briarproject.briar.api.client.SessionId;
import org.briarproject.briar.api.sharing.InvitationResponse;
import org.briarproject.briar.api.messaging.PrivateResponse;
import javax.annotation.concurrent.Immutable;
@Immutable
@NotNullByDefault
public class ForumInvitationResponse extends InvitationResponse {
public class ForumInvitationResponse extends PrivateResponse<Forum> {
public ForumInvitationResponse(MessageId id, GroupId groupId, long time,
boolean local, boolean sent, boolean seen, boolean read,
SessionId sessionId, GroupId forumId, boolean accept) {
super(id, groupId, time, local, sent, seen, read, sessionId, forumId,
SessionId sessionId, Forum forum, boolean accept) {
super(id, groupId, time, local, sent, seen, read, sessionId, forum,
accept);
}

View File

@@ -4,45 +4,19 @@ import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.bramble.api.sync.GroupId;
import org.briarproject.bramble.api.sync.MessageId;
import org.briarproject.briar.api.client.SessionId;
import org.briarproject.briar.api.messaging.PrivateMessageHeader;
import org.briarproject.briar.api.messaging.PrivateResponse;
import javax.annotation.concurrent.Immutable;
import static org.briarproject.briar.api.introduction.Role.INTRODUCER;
@Immutable
@NotNullByDefault
public class IntroductionResponse extends PrivateMessageHeader {
public class IntroductionResponse extends PrivateResponse<Introduction> {
private final SessionId sessionId;
private final String name;
private final Role role;
private final boolean accepted;
public IntroductionResponse(SessionId sessionId, MessageId messageId,
GroupId groupId, Role role, long time, boolean local, boolean sent,
boolean seen, boolean read, String name, boolean accepted) {
super(messageId, groupId, time, local, sent, seen, read);
this.sessionId = sessionId;
this.name = name;
this.role = role;
this.accepted = accepted;
}
public SessionId getSessionId() {
return sessionId;
}
public String getName() {
return name;
}
public boolean isIntroducer() {
return role == INTRODUCER;
}
public boolean wasAccepted() {
return accepted;
public IntroductionResponse(MessageId messageId, GroupId groupId, long time,
boolean local, boolean sent, boolean seen, boolean read,
SessionId sessionId, Introduction introduction, boolean accepted) {
super(messageId, groupId, time, local, sent, seen, read, sessionId,
introduction, accepted);
}
}

View File

@@ -0,0 +1,40 @@
package org.briarproject.briar.api.messaging;
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.bramble.api.sync.GroupId;
import org.briarproject.bramble.api.sync.MessageId;
import org.briarproject.briar.api.client.SessionId;
import javax.annotation.concurrent.Immutable;
@Immutable
@NotNullByDefault
public abstract class PrivateResponse<O extends Nameable>
extends PrivateMessageHeader {
private final SessionId sessionId;
private final O object;
private final boolean accepted;
public PrivateResponse(MessageId id, GroupId groupId, long time,
boolean local, boolean sent, boolean seen, boolean read,
SessionId sessionId, O object, boolean accepted) {
super(id, groupId, time, local, sent, seen, read);
this.sessionId = sessionId;
this.object = object;
this.accepted = accepted;
}
public SessionId getSessionId() {
return sessionId;
}
public O getObject() {
return object;
}
public boolean wasAccepted() {
return accepted;
}
}

View File

@@ -2,7 +2,8 @@ package org.briarproject.briar.api.privategroup.event;
import org.briarproject.bramble.api.contact.ContactId;
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.briar.api.sharing.InvitationResponse;
import org.briarproject.briar.api.messaging.PrivateResponse;
import org.briarproject.briar.api.privategroup.PrivateGroup;
import org.briarproject.briar.api.sharing.event.InvitationResponseReceivedEvent;
import javax.annotation.concurrent.Immutable;
@@ -10,10 +11,10 @@ import javax.annotation.concurrent.Immutable;
@Immutable
@NotNullByDefault
public class GroupInvitationResponseReceivedEvent
extends InvitationResponseReceivedEvent {
extends InvitationResponseReceivedEvent<PrivateGroup> {
public GroupInvitationResponseReceivedEvent(ContactId contactId,
InvitationResponse response) {
PrivateResponse<PrivateGroup> response) {
super(contactId, response);
}
}

View File

@@ -4,19 +4,20 @@ import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.bramble.api.sync.GroupId;
import org.briarproject.bramble.api.sync.MessageId;
import org.briarproject.briar.api.client.SessionId;
import org.briarproject.briar.api.sharing.InvitationResponse;
import org.briarproject.briar.api.messaging.PrivateResponse;
import org.briarproject.briar.api.privategroup.PrivateGroup;
import javax.annotation.concurrent.Immutable;
@Immutable
@NotNullByDefault
public class GroupInvitationResponse extends InvitationResponse {
public class GroupInvitationResponse extends PrivateResponse<PrivateGroup> {
public GroupInvitationResponse(MessageId id, GroupId groupId, long time,
boolean local, boolean sent, boolean seen, boolean read,
SessionId sessionId, GroupId shareableId, boolean accept) {
SessionId sessionId, PrivateGroup privateGroup, boolean accept) {
super(id, groupId, time, local, sent, seen, read, sessionId,
shareableId, accept);
privateGroup, accept);
}
}

View File

@@ -1,41 +0,0 @@
package org.briarproject.briar.api.sharing;
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.bramble.api.sync.GroupId;
import org.briarproject.bramble.api.sync.MessageId;
import org.briarproject.briar.api.client.SessionId;
import org.briarproject.briar.api.messaging.PrivateMessageHeader;
import javax.annotation.concurrent.Immutable;
@Immutable
@NotNullByDefault
public abstract class InvitationResponse extends PrivateMessageHeader {
private final SessionId sessionId;
private final GroupId shareableId;
private final boolean accept;
public InvitationResponse(MessageId id, GroupId groupId,
long time, boolean local, boolean sent, boolean seen,
boolean read, SessionId sessionId, GroupId shareableId,
boolean accept) {
super(id, groupId, time, local, sent, seen, read);
this.sessionId = sessionId;
this.shareableId = shareableId;
this.accept = accept;
}
public SessionId getSessionId() {
return sessionId;
}
public boolean wasAccepted() {
return accept;
}
public GroupId getShareableId() {
return shareableId;
}
}

View File

@@ -3,19 +3,21 @@ package org.briarproject.briar.api.sharing.event;
import org.briarproject.bramble.api.contact.ContactId;
import org.briarproject.bramble.api.event.Event;
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.briar.api.sharing.InvitationResponse;
import org.briarproject.briar.api.messaging.PrivateResponse;
import org.briarproject.briar.api.sharing.Shareable;
import javax.annotation.concurrent.Immutable;
@Immutable
@NotNullByDefault
public abstract class InvitationResponseReceivedEvent extends Event {
public abstract class InvitationResponseReceivedEvent<S extends Shareable>
extends Event {
private final ContactId contactId;
private final InvitationResponse response;
private final PrivateResponse<S> response;
public InvitationResponseReceivedEvent(ContactId contactId,
InvitationResponse response) {
PrivateResponse<S> response) {
this.contactId = contactId;
this.response = response;
}
@@ -24,7 +26,7 @@ public abstract class InvitationResponseReceivedEvent extends Event {
return contactId;
}
public InvitationResponse getResponse() {
public PrivateResponse<S> getResponse() {
return response;
}
}